On Wed, Jul 5, 2023 at 11:15 PM Eugene Rozenfeld
<eugene.rozenf...@microsoft.com> wrote:
>
> There is no warning and perf /uk succeeds when kptr_restrict is set to 1 and 
> perf_event_paranoid set to 2. However, create_gcov may fail since it won't be 
> able to understand kernel addresses and it requires at least 95% of events to 
> be successfully mapped.

OK, so I guess the patch is OK then given it can improve the situation
in the right circumstances
and doesn't hurt otherwise.

Thanks,
Richard.

> If I set both kptr_restrict and perf_event_paranoid to 1, then I do get 
> warnings from perf (but it still succeeds and exits with a 0 code). And, of 
> course create_gcov will also fail to map some events since it won't 
> understand kernel addresses.
>
> WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted,
> check /proc/sys/kernel/kptr_restrict and /proc/sys/kernel/perf_event_paranoid.
>
> Samples in kernel functions may not be resolved if a suitable vmlinux
> file is not found in the buildid cache or in the vmlinux path.
>
> Samples in kernel modules won't be resolved at all.
>
> If some relocation was applied (e.g. kexec) symbols may be misresolved
> even with a suitable vmlinux or kallsyms file.
>
> Couldn't record kernel reference relocation symbol
> Symbol resolution may be skewed if relocation was used (e.g. kexec).
> Check /proc/kallsyms permission or run as root.
> [ perf record: Woken up 2 times to write data ]
> [ perf record: Captured and wrote 0.037 MB 
> /home/erozen/gcc1_objdir/gcc/testsuite/gcc/indir-call-prof.perf.data (86 
> samples) ]
>
> Eugene
>
> -----Original Message-----
> From: Richard Biener <richard.guent...@gmail.com>
> Sent: Monday, July 3, 2023 12:47 AM
> To: Eugene Rozenfeld <eugene.rozenf...@microsoft.com>
> Cc: Sam James <s...@gentoo.org>; gcc-patches@gcc.gnu.org
> Subject: Re: [EXTERNAL] Re: [PATCH] Collect both user and kernel events for 
> autofdo tests and autoprofiledbootstrap
>
> On Sat, Jul 1, 2023 at 12:05 AM Eugene Rozenfeld 
> <eugene.rozenf...@microsoft.com> wrote:
> >
> > I also set /proc/sys/kernel/perf_event_paranoid to 1 instead of the default 
> > 2.
>
> Does the perf attempt fail when the privileges are not adjusted and you 
> specify --all?  I see it adds /uk as flags, when I do
>
> > perf record -e instructions//uk ./a.out
>
> it doesn't complain in any way with
>
> > cat /proc/sys/kernel/kptr_restrict
> 1
> > cat /proc/sys/kernel/perf_event_paranoid
> 2
>
> so in case the 'kernel' side is simply ignored when profiling there isn't 
> permitted/possible then I guess the patch is OK?
>
> Can you confirm?
>
> Thanks,
> Richard.
>
> > -----Original Message-----
> > From: Gcc-patches
> > <gcc-patches-bounces+erozen=microsoft....@gcc.gnu.org> On Behalf Of
> > Eugene Rozenfeld via Gcc-patches
> > Sent: Friday, June 30, 2023 2:44 PM
> > To: Sam James <s...@gentoo.org>; Richard Biener
> > <richard.guent...@gmail.com>
> > Cc: gcc-patches@gcc.gnu.org
> > Subject: RE: [EXTERNAL] Re: [PATCH] Collect both user and kernel
> > events for autofdo tests and autoprofiledbootstrap
> >
> > I don't run this with elevated privileges but I set 
> > /proc/sys/kernel/kptr_restrict to 0. Setting that does require elevated 
> > privileges.
> >
> > If that's not acceptable, the only fix I can think of is to make that event 
> > mapping threshold percentage a parameter to create_gcov and pass something 
> > low enough. 80% instead of the current threshold of 95% should work, 
> > although it's a bit fragile.
> >
> > Eugene
> >
> > -----Original Message-----
> > From: Sam James <s...@gentoo.org>
> > Sent: Friday, June 30, 2023 1:59 AM
> > To: Richard Biener <richard.guent...@gmail.com>
> > Cc: Eugene Rozenfeld <eugene.rozenf...@microsoft.com>;
> > gcc-patches@gcc.gnu.org
> > Subject: [EXTERNAL] Re: [PATCH] Collect both user and kernel events
> > for autofdo tests and autoprofiledbootstrap
> >
> > [You don't often get email from s...@gentoo.org. Learn why this is
> > important at https://aka.ms/LearnAboutSenderIdentification ]
> >
> > Richard Biener via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> >
> > > On Fri, Jun 30, 2023 at 7:28 AM Eugene Rozenfeld via Gcc-patches
> > > <gcc-patches@gcc.gnu.org> wrote:
> > >>
> > >> When we collect just user events for autofdo with lbr we get some
> > >> events where branch sources are kernel addresses and branch targets
> > >> are user addresses. Without kernel MMAP events create_gcov can't
> > >> make sense of kernel addresses. Currently create_gcov fails if it
> > >> can't map at least 95% of events. We sometimes get below this threshold 
> > >> with just user events. The change is to collect both user events and 
> > >> kernel events.
> > >
> > > Does this require elevated privileges?  Can we instead "fix" create_gcov 
> > > here?
> >
> > Right, requiring privileges for this is going to be a no-go for a lot of 
> > builders. In a distro context, for example, it means we can't consider 
> > autofdo at all.

Reply via email to