Skip to content

Commit

Permalink
ring-buffer: Add enum names for the context levels
Browse files Browse the repository at this point in the history
Instead of having hard coded numbers for the context levels, use
enums to describe them more.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Steven Rostedt (Red Hat) committed May 29, 2015
1 parent 3c6296f commit a497adb
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions kernel/trace/ring_buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,23 @@ struct rb_irq_work {
bool wakeup_full;
};

/*
* Used for which event context the event is in.
* NMI = 0
* IRQ = 1
* SOFTIRQ = 2
* NORMAL = 3
*
* See trace_recursive_lock() comment below for more details.
*/
enum {
RB_CTX_NMI,
RB_CTX_IRQ,
RB_CTX_SOFTIRQ,
RB_CTX_NORMAL,
RB_CTX_MAX
};

/*
* head_page == tail_page && head == tail then buffer is empty.
*/
Expand Down Expand Up @@ -2173,7 +2190,7 @@ static unsigned rb_calculate_event_length(unsigned length)

/* zero length can cause confusions */
if (!length)
length = 1;
length++;

if (length > RB_MAX_SMALL_DATA || RB_FORCE_8BYTE_ALIGNMENT)
length += sizeof(event.array[0]);
Expand Down Expand Up @@ -2631,13 +2648,13 @@ trace_recursive_lock(struct ring_buffer_per_cpu *cpu_buffer)

if (in_interrupt()) {
if (in_nmi())
bit = 0;
bit = RB_CTX_NMI;
else if (in_irq())
bit = 1;
bit = RB_CTX_IRQ;
else
bit = 2;
bit = RB_CTX_SOFTIRQ;
} else
bit = 3;
bit = RB_CTX_NORMAL;

if (unlikely(val & (1 << bit)))
return 1;
Expand Down

0 comments on commit a497adb

Please sign in to comment.