Skip to content

Commit 7f1ac4f

Browse files
committed
Update map_operations_demo.ks with correct syntax.
Signed-off-by: Cong Wang <cwang@multikernel.io>
1 parent 9d2f131 commit 7f1ac4f

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

examples/map_operations_demo.ks

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ pin var global_counter : hash<u32, u64>(10000)
8888
// Per-CPU data with automatic pinning path: /sys/fs/bpf/map_operations_demo/maps/percpu_data
8989
pin var percpu_data : percpu_hash<u32, PerCpuData>(256)
9090

91-
// Event stream ring buffer with no preallocation flag
92-
@flags(no_prealloc) pin var event_stream : hash<u32, u32>(65536)
91+
// Event stream ring buffer
92+
var event_stream : ringbuf<Event>(65536)
9393

9494
// Sequential data array - not pinned (local to program)
9595
var sequential_data : array<u32, ArrayElement>(1024)
@@ -181,18 +181,20 @@ struct ArrayElement {
181181
// Program 3: Event streaming demonstrating ring buffer usage
182182
@tracepoint("syscalls/sys_enter_open")
183183
fn event_logger(ctx: *trace_event_raw_sys_enter) -> i32 {
184-
var event = Event {
185-
timestamp: 123456, // Fake timestamp
186-
event_type: ctx.id, // Use syscall ID from sys_enter context
187-
data: [0], // Simplified data
188-
}
189-
190184
// Ring buffer output - single writer recommended
191185
try {
192-
//var result = event_stream.output(&event, sizeof(Event))
193-
var result = 0
194-
if (result != 0) {
195-
throw 1 // Ring buffer output failed
186+
// Reserve space in the ring buffer
187+
var reserved = event_stream.reserve()
188+
if (reserved != null) {
189+
// Successfully reserved space - populate event data inline
190+
reserved->timestamp = 123456 // Fake timestamp
191+
reserved->event_type = ctx->id // Use syscall ID from sys_enter context
192+
reserved->data = [0] // Simplified data
193+
194+
// Submit the populated event
195+
event_stream.submit(reserved)
196+
} else {
197+
throw 1 // Ring buffer is full
196198
}
197199
} catch 1 {
198200
// Ring buffer full - this will generate performance warnings

0 commit comments

Comments
 (0)