From: DanglingPointer <danglingpointerexception@gmail.com>
To: linux-btrfs@vger.kernel.org
Cc: danglingpointerexception@gmail.com
Subject: Enhancement Idea - Optional PGO+LTO build for btrfs-progs
Date: Wed, 14 Jul 2021 12:51:07 +1000 [thread overview]
Message-ID: <d0f8f74f-edd3-6591-c6e5-138daf6b25f5@gmail.com> (raw)
Recently we have been impacted by some performance issues with the
workstations in my lab with large multi-terabyte arrays in btrfs. I
have detailed this on a separate thread. It got me thinking however,
why not have an optional configure option for btrfs-progs to use PGO
against the entire suite of regression tests?
Idea is:
1. configure with optional "-pgo" or "-fdo" option which will configure
a relative path from source root where instrumentation files will go
(let's start with gcc only for now, so *.gcda files into a folder).
We then add the instrumentation compiler option
2. build btrfs-progs
3. run every single tests available ( make test && make test-fsck &&
make test-convert)
4. clean-up except for instrumentation files
5. re-build without the instrumentation flag from point 1; and use the
instrumentation files for feedback directed optimisation (FDO) (for
gcc add additional partial-training flag); add LTO.
I know btrfs is primarily IO bound and not cpu. But just thinking of
squeezing every last efficiency out of whatever is running in the cpu,
cache and memory.
I suppose people can do the above on their own, but was thinking if it
was provided as a configuration optional option then it would make it
easier for people to do without more hacking. Just need to add warnings
that it will take a long time, have a coffee.
The python3 configure process has the process above as an optional
option but caters for gcc and clang (might even cater for icc).
Anyways, that's my idea for an enhancement above.
Would like to know your thoughts. cheers...
next reply other threads:[~2021-07-14 2:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 2:51 DanglingPointer [this message]
2021-07-14 5:00 ` Enhancement Idea - Optional PGO+LTO build for btrfs-progs Qu Wenruo
2021-07-14 7:34 ` DanglingPointer
2021-07-14 7:57 ` Qu Wenruo
2021-07-14 9:19 ` DanglingPointer
2021-07-14 12:35 ` Neal Gompa
2021-07-14 13:01 ` Qu Wenruo
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=d0f8f74f-edd3-6591-c6e5-138daf6b25f5@gmail.com \
--to=danglingpointerexception@gmail.com \
--cc=linux-btrfs@vger.kernel.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.