From: Ingo Molnar <mingo@elte.hu>
To: Tom Zanussi <tzanussi@gmail.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Frédéric Weisbecker" <fweisbec@gmail.com>
Subject: Re: [RFC][PATCH 0/4] tracing: event filtering
Date: Tue, 17 Mar 2009 09:57:13 +0100 [thread overview]
Message-ID: <20090317085713.GA16952@elte.hu> (raw)
In-Reply-To: <1237271002.8033.148.camel@charm-linux>
* Tom Zanussi <tzanussi@gmail.com> wrote:
> Hi,
>
> This patchset is a first attempt at adding filtering to the
> event-tracing infrastructure.
Really cool!
> The filtering itself seems to work ok, as far as I've been
> able to test it, but I'm still battling with getting the
> ring-buffer to do what I want (discarding events, see patch 2)
> so am hoping someone more familiar with the ring buffer can
> point me in the right direction before I do any more work on
> it.
Seems to be a weakness in our current event abstraction itself -
by the time we get to filtering we already have the record in
the ring buffer - and have to work hard to pull it out of there.
It would be better to allow tracing filters to operate on a
private copy of the data, before it's inserted into the
ringbuffer.
As an intermediate solution (until the rb details get sorted
out), i think your hack could be used - it essentially marks the
entry as discarded, so that the output stage ignores it, right?
If the patch is brought into a more palatable state (no crashes,
no C99 comments) i'd argue we apply this almost as-is, so that
the filtering details can advance independently of the
ring-buffer management details. Steve, do you agree?
> Another specific thing it would be good to get comments on
> would be how to allow the user to unambiguously specify a
> field name in a filter when there are duplicate field names
> for an event, as mentioned in patch 1.
A short-term fix would be to name the common fields common_pid
or so, to reduce the chance of collision. (and show that in the
format output too)
Plus we should add a debug check as well when an event is
registered: all fields in a format should be uniquely
accessible.
> Of course, any comments about the rest of the interface and
> code are also welcome...
You wanted to keep the filter expression parser simple, and i
agree with that in general.
I'd expect the filter to be popular with kernel developers who
do ad-hoc tracing - so making it as compatible with typical
syntax variations as possible would still be nice. The parser
will be larger but that's OK.
- it would be nice to extend the range of operators to all the
typical C syntax comparison expressions: <= < >= > != ==. Some
of these are supported but not all.
- there should be '||' and '&&' aliases for the 'or' / 'and'
tokens.
- parantheses could be supported too perhaps instead of the
current 'echo separately to build up complex expressions', up
to the expression-length limit.
- bitwise operators might be useful too: 'mask & 0xff'.
We really want this to be a popular built-in facility that can
be used intuitively by anyone who knows C expressions, and
limitations in the expression parser are counter-productive to
that aim.
Ingo
next prev parent reply other threads:[~2009-03-17 8:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 6:23 [RFC][PATCH 0/4] tracing: event filtering Tom Zanussi
2009-03-17 8:57 ` Ingo Molnar [this message]
2009-03-18 1:18 ` Frederic Weisbecker
2009-03-18 6:29 ` Tom Zanussi
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=20090317085713.GA16952@elte.hu \
--to=mingo@elte.hu \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rostedt@goodmis.org \
--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.