commit 66a8cb95ed04025664d1db4e952155ee1dccd048 Author: Steven Rostedt <srostedt@redhat.com> Date: Wed Mar 31 13:21:56 2010 -0400 ring-buffer: Add place holder recording of dropped events Changed: diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index 5fcc31e..c829776 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h @@ -120,9 +120,11 @@ int ring_buffer_write(struct ring_buffer *buffer, unsigned long length, void *data); struct ring_buffer_event * -ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts); +ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts, + unsigned long *lost_events); struct ring_buffer_event * -ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts); +ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts, + unsigned long *lost_events); struct ring_buffer_iter * ring_buffer_read_start(struct ring_buffer *buffer, int cpu); Which breaks our ring_buffer.c implementation as identified by ring_buffer.exp: Pass 1: parsed user script and 76 library script(s) using 99356virt/22604res/2804shr kb, in 100usr/10sys/109real ms. Pass 2: analyzed script: 2 probe(s), 1 function(s), 0 embed(s), 0 global(s) using 99752virt/23132res/2868shr kb, in 0usr/0sys/3real ms. Pass 3: translated to C into "/tmp/stapUQcV7p/stap_e9f8363a90bd2ed02d6ce67ab4bde13b_935.c" using 99860virt/23632res/3288shr kb, in 0usr/0sys/0real ms. In file included from /usr/local/install/systemtap/share/systemtap/runtime/transport/transport.c:56:0, from /usr/local/install/systemtap/share/systemtap/runtime/print.c:18, from /usr/local/install/systemtap/share/systemtap/runtime/runtime.h:128, from /tmp/stapUQcV7p/stap_e9f8363a90bd2ed02d6ce67ab4bde13b_935.c:59: /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c: In function '_stp_ring_buffer_consume': /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c:255:2: error: too few arguments to function 'ring_buffer_consume' include/linux/ring_buffer.h:126:1: note: declared here /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c: In function '_stp_peek_next_event': /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c:291:3: error: too few arguments to function 'ring_buffer_peek' include/linux/ring_buffer.h:123:1: note: declared here cc1: warnings being treated as errors /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c: In function '_stp_buffer_iter_start': /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c:398:7: error: passing argument 1 of 'ring_buffer_read_start' from incompatible pointer type include/linux/ring_buffer.h:132:6: note: expected 'struct ring_buffer_iter *' but argument is of type 'struct ring_buffer *' /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c:398:7: error: too many arguments to function 'ring_buffer_read_start' include/linux/ring_buffer.h:132:6: note: declared here /usr/local/install/systemtap/share/systemtap/runtime/transport/ring_buffer.c:398:7: error: void value not ignored as it ought to be make[4]: *** [/tmp/stapUQcV7p/stap_e9f8363a90bd2ed02d6ce67ab4bde13b_935.o] Error 1 make[3]: *** [_module_/tmp/stapUQcV7p] Error 2 Warning: make exited with status: 2 Pass 4: compiled C into "stap_e9f8363a90bd2ed02d6ce67ab4bde13b_935.ko" in 300usr/230sys/599real ms. Pass 4: compilation failed. Try again with another '--vp 0001' option. FAIL: RING_BUFFER startup (eof)
There were actually two API changes. Added autoconf checks for both: commit c38602b58ff271a4b6c0fa2a7da7b3f4b57ac2f1 Author: Mark Wielaard <mjw@redhat.com> Date: Wed Jul 27 17:21:31 2011 +0200 Add autoconf-ring_buffer_read_prepare. Kernel commit 72c9dd split ring_buffer starting in a prepare and start phase commit 0d0f0d849d2c62e3f43b9c17fdaea79a8390c43d Author: Mark Wielaard <mjw@redhat.com> Date: Wed Jul 27 17:08:58 2011 +0200 Add autoconf-ring_buffer_lost_events. Kernel commit 66a8cb added place holder recording of dropped events.