From: Frederic Weisbecker <fweisbec@gmail.com>
To: Tom Zanussi <tzanussi@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>, Ingo Molnar <mingo@elte.hu>,
LKML <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Lai Jiangshan <laijs@cn.fujitsu.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>
Subject: Re: [RFC][PATCH 4/5] tracing/filters: Provide basic regex support
Date: Fri, 7 Aug 2009 07:19:31 +0200 [thread overview]
Message-ID: <20090807051930.GA9182@nowhere> (raw)
In-Reply-To: <1249618497.30024.36.camel@tropicana>
On Thu, Aug 06, 2009 at 11:14:57PM -0500, Tom Zanussi wrote:
> Hi Frederic,
>
> On Thu, 2009-08-06 at 03:49 +0200, Frederic Weisbecker wrote:
> > On Thu, Aug 06, 2009 at 09:14:27AM +0800, Li Zefan wrote:
> > > Frederic Weisbecker wrote:
> > > > On Mon, Aug 03, 2009 at 01:39:58PM +0800, Li Zefan wrote:
> > > >> Frederic Weisbecker wrote:
> > > >>> This patch provides basic support for regular expressions in filters.
> > > >>> The common filter file doesn't support any regex but a new
> > > >>> filter_regex file is created for each subsystem/event.
> > > >>>
> > > >>> It supports the following types of regexp:
> > > >>>
> > > >>> - *match_beginning
> > > >>> - *match_middle*
> > > >>> - match_end*
> > > >>> - !don't match
> > > >>>
> > > >> I don't see why adding "filter_regex" is necessary, why not just make
> > > >> "filter" support regex?
> > > >
> > > > I did that because I feared about people beeing unable to filter using
> > > > * as a real character inside a filter string.
> > > > If we are using only one file, we are forced to get the '*' interpreted.
> > > > That would also break the ABI.
> > > >
> > >
> > > I think we don't maintain stable ABI for debugfs and we've been changing
> > > the "ABI" in debugfs/tracing/, but of course we shouldn't change it
> > > without good reasons.
> >
> >
> > Yeah. May be I'm too much careful there but i prefer not to take the risk.
> >
> >
> > > One alternative is to use '"' to prevent '*' to be translated, but seems
> > > using "filter_regex" is more convenient, so I agree with this patch.
> >
> >
> > The problem is that most of the time, the '"' is about mandatory to delimit
> > a string.
> > Say you want to filter the lock name &REISERFS_SB(sb)->lock, you can't do that
> > by just typing:
> >
> > echo name == &REISERFS_SB(sb)->lock > events/lockdep/filter
> >
> > because the '&' character is considered as an operator and that will trigger
> > an error.
> > Instead you must type:
> >
> > echo 'name == "&REISERFS_SB(sb)->lock"' > events/lockdep/filter
> >
> > The '' are there to delimit the string for echo, and the "" are interpreted
> > by the filter api which take it as a whole string and not strings interleaved
> > with operators. I even fear - and > may be considered as operators if we omit
> > the "".
> >
> > I also thought about using an antislash for those who don't want the * to
> > be interpreted. But although it seems intuitive, it's not as much as two
> > distinct and visible files.
> >
> > Also, we can think about the fact the regexp support could be extended one
> > day if someone needs to. And we could then encounter even more ambiguous
> > characters such as $, ^, [, {, etc...
> >
>
> This a nice new feature - I considered doing it (not complete regexp
> support, just * in strings) for the original patch, but ran out of time
> - glad you added it.
>
> I still think it makes sense to have some basic support for * in the
> regular filter file, so I'd vote for getting rid of the filter_regex
> file for now and just adding * support with the antislash escape to the
> regular filter file. If you later wanted to add more full-fledged
> regexp support and it didn't make sense to do it in the regular filter
> file, then you could go crazy and add the filter_regex later...
Ok, if you and Li both prefer the single file, I'm fine with that.
It shouldn't really harm.
I'll change that in the next version.
Thanks.
next prev parent reply other threads:[~2009-08-07 5:19 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 [this message]
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
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=20090807051930.GA9182@nowhere \
--to=fweisbec@gmail.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox