diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-05 11:04:19 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-05 11:04:19 -0700 | 
| commit | 714f83d5d9f7c785f622259dad1f4fad12d64664 (patch) | |
| tree | 20563541ae438e11d686b4d629074eb002a481b7 /include/linux/ring_buffer.h | |
| parent | 8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc (diff) | |
| parent | 645dae969c3b8651c5bc7c54a1835ec03820f85f (diff) | |
| download | olio-linux-3.10-714f83d5d9f7c785f622259dad1f4fad12d64664.tar.xz olio-linux-3.10-714f83d5d9f7c785f622259dad1f4fad12d64664.zip  | |
Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
  tracing, net: fix net tree and tracing tree merge interaction
  tracing, powerpc: fix powerpc tree and tracing tree interaction
  ring-buffer: do not remove reader page from list on ring buffer free
  function-graph: allow unregistering twice
  trace: make argument 'mem' of trace_seq_putmem() const
  tracing: add missing 'extern' keywords to trace_output.h
  tracing: provide trace_seq_reserve()
  blktrace: print out BLK_TN_MESSAGE properly
  blktrace: extract duplidate code
  blktrace: fix memory leak when freeing struct blk_io_trace
  blktrace: fix blk_probes_ref chaos
  blktrace: make classic output more classic
  blktrace: fix off-by-one bug
  blktrace: fix the original blktrace
  blktrace: fix a race when creating blk_tree_root in debugfs
  blktrace: fix timestamp in binary output
  tracing, Text Edit Lock: cleanup
  tracing: filter fix for TRACE_EVENT_FORMAT events
  ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
  x86: kretprobe-booster interrupt emulation code fix
  ...
Fix up trivial conflicts in
 arch/parisc/include/asm/ftrace.h
 include/linux/memory.h
 kernel/extable.c
 kernel/module.c
Diffstat (limited to 'include/linux/ring_buffer.h')
| -rw-r--r-- | include/linux/ring_buffer.h | 38 | 
1 files changed, 21 insertions, 17 deletions
diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index b3b35966008..e1b7b217388 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h @@ -8,7 +8,7 @@ struct ring_buffer;  struct ring_buffer_iter;  /* - * Don't reference this struct directly, use functions below. + * Don't refer to this struct directly, use functions below.   */  struct ring_buffer_event {  	u32		type:2, len:3, time_delta:27; @@ -18,10 +18,13 @@ struct ring_buffer_event {  /**   * enum ring_buffer_type - internal ring buffer types   * - * @RINGBUF_TYPE_PADDING:	Left over page padding - *				 array is ignored - *				 size is variable depending on how much + * @RINGBUF_TYPE_PADDING:	Left over page padding or discarded event + *				 If time_delta is 0: + *				  array is ignored + *				  size is variable depending on how much   *				  padding is needed + *				 If time_delta is non zero: + *				  everything else same as RINGBUF_TYPE_DATA   *   * @RINGBUF_TYPE_TIME_EXTEND:	Extend the time delta   *				 array[0] = time delta (28 .. 59) @@ -65,6 +68,8 @@ ring_buffer_event_time_delta(struct ring_buffer_event *event)  	return event->time_delta;  } +void ring_buffer_event_discard(struct ring_buffer_event *event); +  /*   * size is in bytes for each per CPU buffer.   */ @@ -74,13 +79,10 @@ void ring_buffer_free(struct ring_buffer *buffer);  int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size); -struct ring_buffer_event * -ring_buffer_lock_reserve(struct ring_buffer *buffer, -			 unsigned long length, -			 unsigned long *flags); +struct ring_buffer_event *ring_buffer_lock_reserve(struct ring_buffer *buffer, +						   unsigned long length);  int ring_buffer_unlock_commit(struct ring_buffer *buffer, -			      struct ring_buffer_event *event, -			      unsigned long flags); +			      struct ring_buffer_event *event);  int ring_buffer_write(struct ring_buffer *buffer,  		      unsigned long length, void *data); @@ -121,17 +123,19 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer);  unsigned long ring_buffer_entries_cpu(struct ring_buffer *buffer, int cpu);  unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu); -u64 ring_buffer_time_stamp(int cpu); -void ring_buffer_normalize_time_stamp(int cpu, u64 *ts); +u64 ring_buffer_time_stamp(struct ring_buffer *buffer, int cpu); +void ring_buffer_normalize_time_stamp(struct ring_buffer *buffer, +				      int cpu, u64 *ts); +void ring_buffer_set_clock(struct ring_buffer *buffer, +			   u64 (*clock)(void)); + +size_t ring_buffer_page_len(void *page); -void tracing_on(void); -void tracing_off(void); -void tracing_off_permanent(void);  void *ring_buffer_alloc_read_page(struct ring_buffer *buffer);  void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data); -int ring_buffer_read_page(struct ring_buffer *buffer, -			  void **data_page, int cpu, int full); +int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page, +			  size_t len, int cpu, int full);  enum ring_buffer_flags {  	RB_FL_OVERWRITE		= 1 << 0,  |