From: Alejandro Colomar <alx+linux-hardening@kernel.org>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Alejandro Colomar <alx@kernel.org>,
linux-hardening@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,
Andreas Schwab <schwab@linux-m68k.org>,
Andy Shevchenko <andy@kernel.org>,
Bartosz Golaszewski <brgl@kernel.org>,
Daniel Scally <djrscally@gmail.com>,
Danilo Krummrich <dakr@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Hans Verkuil <hverkuil-cisco@xs4all.nl>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Joe Perches <joe@perches.com>, Johan Hovold <johan@kernel.org>,
Kees Cook <kees@kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Len Brown <lenb@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linus Walleij <linusw@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Saravana Kannan <saravanak@kernel.org>,
linux-acpi@vger.kernel.org, driver-core@lists.linux.dev,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-gpio@vger.kernel.org
Subject: Re: [PATCH v1 1/2] string: Add strprefix(), and deprecate str_has_prefix()
Date: Thu, 5 Nov 2026 22:24:06 +0100 [thread overview]
Message-ID: <auzxXyAU6zyHtMtn@devuan> (raw)
In-Reply-To: <auzHFRzd86iV4-RA@ashevche-desk.local>
[-- Attachment #1: Type: text/plain, Size: 3937 bytes --]
Hi Andy,
> Date: 2026-11-05 20:12:37+0200
> From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> On Thu, Nov 05, 2026 at 08:08:57PM +0200, Andy Shevchenko wrote:
> > On Thu, Nov 05, 2026 at 06:46:18PM +0100, Alejandro Colomar wrote:
> > > > Date: 2026-11-05 11:50:19-0500
> > > > From: Steven Rostedt <rostedt@goodmis.org>
>
> [...]
>
> > > > Oops, typo, I meant trace_event_filter.c
> > >
> > > Still not found.
> > >
> > > alx@devuan:~/src/linux/linux/master$ find | grep trace_event_filter.c
> > > alx@devuan:~/src/linux/linux/master$ find | grep trace.event.filter
> > > alx@devuan:~/src/linux/linux/master$
>
> Besides that the above is yet another "Useless use of grep".
See below (spoiler: not so useless).
> > Oh, you are an oldschool guy :-)
In this sense, yep. :-)
> >
> > I can't believe people with Git index available are using `find`
> > and not `git ls-files`. `find` is too slow...
>
> $ time find . -name trace_events_filter.c
> ./kernel/trace/trace_events_filter.c
>
> real 0m0.081s
> user 0m0.028s
> sys 0m0.053s
>
> $ time git ls-files \*trace_events_filter.c
> kernel/trace/trace_events_filter.c
>
> real 0m0.014s
> user 0m0.010s
> sys 0m0.005s
>
> $ time git ls-files \*trace_events_filter.c
> kernel/trace/trace_events_filter.c
>
> real 0m0.014s
> user 0m0.004s
> sys 0m0.010s
>
> $ time find . -name trace_events_filter.c
> ./kernel/trace/trace_events_filter.c
>
> real 0m0.083s
> user 0m0.021s
> sys 0m0.063s
>
> (with IPC to `grep` it will be even slower)
Actually, IPC to grep(1) makes it faster, not slower. :)
Not only that, but I get to use a regex, which is more comfortable than
a glob for finding stuff.
Even if only for the regex, I find it already worth it, but the better
performance makes it even better.
$ time find . -name trace_events_filter.c
./kernel/trace/trace_events_filter.c
real 0m0.064s
user 0m0.025s
sys 0m0.040s
$ time find . | grep trace_events_filter.c
./kernel/trace/trace_events_filter.c
real 0m0.059s
user 0m0.023s
sys 0m0.043s
$ time find . | grep trace_events_filter.c
./kernel/trace/trace_events_filter.c
real 0m0.058s
user 0m0.033s
sys 0m0.032s
$ time find . -name trace_events_filter.c
./kernel/trace/trace_events_filter.c
real 0m0.070s
user 0m0.020s
sys 0m0.050s
About why, I'm not sure if find(1) is slow at filtering, or if having
a separate CPU working on the filtering makes it more powerful (perhaps
both).
I think it might indeed be that find(1) is slow at filtering, because
using git-ls-files(1) is faster without piping to grep(1):
$ time git ls-files | grep trace_events_filter.c
kernel/trace/trace_events_filter.c
real 0m0.023s
user 0m0.018s
sys 0m0.010s
$ time git ls-files \*trace_events_filter.c
kernel/trace/trace_events_filter.c
real 0m0.016s
user 0m0.012s
sys 0m0.004s
$ time git ls-files \*trace_events_filter.c
kernel/trace/trace_events_filter.c
real 0m0.011s
user 0m0.011s
sys 0m0.000s
$ time git ls-files | grep trace_events_filter.c
kernel/trace/trace_events_filter.c
real 0m0.023s
user 0m0.017s
sys 0m0.012s
Still, the fact that grep(1) is easier to remember than git-ls-files(1)
means that it's worth it for me to pipe to grep(1). But indeed, using
git-ls-files(1) in this pipeline to replace find(1) might be reasonable.
After all, I don't want to search in temporary files.
BTW, on top of all this, the interface of find(1) is so badly designed
that I can never remember how to use it properly. Compare that to
piping to grep(1), which everyone knows how to do with eyes closed.
Necessary link when discussing about find(1):
<https://doc.cat-v.org/unix/find-history>
(it's quite fun; recommended read!)
Have a lovely night!
Alex
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2026-11-05 21:24 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 11:12 [PATCH v1 0/2] Add strprefix() and fix a bug with it Alejandro Colomar
2026-11-05 11:21 ` Alejandro Colomar
2026-11-05 11:13 ` [PATCH v1 1/2] string: Add strprefix(), and deprecate str_has_prefix() Alejandro Colomar
2026-11-05 11:27 ` Andy Shevchenko
2026-11-05 12:28 ` Alejandro Colomar
2026-11-05 16:14 ` Steven Rostedt
2026-11-05 16:33 ` Alejandro Colomar
2026-11-05 16:50 ` Steven Rostedt
2026-11-05 17:46 ` Alejandro Colomar
2026-11-05 18:08 ` Andy Shevchenko
2026-11-05 18:12 ` Andy Shevchenko
2026-11-05 21:24 ` Alejandro Colomar [this message]
2026-11-05 21:48 ` Linus Torvalds
2026-11-05 22:25 ` Alejandro Colomar
2026-11-05 23:21 ` Linus Torvalds
2026-11-06 0:01 ` Alejandro Colomar
2026-11-06 7:15 ` Krzysztof Kozlowski
2026-11-05 11:13 ` [PATCH v1 2/2] device property: Fix fwnode_name_eq() for empty node names Alejandro Colomar
2026-11-05 11:24 ` [PATCH v1 0/2] Add strprefix() and fix a bug with it Andy Shevchenko
2026-11-05 11:38 ` Alejandro Colomar
2026-11-05 11:59 ` Andy Shevchenko
2026-11-05 12:30 ` Bartosz Golaszewski
2026-11-05 12:49 ` Alejandro Colomar
2026-11-05 12:46 ` [PATCH v2 " Alejandro Colomar
2026-11-05 12:46 ` [PATCH v2 1/2] string: Add strprefix(), and deprecate str_has_prefix() Alejandro Colomar
2026-11-05 12:51 ` Geert Uytterhoeven
2026-11-05 13:12 ` Alejandro Colomar
2026-11-07 2:44 ` Maciej W. Rozycki
2026-11-07 7:33 ` Alejandro Colomar
2026-11-05 12:46 ` [PATCH v2 2/2] device property: Fix fwnode_name_eq() for empty node names Alejandro Colomar
2026-11-05 14:01 ` [PATCH v2 0/2] Add strprefix() and fix a bug with it Bartosz Golaszewski
2026-11-05 14:16 ` Alejandro Colomar
2026-11-05 14:42 ` Andy Shevchenko
2026-11-05 15:06 ` Alejandro Colomar
2026-11-07 2:42 ` Maciej W. Rozycki
2026-11-07 14:05 ` Andy Shevchenko
2026-11-05 15:00 ` Bartosz Golaszewski
2026-11-05 15:14 ` Alejandro Colomar
2026-11-05 15:21 ` Krzysztof Kozlowski
2026-11-05 16:27 ` Steven Rostedt
2026-11-05 16:30 ` Krzysztof Kozlowski
2026-11-05 16:42 ` Alejandro Colomar
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=auzxXyAU6zyHtMtn@devuan \
--to=alx+linux-hardening@kernel.org \
--cc=alx@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy@kernel.org \
--cc=bartosz.golaszewski@oss.qualcomm.com \
--cc=brgl@kernel.org \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djrscally@gmail.com \
--cc=driver-core@lists.linux.dev \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=joe@perches.com \
--cc=johan@kernel.org \
--cc=kees@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lenb@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rostedt@goodmis.org \
--cc=sakari.ailus@linux.intel.com \
--cc=saravanak@kernel.org \
--cc=schwab@linux-m68k.org \
--cc=torvalds@linux-foundation.org \
/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.