All of lore.kernel.org
 help / color / mirror / Atom feed
* Enhancement Idea - Optional PGO+LTO build for btrfs-progs
@ 2021-07-14  2:51 DanglingPointer
  2021-07-14  5:00 ` Qu Wenruo
  0 siblings, 1 reply; 7+ messages in thread
From: DanglingPointer @ 2021-07-14  2:51 UTC (permalink / raw)
  To: linux-btrfs; +Cc: danglingpointerexception

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...


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-07-14 13:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-14  2:51 Enhancement Idea - Optional PGO+LTO build for btrfs-progs DanglingPointer
2021-07-14  5:00 ` 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

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.