Messages in this thread | | | From | Jarmo Tiitto <> | Subject | Re: ARCH_WANTS_NO_INSTR (Re: [GIT PULL] Clang feature updates for v5.14-rc1) | Date | Thu, 07 Oct 2021 09:19:29 +0300 |
| |
Mark Rutland wrote tiistaina 5. lokakuuta 2021 17.30.03 EEST: > On Wed, Oct 06, 2021 at 12:10:15AM +1100, Daniel Axtens wrote: > > Hi, > > Hi Daniel, > > > Apologies, I can't find the original email for this: > > > Kconfig: Introduce ARCH_WANTS_NO_INSTR and CC_HAS_NO_PROFILE_FN_ATTR > > > > which is now commit 51c2ee6d121c ("Kconfig: Introduce ARCH_WANTS_NO_INSTR > > and > > CC_HAS_NO_PROFILE_FN_ATTR"). It doesn't seem to show up on Google, this was > > the best I could find. > > Unless I've misunderstood, the commit title was rewritten when the patch > was applied, from the third link in commit 51c2ee6d121c. For reference, > those three links are: > > Link: > https://lore.kernel.org/lkml/YMTn9yjuemKFLbws@hirez.programming.kicks-ass.net > / Link: > https://lore.kernel.org/lkml/YMcssV%2Fn5IBGv4f0@hirez.programming.kicks-ass.n > et/ Link: > https://lore.kernel.org/r/20210621231822.2848305-4-ndesaulniers@google.com
Hello, Kees and others cc'd ! I got above mail, and went through an rabbit hole of lkml messages since I was involved with the clang-pgo feature.
I'll like to know what is the current situation about GCOV and PGO?
I saw that for-next/clang/pgo had some new interesting patches applied. Would it be good time now to continue make instrumented kernel?
Background: I essentially stopped my work at the point where Peter Z noted -fprofile- generate breaks the kernel+gcov and noinstr needs to be fixed.
My situation here is that I have very old non-public PGO hacks that date back to v4.11 - v4.19 era using GCOV subsystem and now with the newer clang-pgo patches that are in usable state.
These previous attempts all broke apart because of the noinstr not doing it's job with -fprofile-generate: the compiler could generate a call to gcov/pgo profiler hook in wrong place (in interrupt context, If I remember) and the kernel was doomed.
One thing has not changed over the years: I still don't have a single CPU that has hardware PMU capable of LBR and generating AutoFDO profiles. :(
So I have written code/hacks now for two subsystems to gain profile data for PGO. In the end, I don't care from what instrumented kernel pipes I have to pull the data out, and what format it is in, as long as the compiler accepts it. :-P PS: gcov-pgo had waayy too many pipes for doing just pgo. /s
Well, that was my past on this PGO topic.
Thanks all, -Jarmo Tiitto
| |