tracing: Move event_trigger_unlock_commit{_regs}() to local header
The functions event_trigger_unlock_commit() and event_trigger_unlock_commit_regs() are no longer used outside the tracing system. Move them out of the generic headers and into the local one. Along with __event_trigger_test_discard() that is only used by them. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
4afe6495e5
commit
dad56ee742
@ -452,100 +452,6 @@ trace_trigger_soft_disabled(struct trace_event_file *file)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Helper function for event_trigger_unlock_commit{_regs}().
|
|
||||||
* If there are event triggers attached to this event that requires
|
|
||||||
* filtering against its fields, then they wil be called as the
|
|
||||||
* entry already holds the field information of the current event.
|
|
||||||
*
|
|
||||||
* It also checks if the event should be discarded or not.
|
|
||||||
* It is to be discarded if the event is soft disabled and the
|
|
||||||
* event was only recorded to process triggers, or if the event
|
|
||||||
* filter is active and this event did not match the filters.
|
|
||||||
*
|
|
||||||
* Returns true if the event is discarded, false otherwise.
|
|
||||||
*/
|
|
||||||
static inline bool
|
|
||||||
__event_trigger_test_discard(struct trace_event_file *file,
|
|
||||||
struct ring_buffer *buffer,
|
|
||||||
struct ring_buffer_event *event,
|
|
||||||
void *entry,
|
|
||||||
enum event_trigger_type *tt)
|
|
||||||
{
|
|
||||||
unsigned long eflags = file->flags;
|
|
||||||
|
|
||||||
if (eflags & EVENT_FILE_FL_TRIGGER_COND)
|
|
||||||
*tt = event_triggers_call(file, entry);
|
|
||||||
|
|
||||||
if (test_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags))
|
|
||||||
ring_buffer_discard_commit(buffer, event);
|
|
||||||
else if (!filter_check_discard(file, entry, buffer, event))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* event_trigger_unlock_commit - handle triggers and finish event commit
|
|
||||||
* @file: The file pointer assoctiated to the event
|
|
||||||
* @buffer: The ring buffer that the event is being written to
|
|
||||||
* @event: The event meta data in the ring buffer
|
|
||||||
* @entry: The event itself
|
|
||||||
* @irq_flags: The state of the interrupts at the start of the event
|
|
||||||
* @pc: The state of the preempt count at the start of the event.
|
|
||||||
*
|
|
||||||
* This is a helper function to handle triggers that require data
|
|
||||||
* from the event itself. It also tests the event against filters and
|
|
||||||
* if the event is soft disabled and should be discarded.
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
event_trigger_unlock_commit(struct trace_event_file *file,
|
|
||||||
struct ring_buffer *buffer,
|
|
||||||
struct ring_buffer_event *event,
|
|
||||||
void *entry, unsigned long irq_flags, int pc)
|
|
||||||
{
|
|
||||||
enum event_trigger_type tt = ETT_NONE;
|
|
||||||
|
|
||||||
if (!__event_trigger_test_discard(file, buffer, event, entry, &tt))
|
|
||||||
trace_buffer_unlock_commit(file->tr, buffer, event, irq_flags, pc);
|
|
||||||
|
|
||||||
if (tt)
|
|
||||||
event_triggers_post_call(file, tt, entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* event_trigger_unlock_commit_regs - handle triggers and finish event commit
|
|
||||||
* @file: The file pointer assoctiated to the event
|
|
||||||
* @buffer: The ring buffer that the event is being written to
|
|
||||||
* @event: The event meta data in the ring buffer
|
|
||||||
* @entry: The event itself
|
|
||||||
* @irq_flags: The state of the interrupts at the start of the event
|
|
||||||
* @pc: The state of the preempt count at the start of the event.
|
|
||||||
*
|
|
||||||
* This is a helper function to handle triggers that require data
|
|
||||||
* from the event itself. It also tests the event against filters and
|
|
||||||
* if the event is soft disabled and should be discarded.
|
|
||||||
*
|
|
||||||
* Same as event_trigger_unlock_commit() but calls
|
|
||||||
* trace_buffer_unlock_commit_regs() instead of trace_buffer_unlock_commit().
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
event_trigger_unlock_commit_regs(struct trace_event_file *file,
|
|
||||||
struct ring_buffer *buffer,
|
|
||||||
struct ring_buffer_event *event,
|
|
||||||
void *entry, unsigned long irq_flags, int pc,
|
|
||||||
struct pt_regs *regs)
|
|
||||||
{
|
|
||||||
enum event_trigger_type tt = ETT_NONE;
|
|
||||||
|
|
||||||
if (!__event_trigger_test_discard(file, buffer, event, entry, &tt))
|
|
||||||
trace_buffer_unlock_commit_regs(file->tr, buffer, event,
|
|
||||||
irq_flags, pc, regs);
|
|
||||||
|
|
||||||
if (tt)
|
|
||||||
event_triggers_post_call(file, tt, entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_BPF_EVENTS
|
#ifdef CONFIG_BPF_EVENTS
|
||||||
unsigned int trace_call_bpf(struct bpf_prog *prog, void *ctx);
|
unsigned int trace_call_bpf(struct bpf_prog *prog, void *ctx);
|
||||||
#else
|
#else
|
||||||
|
@ -1065,6 +1065,100 @@ struct trace_subsystem_dir {
|
|||||||
int nr_events;
|
int nr_events;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Helper function for event_trigger_unlock_commit{_regs}().
|
||||||
|
* If there are event triggers attached to this event that requires
|
||||||
|
* filtering against its fields, then they wil be called as the
|
||||||
|
* entry already holds the field information of the current event.
|
||||||
|
*
|
||||||
|
* It also checks if the event should be discarded or not.
|
||||||
|
* It is to be discarded if the event is soft disabled and the
|
||||||
|
* event was only recorded to process triggers, or if the event
|
||||||
|
* filter is active and this event did not match the filters.
|
||||||
|
*
|
||||||
|
* Returns true if the event is discarded, false otherwise.
|
||||||
|
*/
|
||||||
|
static inline bool
|
||||||
|
__event_trigger_test_discard(struct trace_event_file *file,
|
||||||
|
struct ring_buffer *buffer,
|
||||||
|
struct ring_buffer_event *event,
|
||||||
|
void *entry,
|
||||||
|
enum event_trigger_type *tt)
|
||||||
|
{
|
||||||
|
unsigned long eflags = file->flags;
|
||||||
|
|
||||||
|
if (eflags & EVENT_FILE_FL_TRIGGER_COND)
|
||||||
|
*tt = event_triggers_call(file, entry);
|
||||||
|
|
||||||
|
if (test_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags))
|
||||||
|
ring_buffer_discard_commit(buffer, event);
|
||||||
|
else if (!filter_check_discard(file, entry, buffer, event))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* event_trigger_unlock_commit - handle triggers and finish event commit
|
||||||
|
* @file: The file pointer assoctiated to the event
|
||||||
|
* @buffer: The ring buffer that the event is being written to
|
||||||
|
* @event: The event meta data in the ring buffer
|
||||||
|
* @entry: The event itself
|
||||||
|
* @irq_flags: The state of the interrupts at the start of the event
|
||||||
|
* @pc: The state of the preempt count at the start of the event.
|
||||||
|
*
|
||||||
|
* This is a helper function to handle triggers that require data
|
||||||
|
* from the event itself. It also tests the event against filters and
|
||||||
|
* if the event is soft disabled and should be discarded.
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
event_trigger_unlock_commit(struct trace_event_file *file,
|
||||||
|
struct ring_buffer *buffer,
|
||||||
|
struct ring_buffer_event *event,
|
||||||
|
void *entry, unsigned long irq_flags, int pc)
|
||||||
|
{
|
||||||
|
enum event_trigger_type tt = ETT_NONE;
|
||||||
|
|
||||||
|
if (!__event_trigger_test_discard(file, buffer, event, entry, &tt))
|
||||||
|
trace_buffer_unlock_commit(file->tr, buffer, event, irq_flags, pc);
|
||||||
|
|
||||||
|
if (tt)
|
||||||
|
event_triggers_post_call(file, tt, entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* event_trigger_unlock_commit_regs - handle triggers and finish event commit
|
||||||
|
* @file: The file pointer assoctiated to the event
|
||||||
|
* @buffer: The ring buffer that the event is being written to
|
||||||
|
* @event: The event meta data in the ring buffer
|
||||||
|
* @entry: The event itself
|
||||||
|
* @irq_flags: The state of the interrupts at the start of the event
|
||||||
|
* @pc: The state of the preempt count at the start of the event.
|
||||||
|
*
|
||||||
|
* This is a helper function to handle triggers that require data
|
||||||
|
* from the event itself. It also tests the event against filters and
|
||||||
|
* if the event is soft disabled and should be discarded.
|
||||||
|
*
|
||||||
|
* Same as event_trigger_unlock_commit() but calls
|
||||||
|
* trace_buffer_unlock_commit_regs() instead of trace_buffer_unlock_commit().
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
event_trigger_unlock_commit_regs(struct trace_event_file *file,
|
||||||
|
struct ring_buffer *buffer,
|
||||||
|
struct ring_buffer_event *event,
|
||||||
|
void *entry, unsigned long irq_flags, int pc,
|
||||||
|
struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
enum event_trigger_type tt = ETT_NONE;
|
||||||
|
|
||||||
|
if (!__event_trigger_test_discard(file, buffer, event, entry, &tt))
|
||||||
|
trace_buffer_unlock_commit_regs(file->tr, buffer, event,
|
||||||
|
irq_flags, pc, regs);
|
||||||
|
|
||||||
|
if (tt)
|
||||||
|
event_triggers_post_call(file, tt, entry);
|
||||||
|
}
|
||||||
|
|
||||||
#define FILTER_PRED_INVALID ((unsigned short)-1)
|
#define FILTER_PRED_INVALID ((unsigned short)-1)
|
||||||
#define FILTER_PRED_IS_RIGHT (1 << 15)
|
#define FILTER_PRED_IS_RIGHT (1 << 15)
|
||||||
#define FILTER_PRED_FOLD (1 << 15)
|
#define FILTER_PRED_FOLD (1 << 15)
|
||||||
|
Loading…
Reference in New Issue
Block a user