From: Li Zefan <lizf@cn.fujitsu.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Lai Jiangshan <laijs@cn.fujitsu.com>,
Tom Zanussi <tzanussi@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>
Subject: Re: [RFC][PATCH 5/5] tracing/filters: Provide support for char * pointers
Date: Thu, 06 Aug 2009 09:35:39 +0800 [thread overview]
Message-ID: <4A7A336B.4040708@cn.fujitsu.com> (raw)
In-Reply-To: <20090805230257.GI5025@nowhere>
Frederic Weisbecker wrote:
> On Mon, Aug 03, 2009 at 02:58:15PM +0800, Li Zefan wrote:
>> Frederic Weisbecker wrote:
>>> Provide support for char * pointers in the filtering framework.
>>> Usually, char * entries are dangerous in traces because the string
>>> can be released whereas a pointer to it can still wait to be read from
>>> the ring buffer. But sometimes we can assume it's safe, like in case
>>> of RO data (eg: __file__ or __line__, used in bkl trace event). If
>>> these RO data are in a module and so is the call to the trace event,
>>> then it's safe, because the ring buffer will be flushed once this
>>> module get unloaded.
>>>
>> The problem is we don't distinguish dangerous char * from
>> safe char *... They are both defined as:
>> __field(char *, str)
>>
>> So for those dangerous ones, a string filter still can be applied,
>> which will dereference those pointers.
>
> Yeah, but only reviewing can distinguish them. It depends on the
> context.
> IMO, a __builtin_constant check would be wrong. I don't remember who
> posted recently tracepoints with char * types that were safe although he
> didn't use string constants.
>
IMO it's really bad to rely on review to prevent wrong use of
an API..
Other developers won't know this restriction, and not all tracepoint
patches go through -tip tree, and not all trace_event source files
are in include/trace/events/.
How about add __field_type()? So we can define:
__field_type(char *, str, FILTER_PTR_STR)
the advantage is he who wrote the code really knows this field is safe
to be used in filtering as a string.
I had some patches that does similar job. I can rewrite and post them.
next prev parent reply other threads:[~2009-08-06 1:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-01 7:23 [RFC][GIT PULL] bkl ftrace events + filter regex support Frederic Weisbecker
2009-08-01 7:23 ` [RFC][PATCH 1/5] tracing/bkl: Add bkl ftrace events Frederic Weisbecker
2009-08-01 7:23 ` [RFC][PATCH 2/5] tracing/event: Cleanup the useless dentry variable Frederic Weisbecker
2009-08-01 7:23 ` [RFC][PATCH 3/5] tracing/filters: Cleanup useless headers Frederic Weisbecker
2009-08-03 5:19 ` Li Zefan
2009-08-05 22:30 ` Frederic Weisbecker
2009-08-01 7:23 ` [RFC][PATCH 4/5] tracing/filters: Provide basic regex support Frederic Weisbecker
2009-08-03 5:39 ` Li Zefan
2009-08-05 22:47 ` Frederic Weisbecker
2009-08-06 1:14 ` Li Zefan
2009-08-06 1:49 ` Frederic Weisbecker
2009-08-07 4:14 ` Tom Zanussi
2009-08-07 5:19 ` Frederic Weisbecker
2009-08-07 8:11 ` Peter Zijlstra
2009-08-01 7:23 ` [RFC][PATCH 5/5] tracing/filters: Provide support for char * pointers Frederic Weisbecker
2009-08-03 6:58 ` Li Zefan
2009-08-05 23:02 ` Frederic Weisbecker
2009-08-06 1:35 ` Li Zefan [this message]
2009-08-06 1:59 ` Frederic Weisbecker
2009-08-06 3:50 ` Li Zefan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A7A336B.4040708@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=fweisbec@gmail.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tzanussi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.