* Re: [tip:tracing/urgent] tracing: Add pipe_close interface
[not found] <tip-c521efd1700a8c0f7ce26f011f5eaecca17fabfa@git.kernel.org>
@ 2009-12-09 6:35 ` KOSAKI Motohiro
2009-12-09 14:08 ` Steven Rostedt
2009-12-10 7:48 ` [tip:tracing/core] tracing: Only call pipe_close if pipe_close is defined tip-bot for Steven Rostedt
0 siblings, 2 replies; 4+ messages in thread
From: KOSAKI Motohiro @ 2009-12-09 6:35 UTC (permalink / raw)
To: linux-kernel, mingo, hpa, rostedt, srostedt, tglx
Cc: kosaki.motohiro, linux-tip-commits, hpa, mingo, rostedt, srostedt, tglx
> Commit-ID: c521efd1700a8c0f7ce26f011f5eaecca17fabfa
> Gitweb: http://git.kernel.org/tip/c521efd1700a8c0f7ce26f011f5eaecca17fabfa
> Author: Steven Rostedt <srostedt@redhat.com>
> AuthorDate: Mon, 7 Dec 2009 09:06:24 -0500
> Committer: Steven Rostedt <rostedt@goodmis.org>
> CommitDate: Mon, 7 Dec 2009 12:01:35 -0500
>
> tracing: Add pipe_close interface
>
> An ftrace plugin can add a pipe_open interface when the user opens
> trace_pipe. But if the plugin allocates something within the pipe_open
> it can not free it because there exists no pipe_close. The hook to
> the trace file open has a corresponding close. The closing of the
> trace_pipe file should also have a corresponding close.
>
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
> kernel/trace/trace.c | 4 ++++
> kernel/trace/trace.h | 2 ++
> 2 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index 874f289..f804b40 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -2898,6 +2898,10 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
> else
> cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
>
> +
> + if (iter->trace->pipe_open)
> + iter->trace->pipe_close(iter);
> +
What's happen if pipe_close is NULL? Wny following straightforward check
is wrong?
I mean the above description explain pipe_close is only useful if plugin
allocate something at pipe_open. then allowing NULL seems natural.
if (iter->trace->pipe_close)
iter->trace->pipe_close(iter);
just nit.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [tip:tracing/urgent] tracing: Add pipe_close interface
2009-12-09 6:35 ` [tip:tracing/urgent] tracing: Add pipe_close interface KOSAKI Motohiro
@ 2009-12-09 14:08 ` Steven Rostedt
2009-12-09 14:16 ` Ingo Molnar
2009-12-10 7:48 ` [tip:tracing/core] tracing: Only call pipe_close if pipe_close is defined tip-bot for Steven Rostedt
1 sibling, 1 reply; 4+ messages in thread
From: Steven Rostedt @ 2009-12-09 14:08 UTC (permalink / raw)
To: KOSAKI Motohiro
Cc: linux-kernel, mingo, hpa, srostedt, tglx, linux-tip-commits
On Wed, 2009-12-09 at 15:35 +0900, KOSAKI Motohiro wrote:
> > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > index 874f289..f804b40 100644
> > --- a/kernel/trace/trace.c
> > +++ b/kernel/trace/trace.c
> > @@ -2898,6 +2898,10 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
> > else
> > cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
> >
> > +
> > + if (iter->trace->pipe_open)
> > + iter->trace->pipe_close(iter);
> > +
>
> What's happen if pipe_close is NULL? Wny following straightforward check
> is wrong?
> I mean the above description explain pipe_close is only useful if plugin
> allocate something at pipe_open. then allowing NULL seems natural.
>
> if (iter->trace->pipe_close)
> iter->trace->pipe_close(iter);
Ug, good point (stupid cut & paste should be illegal).
Ingo, I'll fix this up too in the next patch set. Want me to rebase it
or just start with this fix?
-- Steve
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [tip:tracing/urgent] tracing: Add pipe_close interface
2009-12-09 14:08 ` Steven Rostedt
@ 2009-12-09 14:16 ` Ingo Molnar
0 siblings, 0 replies; 4+ messages in thread
From: Ingo Molnar @ 2009-12-09 14:16 UTC (permalink / raw)
To: Steven Rostedt
Cc: KOSAKI Motohiro, linux-kernel, mingo, hpa, srostedt, tglx,
linux-tip-commits
* Steven Rostedt <rostedt@goodmis.org> wrote:
> On Wed, 2009-12-09 at 15:35 +0900, KOSAKI Motohiro wrote:
>
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index 874f289..f804b40 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -2898,6 +2898,10 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
> > > else
> > > cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
> > >
> > > +
> > > + if (iter->trace->pipe_open)
> > > + iter->trace->pipe_close(iter);
> > > +
> >
> > What's happen if pipe_close is NULL? Wny following straightforward check
> > is wrong?
> > I mean the above description explain pipe_close is only useful if plugin
> > allocate something at pipe_open. then allowing NULL seems natural.
> >
> > if (iter->trace->pipe_close)
> > iter->trace->pipe_close(iter);
>
> Ug, good point (stupid cut & paste should be illegal).
>
> Ingo, I'll fix this up too in the next patch set. Want me to rebase it
> or just start with this fix?
I'd suggest to start with a fix. Thanks,
Ingo
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tip:tracing/core] tracing: Only call pipe_close if pipe_close is defined
2009-12-09 6:35 ` [tip:tracing/urgent] tracing: Add pipe_close interface KOSAKI Motohiro
2009-12-09 14:08 ` Steven Rostedt
@ 2009-12-10 7:48 ` tip-bot for Steven Rostedt
1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Steven Rostedt @ 2009-12-10 7:48 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, rostedt, srostedt, tglx, kosaki.motohiro
Commit-ID: 29bf4a5e3fed3dde3eb629a0cb1762c1e9217458
Gitweb: http://git.kernel.org/tip/29bf4a5e3fed3dde3eb629a0cb1762c1e9217458
Author: Steven Rostedt <srostedt@redhat.com>
AuthorDate: Wed, 9 Dec 2009 12:37:43 -0500
Committer: Steven Rostedt <rostedt@goodmis.org>
CommitDate: Wed, 9 Dec 2009 12:47:35 -0500
tracing: Only call pipe_close if pipe_close is defined
This fixes a cut and paste error that had pipe_close get called
if pipe_open was defined (not pipe_close).
Reported-by: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
LKML-Reference: <20091209153204.F4CD.A69D9226@jp.fujitsu.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index f804b40..dc937e1 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2899,7 +2899,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
- if (iter->trace->pipe_open)
+ if (iter->trace->pipe_close)
iter->trace->pipe_close(iter);
mutex_unlock(&trace_types_lock);
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-12-10 7:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <tip-c521efd1700a8c0f7ce26f011f5eaecca17fabfa@git.kernel.org>
2009-12-09 6:35 ` [tip:tracing/urgent] tracing: Add pipe_close interface KOSAKI Motohiro
2009-12-09 14:08 ` Steven Rostedt
2009-12-09 14:16 ` Ingo Molnar
2009-12-10 7:48 ` [tip:tracing/core] tracing: Only call pipe_close if pipe_close is defined tip-bot for Steven Rostedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome