* [PATCH tip 1/2] ring_buffer: remove unused flags parameter @ 2009-02-05 18:12 Arnaldo Carvalho de Melo 2009-02-05 22:17 ` Frederic Weisbecker 2009-02-06 0:02 ` Ingo Molnar 0 siblings, 2 replies; 12+ messages in thread From: Arnaldo Carvalho de Melo @ 2009-02-05 18:12 UTC (permalink / raw) To: Steven Rostedt Cc: Ingo Molnar, Frédéric Weisbecker, Jens Axboe, Linux Kernel Mailing List Impact: API change, cleanup >From ring_buffer_{lock_reserve,unlock_commit}. Cc: Ingo Molnar <mingo@elte.hu> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- block/blktrace.c | 8 +++--- include/linux/ring_buffer.h | 9 ++---- kernel/trace/kmemtrace.c | 12 +++----- kernel/trace/ring_buffer.c | 9 +----- kernel/trace/trace.c | 56 +++++++++++++------------------------ kernel/trace/trace_boot.c | 12 +++----- kernel/trace/trace_branch.c | 7 ++--- kernel/trace/trace_hw_branches.c | 6 ++-- kernel/trace/trace_mmiotrace.c | 12 +++----- kernel/trace/trace_power.c | 12 +++----- 10 files changed, 51 insertions(+), 92 deletions(-) $ codiff /tmp/vmlinux.before /tmp/vmlinux.after linux-2.6-tip/kernel/trace/trace.c: trace_vprintk | -14 trace_graph_return | -14 trace_graph_entry | -10 trace_function | -8 __ftrace_trace_stack | -8 ftrace_trace_userstack | -8 tracing_sched_switch_trace | -8 ftrace_trace_special | -12 tracing_sched_wakeup_trace | -8 9 functions changed, 90 bytes removed, diff: -90 linux-2.6-tip/block/blktrace.c: __blk_add_trace | -1 1 function changed, 1 bytes removed, diff: -1 /tmp/vmlinux.after: 10 functions changed, 91 bytes removed, diff: -91 diff --git a/block/blktrace.c b/block/blktrace.c index d9d7146..8e52f24 100644 --- a/block/blktrace.c +++ b/block/blktrace.c @@ -165,7 +165,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, struct task_struct *tsk = current; struct ring_buffer_event *event = NULL; struct blk_io_trace *t; - unsigned long flags; + unsigned long flags = 0; unsigned long *sequence; pid_t pid; int cpu, pc = 0; @@ -191,7 +191,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, tracing_record_cmdline(current); event = ring_buffer_lock_reserve(blk_tr->buffer, - sizeof(*t) + pdu_len, &flags); + sizeof(*t) + pdu_len); if (!event) return; @@ -241,11 +241,11 @@ record_it: memcpy((void *) t + sizeof(*t), pdu_data, pdu_len); if (blk_tr) { - ring_buffer_unlock_commit(blk_tr->buffer, event, flags); + ring_buffer_unlock_commit(blk_tr->buffer, event); if (pid != 0 && !(blk_tracer_flags.val & TRACE_BLK_OPT_CLASSIC) && (trace_flags & TRACE_ITER_STACKTRACE) != 0) - __trace_stack(blk_tr, flags, 5, pc); + __trace_stack(blk_tr, 0, 5, pc); trace_wake_up(); return; } diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index b3b3596..3110d92 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h @@ -74,13 +74,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); diff --git a/kernel/trace/kmemtrace.c b/kernel/trace/kmemtrace.c index f04c062..256749d 100644 --- a/kernel/trace/kmemtrace.c +++ b/kernel/trace/kmemtrace.c @@ -272,13 +272,11 @@ void kmemtrace_mark_alloc_node(enum kmemtrace_type_id type_id, struct ring_buffer_event *event; struct kmemtrace_alloc_entry *entry; struct trace_array *tr = kmemtrace_array; - unsigned long irq_flags; if (!kmem_tracing_enabled) return; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -292,7 +290,7 @@ void kmemtrace_mark_alloc_node(enum kmemtrace_type_id type_id, entry->gfp_flags = gfp_flags; entry->node = node; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); } @@ -305,13 +303,11 @@ void kmemtrace_mark_free(enum kmemtrace_type_id type_id, struct ring_buffer_event *event; struct kmemtrace_free_entry *entry; struct trace_array *tr = kmemtrace_array; - unsigned long irq_flags; if (!kmem_tracing_enabled) return; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -322,7 +318,7 @@ void kmemtrace_mark_free(enum kmemtrace_type_id type_id, entry->call_site = call_site; entry->ptr = ptr; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); } diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index b36d737..aee76b3 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -1257,7 +1257,6 @@ static DEFINE_PER_CPU(int, rb_need_resched); * ring_buffer_lock_reserve - reserve a part of the buffer * @buffer: the ring buffer to reserve from * @length: the length of the data to reserve (excluding event header) - * @flags: a pointer to save the interrupt flags * * Returns a reseverd event on the ring buffer to copy directly to. * The user of this interface will need to get the body to write into @@ -1270,9 +1269,7 @@ static DEFINE_PER_CPU(int, rb_need_resched); * If NULL is returned, then nothing has been allocated or locked. */ struct ring_buffer_event * -ring_buffer_lock_reserve(struct ring_buffer *buffer, - unsigned long length, - unsigned long *flags) +ring_buffer_lock_reserve(struct ring_buffer *buffer, unsigned long length) { struct ring_buffer_per_cpu *cpu_buffer; struct ring_buffer_event *event; @@ -1339,15 +1336,13 @@ static void rb_commit(struct ring_buffer_per_cpu *cpu_buffer, * ring_buffer_unlock_commit - commit a reserved * @buffer: The buffer to commit to * @event: The event pointer to commit. - * @flags: the interrupt flags received from ring_buffer_lock_reserve. * * This commits the data to the ring buffer, and releases any locks held. * * Must be paired with ring_buffer_lock_reserve. */ int ring_buffer_unlock_commit(struct ring_buffer *buffer, - struct ring_buffer_event *event, - unsigned long flags) + struct ring_buffer_event *event) { struct ring_buffer_per_cpu *cpu_buffer; int cpu = raw_smp_processor_id(); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 3536ef4..eb453a2 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -783,14 +783,12 @@ trace_function(struct trace_array *tr, { struct ring_buffer_event *event; struct ftrace_entry *entry; - unsigned long irq_flags; /* If we are reading the ring buffer, don't trace */ if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) return; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -798,7 +796,7 @@ trace_function(struct trace_array *tr, entry->ent.type = TRACE_FN; entry->ip = ip; entry->parent_ip = parent_ip; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); } #ifdef CONFIG_FUNCTION_GRAPH_TRACER @@ -809,20 +807,18 @@ static void __trace_graph_entry(struct trace_array *tr, { struct ring_buffer_event *event; struct ftrace_graph_ent_entry *entry; - unsigned long irq_flags; if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) return; - event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, flags, pc); entry->ent.type = TRACE_GRAPH_ENT; entry->graph_ent = *trace; - ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags); + ring_buffer_unlock_commit(global_trace.buffer, event); } static void __trace_graph_return(struct trace_array *tr, @@ -832,20 +828,18 @@ static void __trace_graph_return(struct trace_array *tr, { struct ring_buffer_event *event; struct ftrace_graph_ret_entry *entry; - unsigned long irq_flags; if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) return; - event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, flags, pc); entry->ent.type = TRACE_GRAPH_RET; entry->ret = *trace; - ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags); + ring_buffer_unlock_commit(global_trace.buffer, event); } #endif @@ -866,10 +860,8 @@ static void __ftrace_trace_stack(struct trace_array *tr, struct ring_buffer_event *event; struct stack_entry *entry; struct stack_trace trace; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -884,7 +876,7 @@ static void __ftrace_trace_stack(struct trace_array *tr, trace.entries = entry->caller; save_stack_trace(&trace); - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); #endif } @@ -912,13 +904,11 @@ static void ftrace_trace_userstack(struct trace_array *tr, struct ring_buffer_event *event; struct userstack_entry *entry; struct stack_trace trace; - unsigned long irq_flags; if (!(trace_flags & TRACE_ITER_USERSTACKTRACE)) return; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -933,7 +923,7 @@ static void ftrace_trace_userstack(struct trace_array *tr, trace.entries = entry->caller; save_stack_trace_user(&trace); - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); #endif } @@ -950,10 +940,8 @@ ftrace_trace_special(void *__tr, struct ring_buffer_event *event; struct trace_array *tr = __tr; struct special_entry *entry; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -962,9 +950,9 @@ ftrace_trace_special(void *__tr, entry->arg1 = arg1; entry->arg2 = arg2; entry->arg3 = arg3; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); - ftrace_trace_stack(tr, irq_flags, 4, pc); - ftrace_trace_userstack(tr, irq_flags, pc); + ring_buffer_unlock_commit(tr->buffer, event); + ftrace_trace_stack(tr, 0, 4, pc); + ftrace_trace_userstack(tr, 0, pc); trace_wake_up(); } @@ -984,10 +972,8 @@ tracing_sched_switch_trace(struct trace_array *tr, { struct ring_buffer_event *event; struct ctx_switch_entry *entry; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -1000,7 +986,7 @@ tracing_sched_switch_trace(struct trace_array *tr, entry->next_prio = next->prio; entry->next_state = next->state; entry->next_cpu = task_cpu(next); - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); ftrace_trace_stack(tr, flags, 5, pc); ftrace_trace_userstack(tr, flags, pc); } @@ -1013,10 +999,8 @@ tracing_sched_wakeup_trace(struct trace_array *tr, { struct ring_buffer_event *event; struct ctx_switch_entry *entry; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) return; entry = ring_buffer_event_data(event); @@ -1029,7 +1013,7 @@ tracing_sched_wakeup_trace(struct trace_array *tr, entry->next_prio = wakee->prio; entry->next_state = wakee->state; entry->next_cpu = task_cpu(wakee); - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); ftrace_trace_stack(tr, flags, 6, pc); ftrace_trace_userstack(tr, flags, pc); @@ -2841,7 +2825,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) trace_buf[len] = 0; size = sizeof(*entry) + len + 1; - event = ring_buffer_lock_reserve(tr->buffer, size, &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, size); if (!event) goto out_unlock; entry = ring_buffer_event_data(event); @@ -2852,7 +2836,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) memcpy(&entry->buf, trace_buf, len); entry->buf[len] = 0; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); out_unlock: spin_unlock_irqrestore(&trace_buf_lock, irq_flags); diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c index 1f07895..4e08deb 100644 --- a/kernel/trace/trace_boot.c +++ b/kernel/trace/trace_boot.c @@ -132,7 +132,6 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { struct ring_buffer_event *event; struct trace_boot_call *entry; - unsigned long irq_flags; struct trace_array *tr = boot_trace; if (!tr || !pre_initcalls_finished) @@ -144,15 +143,14 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) sprint_symbol(bt->func, (unsigned long)fn); preempt_disable(); - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, 0, 0); entry->ent.type = TRACE_BOOT_CALL; entry->boot_call = *bt; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); @@ -164,7 +162,6 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) { struct ring_buffer_event *event; struct trace_boot_ret *entry; - unsigned long irq_flags; struct trace_array *tr = boot_trace; if (!tr || !pre_initcalls_finished) @@ -173,15 +170,14 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) sprint_symbol(bt->func, (unsigned long)fn); preempt_disable(); - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, 0, 0); entry->ent.type = TRACE_BOOT_RET; entry->boot_ret = *bt; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c index 027e836..770e52a 100644 --- a/kernel/trace/trace_branch.c +++ b/kernel/trace/trace_branch.c @@ -33,7 +33,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) struct trace_array *tr = branch_tracer; struct ring_buffer_event *event; struct trace_branch *entry; - unsigned long flags, irq_flags; + unsigned long flags; int cpu, pc; const char *p; @@ -52,8 +52,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) if (atomic_inc_return(&tr->data[cpu]->disabled) != 1) goto out; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; @@ -75,7 +74,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) entry->line = f->line; entry->correct = val == expect; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); out: atomic_dec(&tr->data[cpu]->disabled); diff --git a/kernel/trace/trace_hw_branches.c b/kernel/trace/trace_hw_branches.c index fff3545..e720c00 100644 --- a/kernel/trace/trace_hw_branches.c +++ b/kernel/trace/trace_hw_branches.c @@ -175,7 +175,7 @@ void trace_hw_branch(u64 from, u64 to) struct trace_array *tr = hw_branch_trace; struct ring_buffer_event *event; struct hw_branch_entry *entry; - unsigned long irq1, irq2; + unsigned long irq1; int cpu; if (unlikely(!tr)) @@ -189,7 +189,7 @@ void trace_hw_branch(u64 from, u64 to) if (atomic_inc_return(&tr->data[cpu]->disabled) != 1) goto out; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), &irq2); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; entry = ring_buffer_event_data(event); @@ -198,7 +198,7 @@ void trace_hw_branch(u64 from, u64 to) entry->ent.cpu = cpu; entry->from = from; entry->to = to; - ring_buffer_unlock_commit(tr->buffer, event, irq2); + ring_buffer_unlock_commit(tr->buffer, event); out: atomic_dec(&tr->data[cpu]->disabled); diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c index ec78e24..104ddeb 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c @@ -307,10 +307,8 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, { struct ring_buffer_event *event; struct trace_mmiotrace_rw *entry; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) { atomic_inc(&dropped_count); return; @@ -319,7 +317,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, tracing_generic_entry_update(&entry->ent, 0, preempt_count()); entry->ent.type = TRACE_MMIO_RW; entry->rw = *rw; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); } @@ -337,10 +335,8 @@ static void __trace_mmiotrace_map(struct trace_array *tr, { struct ring_buffer_event *event; struct trace_mmiotrace_map *entry; - unsigned long irq_flags; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) { atomic_inc(&dropped_count); return; @@ -349,7 +345,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr, tracing_generic_entry_update(&entry->ent, 0, preempt_count()); entry->ent.type = TRACE_MMIO_MAP; entry->map = *map; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); } diff --git a/kernel/trace/trace_power.c b/kernel/trace/trace_power.c index faa6ab7..3b1a292 100644 --- a/kernel/trace/trace_power.c +++ b/kernel/trace/trace_power.c @@ -115,7 +115,6 @@ void trace_power_end(struct power_trace *it) struct ring_buffer_event *event; struct trace_power *entry; struct trace_array_cpu *data; - unsigned long irq_flags; struct trace_array *tr = power_trace; if (!trace_power_enabled) @@ -125,15 +124,14 @@ void trace_power_end(struct power_trace *it) it->end = ktime_get(); data = tr->data[smp_processor_id()]; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, 0, 0); entry->ent.type = TRACE_POWER; entry->state_data = *it; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); @@ -148,7 +146,6 @@ void trace_power_mark(struct power_trace *it, unsigned int type, struct ring_buffer_event *event; struct trace_power *entry; struct trace_array_cpu *data; - unsigned long irq_flags; struct trace_array *tr = power_trace; if (!trace_power_enabled) @@ -162,15 +159,14 @@ void trace_power_mark(struct power_trace *it, unsigned int type, it->end = it->stamp; data = tr->data[smp_processor_id()]; - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), - &irq_flags); + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); if (!event) goto out; entry = ring_buffer_event_data(event); tracing_generic_entry_update(&entry->ent, 0, 0); entry->ent.type = TRACE_POWER; entry->state_data = *it; - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); + ring_buffer_unlock_commit(tr->buffer, event); trace_wake_up(); -- 1.6.0.6 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 18:12 [PATCH tip 1/2] ring_buffer: remove unused flags parameter Arnaldo Carvalho de Melo @ 2009-02-05 22:17 ` Frederic Weisbecker 2009-02-05 22:39 ` Steven Rostedt ` (2 more replies) 2009-02-06 0:02 ` Ingo Molnar 1 sibling, 3 replies; 12+ messages in thread From: Frederic Weisbecker @ 2009-02-05 22:17 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Steven Rostedt, Ingo Molnar, Jens Axboe, Linux Kernel Mailing List On Thu, Feb 05, 2009 at 04:12:56PM -0200, Arnaldo Carvalho de Melo wrote: > Impact: API change, cleanup > > From ring_buffer_{lock_reserve,unlock_commit}. > > Cc: Ingo Molnar <mingo@elte.hu> > Cc: Frédéric Weisbecker <fweisbec@gmail.com> > Cc: Jens Axboe <jens.axboe@oracle.com> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > block/blktrace.c | 8 +++--- > include/linux/ring_buffer.h | 9 ++---- > kernel/trace/kmemtrace.c | 12 +++----- > kernel/trace/ring_buffer.c | 9 +----- > kernel/trace/trace.c | 56 +++++++++++++------------------------ > kernel/trace/trace_boot.c | 12 +++----- > kernel/trace/trace_branch.c | 7 ++--- > kernel/trace/trace_hw_branches.c | 6 ++-- > kernel/trace/trace_mmiotrace.c | 12 +++----- > kernel/trace/trace_power.c | 12 +++----- > 10 files changed, 51 insertions(+), 92 deletions(-) > > $ codiff /tmp/vmlinux.before /tmp/vmlinux.after > linux-2.6-tip/kernel/trace/trace.c: > trace_vprintk | -14 > trace_graph_return | -14 > trace_graph_entry | -10 > trace_function | -8 > __ftrace_trace_stack | -8 > ftrace_trace_userstack | -8 > tracing_sched_switch_trace | -8 > ftrace_trace_special | -12 > tracing_sched_wakeup_trace | -8 > 9 functions changed, 90 bytes removed, diff: -90 > > linux-2.6-tip/block/blktrace.c: > __blk_add_trace | -1 > 1 function changed, 1 bytes removed, diff: -1 > > /tmp/vmlinux.after: > 10 functions changed, 91 bytes removed, diff: -91 codiff... I didn't know this great tool! :-) > diff --git a/block/blktrace.c b/block/blktrace.c > index d9d7146..8e52f24 100644 > --- a/block/blktrace.c > +++ b/block/blktrace.c > @@ -165,7 +165,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, > struct task_struct *tsk = current; > struct ring_buffer_event *event = NULL; > struct blk_io_trace *t; > - unsigned long flags; > + unsigned long flags = 0; > unsigned long *sequence; > pid_t pid; > int cpu, pc = 0; > @@ -191,7 +191,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, > tracing_record_cmdline(current); > > event = ring_buffer_lock_reserve(blk_tr->buffer, > - sizeof(*t) + pdu_len, &flags); > + sizeof(*t) + pdu_len); > if (!event) > return; > > @@ -241,11 +241,11 @@ record_it: > memcpy((void *) t + sizeof(*t), pdu_data, pdu_len); > > if (blk_tr) { > - ring_buffer_unlock_commit(blk_tr->buffer, event, flags); > + ring_buffer_unlock_commit(blk_tr->buffer, event); > if (pid != 0 && > !(blk_tracer_flags.val & TRACE_BLK_OPT_CLASSIC) && > (trace_flags & TRACE_ITER_STACKTRACE) != 0) > - __trace_stack(blk_tr, flags, 5, pc); > + __trace_stack(blk_tr, 0, 5, pc); > trace_wake_up(); > return; > } > diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h > index b3b3596..3110d92 100644 > --- a/include/linux/ring_buffer.h > +++ b/include/linux/ring_buffer.h > @@ -74,13 +74,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); > > diff --git a/kernel/trace/kmemtrace.c b/kernel/trace/kmemtrace.c > index f04c062..256749d 100644 > --- a/kernel/trace/kmemtrace.c > +++ b/kernel/trace/kmemtrace.c > @@ -272,13 +272,11 @@ void kmemtrace_mark_alloc_node(enum kmemtrace_type_id type_id, > struct ring_buffer_event *event; > struct kmemtrace_alloc_entry *entry; > struct trace_array *tr = kmemtrace_array; > - unsigned long irq_flags; > > if (!kmem_tracing_enabled) > return; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -292,7 +290,7 @@ void kmemtrace_mark_alloc_node(enum kmemtrace_type_id type_id, > entry->gfp_flags = gfp_flags; > entry->node = node; > > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > } > @@ -305,13 +303,11 @@ void kmemtrace_mark_free(enum kmemtrace_type_id type_id, > struct ring_buffer_event *event; > struct kmemtrace_free_entry *entry; > struct trace_array *tr = kmemtrace_array; > - unsigned long irq_flags; > > if (!kmem_tracing_enabled) > return; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -322,7 +318,7 @@ void kmemtrace_mark_free(enum kmemtrace_type_id type_id, > entry->call_site = call_site; > entry->ptr = ptr; > > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > } > diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c > index b36d737..aee76b3 100644 > --- a/kernel/trace/ring_buffer.c > +++ b/kernel/trace/ring_buffer.c > @@ -1257,7 +1257,6 @@ static DEFINE_PER_CPU(int, rb_need_resched); > * ring_buffer_lock_reserve - reserve a part of the buffer > * @buffer: the ring buffer to reserve from > * @length: the length of the data to reserve (excluding event header) > - * @flags: a pointer to save the interrupt flags > * > * Returns a reseverd event on the ring buffer to copy directly to. > * The user of this interface will need to get the body to write into > @@ -1270,9 +1269,7 @@ static DEFINE_PER_CPU(int, rb_need_resched); > * If NULL is returned, then nothing has been allocated or locked. > */ > struct ring_buffer_event * > -ring_buffer_lock_reserve(struct ring_buffer *buffer, > - unsigned long length, > - unsigned long *flags) > +ring_buffer_lock_reserve(struct ring_buffer *buffer, unsigned long length) > { > struct ring_buffer_per_cpu *cpu_buffer; > struct ring_buffer_event *event; > @@ -1339,15 +1336,13 @@ static void rb_commit(struct ring_buffer_per_cpu *cpu_buffer, > * ring_buffer_unlock_commit - commit a reserved > * @buffer: The buffer to commit to > * @event: The event pointer to commit. > - * @flags: the interrupt flags received from ring_buffer_lock_reserve. > * > * This commits the data to the ring buffer, and releases any locks held. > * > * Must be paired with ring_buffer_lock_reserve. > */ > int ring_buffer_unlock_commit(struct ring_buffer *buffer, > - struct ring_buffer_event *event, > - unsigned long flags) > + struct ring_buffer_event *event) > { > struct ring_buffer_per_cpu *cpu_buffer; > int cpu = raw_smp_processor_id(); > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index 3536ef4..eb453a2 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -783,14 +783,12 @@ trace_function(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct ftrace_entry *entry; > - unsigned long irq_flags; > > /* If we are reading the ring buffer, don't trace */ > if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) > return; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -798,7 +796,7 @@ trace_function(struct trace_array *tr, > entry->ent.type = TRACE_FN; > entry->ip = ip; > entry->parent_ip = parent_ip; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > } > > #ifdef CONFIG_FUNCTION_GRAPH_TRACER > @@ -809,20 +807,18 @@ static void __trace_graph_entry(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct ftrace_graph_ent_entry *entry; > - unsigned long irq_flags; > > if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) > return; > > - event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, flags, pc); > entry->ent.type = TRACE_GRAPH_ENT; > entry->graph_ent = *trace; > - ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags); > + ring_buffer_unlock_commit(global_trace.buffer, event); > } > > static void __trace_graph_return(struct trace_array *tr, > @@ -832,20 +828,18 @@ static void __trace_graph_return(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct ftrace_graph_ret_entry *entry; > - unsigned long irq_flags; > > if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled)))) > return; > > - event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, flags, pc); > entry->ent.type = TRACE_GRAPH_RET; > entry->ret = *trace; > - ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags); > + ring_buffer_unlock_commit(global_trace.buffer, event); > } > #endif > > @@ -866,10 +860,8 @@ static void __ftrace_trace_stack(struct trace_array *tr, > struct ring_buffer_event *event; > struct stack_entry *entry; > struct stack_trace trace; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -884,7 +876,7 @@ static void __ftrace_trace_stack(struct trace_array *tr, > trace.entries = entry->caller; > > save_stack_trace(&trace); > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > #endif > } > > @@ -912,13 +904,11 @@ static void ftrace_trace_userstack(struct trace_array *tr, > struct ring_buffer_event *event; > struct userstack_entry *entry; > struct stack_trace trace; > - unsigned long irq_flags; > > if (!(trace_flags & TRACE_ITER_USERSTACKTRACE)) > return; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -933,7 +923,7 @@ static void ftrace_trace_userstack(struct trace_array *tr, > trace.entries = entry->caller; > > save_stack_trace_user(&trace); > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > #endif > } > > @@ -950,10 +940,8 @@ ftrace_trace_special(void *__tr, > struct ring_buffer_event *event; > struct trace_array *tr = __tr; > struct special_entry *entry; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -962,9 +950,9 @@ ftrace_trace_special(void *__tr, > entry->arg1 = arg1; > entry->arg2 = arg2; > entry->arg3 = arg3; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > - ftrace_trace_stack(tr, irq_flags, 4, pc); > - ftrace_trace_userstack(tr, irq_flags, pc); > + ring_buffer_unlock_commit(tr->buffer, event); > + ftrace_trace_stack(tr, 0, 4, pc); > + ftrace_trace_userstack(tr, 0, pc); > > trace_wake_up(); > } > @@ -984,10 +972,8 @@ tracing_sched_switch_trace(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct ctx_switch_entry *entry; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -1000,7 +986,7 @@ tracing_sched_switch_trace(struct trace_array *tr, > entry->next_prio = next->prio; > entry->next_state = next->state; > entry->next_cpu = task_cpu(next); > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > ftrace_trace_stack(tr, flags, 5, pc); > ftrace_trace_userstack(tr, flags, pc); > } > @@ -1013,10 +999,8 @@ tracing_sched_wakeup_trace(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct ctx_switch_entry *entry; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > return; > entry = ring_buffer_event_data(event); > @@ -1029,7 +1013,7 @@ tracing_sched_wakeup_trace(struct trace_array *tr, > entry->next_prio = wakee->prio; > entry->next_state = wakee->state; > entry->next_cpu = task_cpu(wakee); > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > ftrace_trace_stack(tr, flags, 6, pc); > ftrace_trace_userstack(tr, flags, pc); > > @@ -2841,7 +2825,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) > trace_buf[len] = 0; > > size = sizeof(*entry) + len + 1; > - event = ring_buffer_lock_reserve(tr->buffer, size, &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, size); > if (!event) > goto out_unlock; > entry = ring_buffer_event_data(event); > @@ -2852,7 +2836,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) > > memcpy(&entry->buf, trace_buf, len); > entry->buf[len] = 0; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > out_unlock: > spin_unlock_irqrestore(&trace_buf_lock, irq_flags); > diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c > index 1f07895..4e08deb 100644 > --- a/kernel/trace/trace_boot.c > +++ b/kernel/trace/trace_boot.c > @@ -132,7 +132,6 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) > { > struct ring_buffer_event *event; > struct trace_boot_call *entry; > - unsigned long irq_flags; > struct trace_array *tr = boot_trace; > > if (!tr || !pre_initcalls_finished) > @@ -144,15 +143,14 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) > sprint_symbol(bt->func, (unsigned long)fn); > preempt_disable(); > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, 0, 0); > entry->ent.type = TRACE_BOOT_CALL; > entry->boot_call = *bt; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > > @@ -164,7 +162,6 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) > { > struct ring_buffer_event *event; > struct trace_boot_ret *entry; > - unsigned long irq_flags; > struct trace_array *tr = boot_trace; > > if (!tr || !pre_initcalls_finished) > @@ -173,15 +170,14 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) > sprint_symbol(bt->func, (unsigned long)fn); > preempt_disable(); > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, 0, 0); > entry->ent.type = TRACE_BOOT_RET; > entry->boot_ret = *bt; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > > diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c > index 027e836..770e52a 100644 > --- a/kernel/trace/trace_branch.c > +++ b/kernel/trace/trace_branch.c > @@ -33,7 +33,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) > struct trace_array *tr = branch_tracer; > struct ring_buffer_event *event; > struct trace_branch *entry; > - unsigned long flags, irq_flags; > + unsigned long flags; > int cpu, pc; > const char *p; > > @@ -52,8 +52,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) > if (atomic_inc_return(&tr->data[cpu]->disabled) != 1) > goto out; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > > @@ -75,7 +74,7 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) > entry->line = f->line; > entry->correct = val == expect; > > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > out: > atomic_dec(&tr->data[cpu]->disabled); > diff --git a/kernel/trace/trace_hw_branches.c b/kernel/trace/trace_hw_branches.c > index fff3545..e720c00 100644 > --- a/kernel/trace/trace_hw_branches.c > +++ b/kernel/trace/trace_hw_branches.c > @@ -175,7 +175,7 @@ void trace_hw_branch(u64 from, u64 to) > struct trace_array *tr = hw_branch_trace; > struct ring_buffer_event *event; > struct hw_branch_entry *entry; > - unsigned long irq1, irq2; > + unsigned long irq1; > int cpu; > > if (unlikely(!tr)) > @@ -189,7 +189,7 @@ void trace_hw_branch(u64 from, u64 to) > if (atomic_inc_return(&tr->data[cpu]->disabled) != 1) > goto out; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), &irq2); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > entry = ring_buffer_event_data(event); > @@ -198,7 +198,7 @@ void trace_hw_branch(u64 from, u64 to) > entry->ent.cpu = cpu; > entry->from = from; > entry->to = to; > - ring_buffer_unlock_commit(tr->buffer, event, irq2); > + ring_buffer_unlock_commit(tr->buffer, event); > > out: > atomic_dec(&tr->data[cpu]->disabled); > diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c > index ec78e24..104ddeb 100644 > --- a/kernel/trace/trace_mmiotrace.c > +++ b/kernel/trace/trace_mmiotrace.c > @@ -307,10 +307,8 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct trace_mmiotrace_rw *entry; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) { > atomic_inc(&dropped_count); > return; > @@ -319,7 +317,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, > tracing_generic_entry_update(&entry->ent, 0, preempt_count()); > entry->ent.type = TRACE_MMIO_RW; > entry->rw = *rw; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > } > @@ -337,10 +335,8 @@ static void __trace_mmiotrace_map(struct trace_array *tr, > { > struct ring_buffer_event *event; > struct trace_mmiotrace_map *entry; > - unsigned long irq_flags; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) { > atomic_inc(&dropped_count); > return; > @@ -349,7 +345,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr, > tracing_generic_entry_update(&entry->ent, 0, preempt_count()); > entry->ent.type = TRACE_MMIO_MAP; > entry->map = *map; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > } > diff --git a/kernel/trace/trace_power.c b/kernel/trace/trace_power.c > index faa6ab7..3b1a292 100644 > --- a/kernel/trace/trace_power.c > +++ b/kernel/trace/trace_power.c > @@ -115,7 +115,6 @@ void trace_power_end(struct power_trace *it) > struct ring_buffer_event *event; > struct trace_power *entry; > struct trace_array_cpu *data; > - unsigned long irq_flags; > struct trace_array *tr = power_trace; > > if (!trace_power_enabled) > @@ -125,15 +124,14 @@ void trace_power_end(struct power_trace *it) > it->end = ktime_get(); > data = tr->data[smp_processor_id()]; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, 0, 0); > entry->ent.type = TRACE_POWER; > entry->state_data = *it; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > > @@ -148,7 +146,6 @@ void trace_power_mark(struct power_trace *it, unsigned int type, > struct ring_buffer_event *event; > struct trace_power *entry; > struct trace_array_cpu *data; > - unsigned long irq_flags; > struct trace_array *tr = power_trace; > > if (!trace_power_enabled) > @@ -162,15 +159,14 @@ void trace_power_mark(struct power_trace *it, unsigned int type, > it->end = it->stamp; > data = tr->data[smp_processor_id()]; > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > - &irq_flags); > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > if (!event) > goto out; > entry = ring_buffer_event_data(event); > tracing_generic_entry_update(&entry->ent, 0, 0); > entry->ent.type = TRACE_POWER; > entry->state_data = *it; > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > + ring_buffer_unlock_commit(tr->buffer, event); > > trace_wake_up(); > > -- > 1.6.0.6 > I don't what Steven planned (or not) with this flag. If it's not related to his lockless ring buffer project or anything, this cleanup is welcome. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 22:17 ` Frederic Weisbecker @ 2009-02-05 22:39 ` Steven Rostedt 2009-02-05 23:27 ` Frederic Weisbecker 2009-02-06 0:04 ` Ingo Molnar 2009-02-06 1:48 ` Arnaldo Carvalho de Melo 2 siblings, 1 reply; 12+ messages in thread From: Steven Rostedt @ 2009-02-05 22:39 UTC (permalink / raw) To: Frederic Weisbecker Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Jens Axboe, Linux Kernel Mailing List On Thu, 5 Feb 2009, Frederic Weisbecker wrote: > > > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > > - &irq_flags); > > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > > if (!event) > > goto out; > > entry = ring_buffer_event_data(event); > > tracing_generic_entry_update(&entry->ent, 0, 0); > > entry->ent.type = TRACE_POWER; > > entry->state_data = *it; > > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > > + ring_buffer_unlock_commit(tr->buffer, event); > > > > trace_wake_up(); > > > > -- > > 1.6.0.6 > > > > > I don't what Steven planned (or not) with this flag. > If it's not related to his lockless ring buffer project or anything, this > cleanup is welcome. The irq_flags is legacy from the original implementation. Arnaldo is just going through my todo list (without even me telling him what it is ;-) Now only if I can get Arnaldo to do the TODO list my wife gives me ;-) -- Steve ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 22:39 ` Steven Rostedt @ 2009-02-05 23:27 ` Frederic Weisbecker 0 siblings, 0 replies; 12+ messages in thread From: Frederic Weisbecker @ 2009-02-05 23:27 UTC (permalink / raw) To: Steven Rostedt Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Jens Axboe, Linux Kernel Mailing List On Thu, Feb 05, 2009 at 05:39:04PM -0500, Steven Rostedt wrote: > > On Thu, 5 Feb 2009, Frederic Weisbecker wrote: > > > > > > - event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry), > > > - &irq_flags); > > > + event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); > > > if (!event) > > > goto out; > > > entry = ring_buffer_event_data(event); > > > tracing_generic_entry_update(&entry->ent, 0, 0); > > > entry->ent.type = TRACE_POWER; > > > entry->state_data = *it; > > > - ring_buffer_unlock_commit(tr->buffer, event, irq_flags); > > > + ring_buffer_unlock_commit(tr->buffer, event); > > > > > > trace_wake_up(); > > > > > > -- > > > 1.6.0.6 > > > > > > > > > I don't what Steven planned (or not) with this flag. > > If it's not related to his lockless ring buffer project or anything, this > > cleanup is welcome. > > The irq_flags is legacy from the original implementation. Arnaldo is just > going through my todo list (without even me telling him what it is ;-) > > Now only if I can get Arnaldo to do the TODO list my wife gives me ;-) Can we pull it from somewhere? :-) > -- Steve > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 22:17 ` Frederic Weisbecker 2009-02-05 22:39 ` Steven Rostedt @ 2009-02-06 0:04 ` Ingo Molnar 2009-02-06 0:06 ` Ingo Molnar 2009-02-06 1:48 ` Arnaldo Carvalho de Melo 2 siblings, 1 reply; 12+ messages in thread From: Ingo Molnar @ 2009-02-06 0:04 UTC (permalink / raw) To: Frederic Weisbecker Cc: Arnaldo Carvalho de Melo, Steven Rostedt, Jens Axboe, Linux Kernel Mailing List * Frederic Weisbecker <fweisbec@gmail.com> wrote: > > $ codiff /tmp/vmlinux.before /tmp/vmlinux.after > > linux-2.6-tip/kernel/trace/trace.c: > > trace_vprintk | -14 > > trace_graph_return | -14 > > trace_graph_entry | -10 > > trace_function | -8 > > __ftrace_trace_stack | -8 > > ftrace_trace_userstack | -8 > > tracing_sched_switch_trace | -8 > > ftrace_trace_special | -12 > > tracing_sched_wakeup_trace | -8 > > 9 functions changed, 90 bytes removed, diff: -90 > > > > linux-2.6-tip/block/blktrace.c: > > __blk_add_trace | -1 > > 1 function changed, 1 bytes removed, diff: -1 > > > > /tmp/vmlinux.after: > > 10 functions changed, 91 bytes removed, diff: -91 > > > codiff... I didn't know this great tool! :-) yes, very nice! I've moved all the codiff output from the (discarded) diffstat section into the commit log, they are very much worth preserving. Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-06 0:04 ` Ingo Molnar @ 2009-02-06 0:06 ` Ingo Molnar 2009-02-06 0:09 ` Frederic Weisbecker 0 siblings, 1 reply; 12+ messages in thread From: Ingo Molnar @ 2009-02-06 0:06 UTC (permalink / raw) To: Frederic Weisbecker Cc: Arnaldo Carvalho de Melo, Steven Rostedt, Jens Axboe, Linux Kernel Mailing List > > codiff... I didn't know this great tool! :-) Btw., you can find this tool in the 'dwarves' package on most distros. Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-06 0:06 ` Ingo Molnar @ 2009-02-06 0:09 ` Frederic Weisbecker 0 siblings, 0 replies; 12+ messages in thread From: Frederic Weisbecker @ 2009-02-06 0:09 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Steven Rostedt, Jens Axboe, Linux Kernel Mailing List On Fri, Feb 06, 2009 at 01:06:30AM +0100, Ingo Molnar wrote: > > > > codiff... I didn't know this great tool! :-) > > Btw., you can find this tool in the 'dwarves' package on most distros. > > Ingo Exact, I just installed it. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 22:17 ` Frederic Weisbecker 2009-02-05 22:39 ` Steven Rostedt 2009-02-06 0:04 ` Ingo Molnar @ 2009-02-06 1:48 ` Arnaldo Carvalho de Melo 2009-02-06 2:41 ` Frederic Weisbecker 2 siblings, 1 reply; 12+ messages in thread From: Arnaldo Carvalho de Melo @ 2009-02-06 1:48 UTC (permalink / raw) To: Frederic Weisbecker Cc: Steven Rostedt, Ingo Molnar, Jens Axboe, Linux Kernel Mailing List Em Thu, Feb 05, 2009 at 11:17:02PM +0100, Frederic Weisbecker escreveu: > On Thu, Feb 05, 2009 at 04:12:56PM -0200, Arnaldo Carvalho de Melo wrote: > > Impact: API change, cleanup > > > > From ring_buffer_{lock_reserve,unlock_commit}. > > > > Cc: Ingo Molnar <mingo@elte.hu> > > Cc: Frédéric Weisbecker <fweisbec@gmail.com> > > Cc: Jens Axboe <jens.axboe@oracle.com> > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > --- > > block/blktrace.c | 8 +++--- > > include/linux/ring_buffer.h | 9 ++---- > > kernel/trace/kmemtrace.c | 12 +++----- > > kernel/trace/ring_buffer.c | 9 +----- > > kernel/trace/trace.c | 56 +++++++++++++------------------------ > > kernel/trace/trace_boot.c | 12 +++----- > > kernel/trace/trace_branch.c | 7 ++--- > > kernel/trace/trace_hw_branches.c | 6 ++-- > > kernel/trace/trace_mmiotrace.c | 12 +++----- > > kernel/trace/trace_power.c | 12 +++----- > > 10 files changed, 51 insertions(+), 92 deletions(-) > > > > $ codiff /tmp/vmlinux.before /tmp/vmlinux.after > > linux-2.6-tip/kernel/trace/trace.c: > > trace_vprintk | -14 > > trace_graph_return | -14 > > trace_graph_entry | -10 > > trace_function | -8 > > __ftrace_trace_stack | -8 > > ftrace_trace_userstack | -8 > > tracing_sched_switch_trace | -8 > > ftrace_trace_special | -12 > > tracing_sched_wakeup_trace | -8 > > 9 functions changed, 90 bytes removed, diff: -90 > > > > linux-2.6-tip/block/blktrace.c: > > __blk_add_trace | -1 > > 1 function changed, 1 bytes removed, diff: -1 > > > > /tmp/vmlinux.after: > > 10 functions changed, 91 bytes removed, diff: -91 > > > codiff... I didn't know this great tool! :-) My marketing dept is not so good, but since you liked it, I guess its appropriate to point you to this, that is the only documentation available about it and some of its friends, like pahole: https://ols2006.108.redhat.com/2007/Reprints/melo-Reprint.pdf Now back to the Rostedts extended TODO list. - Arnaldo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-06 1:48 ` Arnaldo Carvalho de Melo @ 2009-02-06 2:41 ` Frederic Weisbecker 0 siblings, 0 replies; 12+ messages in thread From: Frederic Weisbecker @ 2009-02-06 2:41 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Steven Rostedt, Ingo Molnar, Jens Axboe, Linux Kernel Mailing List On Thu, Feb 05, 2009 at 11:48:40PM -0200, Arnaldo Carvalho de Melo wrote: > Em Thu, Feb 05, 2009 at 11:17:02PM +0100, Frederic Weisbecker escreveu: > > On Thu, Feb 05, 2009 at 04:12:56PM -0200, Arnaldo Carvalho de Melo wrote: > > > Impact: API change, cleanup > > > > > > From ring_buffer_{lock_reserve,unlock_commit}. > > > > > > Cc: Ingo Molnar <mingo@elte.hu> > > > Cc: Frédéric Weisbecker <fweisbec@gmail.com> > > > Cc: Jens Axboe <jens.axboe@oracle.com> > > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > > --- > > > block/blktrace.c | 8 +++--- > > > include/linux/ring_buffer.h | 9 ++---- > > > kernel/trace/kmemtrace.c | 12 +++----- > > > kernel/trace/ring_buffer.c | 9 +----- > > > kernel/trace/trace.c | 56 +++++++++++++------------------------ > > > kernel/trace/trace_boot.c | 12 +++----- > > > kernel/trace/trace_branch.c | 7 ++--- > > > kernel/trace/trace_hw_branches.c | 6 ++-- > > > kernel/trace/trace_mmiotrace.c | 12 +++----- > > > kernel/trace/trace_power.c | 12 +++----- > > > 10 files changed, 51 insertions(+), 92 deletions(-) > > > > > > $ codiff /tmp/vmlinux.before /tmp/vmlinux.after > > > linux-2.6-tip/kernel/trace/trace.c: > > > trace_vprintk | -14 > > > trace_graph_return | -14 > > > trace_graph_entry | -10 > > > trace_function | -8 > > > __ftrace_trace_stack | -8 > > > ftrace_trace_userstack | -8 > > > tracing_sched_switch_trace | -8 > > > ftrace_trace_special | -12 > > > tracing_sched_wakeup_trace | -8 > > > 9 functions changed, 90 bytes removed, diff: -90 > > > > > > linux-2.6-tip/block/blktrace.c: > > > __blk_add_trace | -1 > > > 1 function changed, 1 bytes removed, diff: -1 > > > > > > /tmp/vmlinux.after: > > > 10 functions changed, 91 bytes removed, diff: -91 > > > > > > codiff... I didn't know this great tool! :-) > > My marketing dept is not so good, but since you liked it, I guess its > appropriate to point you to this, that is the only documentation > available about it and some of its friends, like pahole: > > https://ols2006.108.redhat.com/2007/Reprints/melo-Reprint.pdf Oh thank you! :-) > Now back to the Rostedts extended TODO list. > > - Arnaldo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip 1/2] ring_buffer: remove unused flags parameter 2009-02-05 18:12 [PATCH tip 1/2] ring_buffer: remove unused flags parameter Arnaldo Carvalho de Melo 2009-02-05 22:17 ` Frederic Weisbecker @ 2009-02-06 0:02 ` Ingo Molnar 2009-02-06 0:15 ` [PATCH] ring_buffer: remove unused flags parameter, fix Ingo Molnar 1 sibling, 1 reply; 12+ messages in thread From: Ingo Molnar @ 2009-02-06 0:02 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Steven Rostedt, Frédéric Weisbecker, Jens Axboe, Linux Kernel Mailing List * Arnaldo Carvalho de Melo <acme@redhat.com> wrote: > Impact: API change, cleanup > > >From ring_buffer_{lock_reserve,unlock_commit}. > > Cc: Ingo Molnar <mingo@elte.hu> > Cc: Frédéric Weisbecker <fweisbec@gmail.com> > Cc: Jens Axboe <jens.axboe@oracle.com> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > block/blktrace.c | 8 +++--- > include/linux/ring_buffer.h | 9 ++---- > kernel/trace/kmemtrace.c | 12 +++----- > kernel/trace/ring_buffer.c | 9 +----- > kernel/trace/trace.c | 56 +++++++++++++------------------------ > kernel/trace/trace_boot.c | 12 +++----- > kernel/trace/trace_branch.c | 7 ++--- > kernel/trace/trace_hw_branches.c | 6 ++-- > kernel/trace/trace_mmiotrace.c | 12 +++----- > kernel/trace/trace_power.c | 12 +++----- > 10 files changed, 51 insertions(+), 92 deletions(-) Applied to tip:tracing/ftrace, thanks Arnaldo! Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] ring_buffer: remove unused flags parameter, fix 2009-02-06 0:02 ` Ingo Molnar @ 2009-02-06 0:15 ` Ingo Molnar 2009-02-06 1:43 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 12+ messages in thread From: Ingo Molnar @ 2009-02-06 0:15 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Steven Rostedt, Frédéric Weisbecker, Jens Axboe, Linux Kernel Mailing List Small fixlet below, applied to tip:tracing/ftrace. Ingo ---------------> >From 304cc6ae1bf7a8e6d00053fbe0b7e2b26cdddda2 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Fri, 6 Feb 2009 01:12:02 +0100 Subject: [PATCH] ring_buffer: remove unused flags parameter, fix Oprofile's ring-buffer use was not considered. Signed-off-by: Ingo Molnar <mingo@elte.hu> --- drivers/oprofile/cpu_buffer.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c index e76d715..f0e99d4 100644 --- a/drivers/oprofile/cpu_buffer.c +++ b/drivers/oprofile/cpu_buffer.c @@ -161,7 +161,7 @@ struct op_sample { entry->event = ring_buffer_lock_reserve (op_ring_buffer_write, sizeof(struct op_sample) + - size * sizeof(entry->sample->data[0]), &entry->irq_flags); + size * sizeof(entry->sample->data[0])); if (entry->event) entry->sample = ring_buffer_event_data(entry->event); else @@ -178,8 +178,7 @@ struct op_sample int op_cpu_buffer_write_commit(struct op_entry *entry) { - return ring_buffer_unlock_commit(op_ring_buffer_write, entry->event, - entry->irq_flags); + return ring_buffer_unlock_commit(op_ring_buffer_write, entry->event); } struct op_sample *op_cpu_buffer_read_entry(struct op_entry *entry, int cpu) ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] ring_buffer: remove unused flags parameter, fix 2009-02-06 0:15 ` [PATCH] ring_buffer: remove unused flags parameter, fix Ingo Molnar @ 2009-02-06 1:43 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 12+ messages in thread From: Arnaldo Carvalho de Melo @ 2009-02-06 1:43 UTC (permalink / raw) To: Ingo Molnar Cc: Steven Rostedt, Frédéric Weisbecker, Jens Axboe, Linux Kernel Mailing List Em Fri, Feb 06, 2009 at 01:15:00AM +0100, Ingo Molnar escreveu: > > Small fixlet below, applied to tip:tracing/ftrace. > > Ingo > > ---------------> > >From 304cc6ae1bf7a8e6d00053fbe0b7e2b26cdddda2 Mon Sep 17 00:00:00 2001 > From: Ingo Molnar <mingo@elte.hu> > Date: Fri, 6 Feb 2009 01:12:02 +0100 > Subject: [PATCH] ring_buffer: remove unused flags parameter, fix > > Oprofile's ring-buffer use was not considered. Thank you, adding oprofile to my kvm minimal config for tracing devel. - Arnaldo ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2009-02-06 2:41 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-02-05 18:12 [PATCH tip 1/2] ring_buffer: remove unused flags parameter Arnaldo Carvalho de Melo 2009-02-05 22:17 ` Frederic Weisbecker 2009-02-05 22:39 ` Steven Rostedt 2009-02-05 23:27 ` Frederic Weisbecker 2009-02-06 0:04 ` Ingo Molnar 2009-02-06 0:06 ` Ingo Molnar 2009-02-06 0:09 ` Frederic Weisbecker 2009-02-06 1:48 ` Arnaldo Carvalho de Melo 2009-02-06 2:41 ` Frederic Weisbecker 2009-02-06 0:02 ` Ingo Molnar 2009-02-06 0:15 ` [PATCH] ring_buffer: remove unused flags parameter, fix Ingo Molnar 2009-02-06 1:43 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox