* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.