All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
	Tom Zanussi <tzanussi@gmail.com>, Li Zefan <lizf@cn.fujitsu.com>
Subject: Re: [GIT PULL v2] bkl tracepoints + filter regex support
Date: Sat, 26 Sep 2009 06:44:21 -0400	[thread overview]
Message-ID: <1253961861.12145.148.camel@frodo> (raw)
In-Reply-To: <20090925103806.GA6467@nowhere>

On Fri, 2009-09-25 at 12:38 +0200, Frederic Weisbecker wrote:

>  
> > Using globs in string matches most certainly is useful, no question
> > about that.
> > 
> > But I had understood from previous communications we were going to have
> > a C syntax, and there == is a straight comparison.
> > 
> > If however people have changed their minds (fine with me) and we're now
> > going to script like things..
> 
> 
> 
> Well, indeed we talked about C syntax, but I didn't think the idea
> was that fixed in the rock, hence why I was suprised.

Once we add globs, we just blew away C syntax.

> 
> 
> > Anyway, a glob in == just means we have to use another operator if we
> > ever want to support actual regexes, ~ would then be recommened I think,
> > since that's what awk and I think perl do.

Perhaps when we put full perl regex into the kernel (my goal ;-) then we
should look to keep different kinds of equals.

  ==  - is direct match. Only use of strcmp is needed.

  ~ - is globing. We can add a '*' which means match anything.

and if we do add true regex...

  =~ could be that.  field =~ '^spin.*{lock|unlock}$'

> 
> 
> Yeah. For example one may know python but not perl or awk,
> other people may be in the opposite situation. But most
> developers know the C (at least its basic syntax).

awk is much more known than either python nor perl. It is expected that
any unix person have a basic idea of sed and awk. If not a simple search
on the internet can help them.

It takes 5 minutes to figure out how to do something with awk, where as
we all know it takes a much longer time to figure out python or perl.

> 
> So I'm not sure using such ~ operator is a good idea. I think you're
> right in the fact we should stay tight to the C syntax.

I disagree.

> 
> 
> > Personally I wouldn't mind things like:
> > 
> >  glob_match(string, pattern)
> >  regex_match(string, pattern)

In a filter string. Yuck!

note I don't like python, which is probably why I don't like the above.

> 
> 
> 
> Yeah, actually that sounds more flexible and more something that people
> are familar with, once we consider the future evolutions.

please no! I hate that syntax. Again, this is probably one of the major
reasons I avoid python. (that and column forcing)


> 
> 
> 
> > But everybody involved in this filter stuff needs to agree what
> > direction you want to take the language in.
> 
> 
> 
> Right!

Yes, and I agree that == should not mean globing. We should have another
syntax, but I really don't want "functions" for matching.

> 
>  
> 
> > > I just don't want that this bridge turns out any ftrace uses through debugfs
> > > into an overkill.
> > > Instead I'd prefer to satisfy both, hence the above proposition.
> > 
> > So you're proposing to split the filter language? I'm sure that's going
> > to confuse a few people ;-)
> 
> 
> 
> Hmm, just at this level. That could even be a trace option.
> Anyway, it would nice to have other tracing developers
> opinion.

Finally getting around to it ;-)

> 
> 
>  
> > Thing is, if you (or others) have a need to experiment with the
> > language, then I'm not sure its the right moment to freeze bits into an
> > ABI.

Correct, and this is why I propose a "tracefs" that can become the place
that we add a stable API, and let debugfs be our playground.

> > 
> > I'm really fine with thing, as long as everybody on the filter side
> > knows experimenting isn't really an option and agrees on the direction
> > they want to take the language.
> 
> 
> Well, I talked about experimenting the language before pushing it as
> an ABI because I was afraid we were going too fast.
> 
> But I guess the ABI is a requirement to use it through perf ioctl,
> and delay that would keep it as a hostage, may be even slow its
> development.
> 
> 
> > Is there no existing language with a proper license and clean code-base
> > we can 'borrow'? That would avoid creating yet another funny language,
> > and learning how to implement things all over again.
> > 
> > Personally I don't think the kernel is the place to experiment in script
> > language design, but that's me ;-)
> 
> 
> Python? :-)

Perl is considered a much better language for regex. It has one of the
most (if not the most) powerful regex engines. I'm sure recordmcount.pl
would be much larger if I chose to do it in python. Same goes with
streamline_config.pl.  They both have strong needs for complex regex.

> 
> More seriously, as I said above, I think most developers are familiar with C
> syntax, so IMHO this is one of our best possibility.
> 

To avoid the Python vs Perl, I say we stick with sed/awk. That is also a
requirement for most unix developers.

-- Steve



  reply	other threads:[~2009-09-26 10:45 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-24 19:49 [GIT PULL v2] bkl tracepoints + filter regex support Frederic Weisbecker
2009-09-24 19:49 ` [PATCH 1/5 v2] tracing/bkl: Add bkl ftrace events Frederic Weisbecker
2009-09-24 19:49 ` [PATCH 2/5 v2] tracing/filters: Cleanup useless headers Frederic Weisbecker
2009-09-24 19:49 ` [PATCH 3/5 v2] tracing/event: Cleanup the useless dentry variable Frederic Weisbecker
2009-09-24 19:49 ` [PATCH 4/5 v2] tracing/filters: Provide basic regex support Frederic Weisbecker
2009-09-25  8:13   ` Andrey Panin
2009-09-25  8:16     ` Frederic Weisbecker
2009-09-24 19:49 ` [PATCH 5/5] tracing/filters: Unify the regex parsing helpers Frederic Weisbecker
2009-09-24 20:15 ` [GIT PULL v2] bkl tracepoints + filter regex support Ingo Molnar
2009-09-24 20:16   ` Ingo Molnar
2009-09-24 20:22     ` Ingo Molnar
2009-09-25  7:55       ` Frederic Weisbecker
2009-09-24 20:30     ` Peter Zijlstra
2009-09-24 20:44       ` Frederic Weisbecker
2009-09-24 20:51         ` Peter Zijlstra
2009-09-24 21:36           ` Frederic Weisbecker
2009-09-25  8:19             ` Peter Zijlstra
2009-09-25  9:12               ` Frederic Weisbecker
2009-09-25  9:40                 ` Peter Zijlstra
2009-09-25 10:38                   ` Frederic Weisbecker
2009-09-26 10:44                     ` Steven Rostedt [this message]
2009-10-03 11:36                       ` Frederic Weisbecker
2009-09-26 15:47                     ` Frank Ch. Eigler
2009-10-03 11:49                       ` Frederic Weisbecker
2009-09-26 10:30                   ` Steven Rostedt
2009-09-24 20:33     ` Frederic Weisbecker

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=1253961861.12145.148.camel@frodo \
    --to=rostedt@goodmis.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=mingo@elte.hu \
    --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.