Re: [bug report][stable] perf probe: failed to add events
On 21/03/19 12:10 PM, Greg KH wrote: > On Thu, Feb 28, 2019 at 09:19:08AM +0200, Adrian Hunter wrote: >> On 28/02/19 4:07 AM, Joseph Qi wrote: >>> Hi Adrian, >>> >>> On 19/2/27 20:39, Adrian Hunter wrote: Seems to be fixed by this: From: Adrian Hunter Date: Wed, 27 Feb 2019 05:35:25 +0200 Subject: [PATCH] perf probe: Fix getting the kernel map Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry trampolines"), perf tools has been creating more than one kernel map, however 'perf probe' assumed there could be only one. Fix by using machine__kernel_map() to get the main kernel map. Signed-off-by: Adrian Hunter Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry trampolines") >>> >>> Below is my investigation result before, FYI. >>> the first bad commit (v4.18 ~ v4.19): >>> d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines >> >> Yes we should add a fixes tag for that also. > > So, what do I need to do here for the stable tree(s) to resolve this > issue? Nothing. Patch was re-sent with a stable tag so will go through like normal: https://lore.kernel.org/lkml/2ed432de-e904-85d2-5c36-5897ddc5b...@intel.com/
Re: [bug report][stable] perf probe: failed to add events
On Thu, Feb 28, 2019 at 09:19:08AM +0200, Adrian Hunter wrote: > On 28/02/19 4:07 AM, Joseph Qi wrote: > > Hi Adrian, > > > > On 19/2/27 20:39, Adrian Hunter wrote: > >> Seems to be fixed by this: > >> > >> From: Adrian Hunter > >> Date: Wed, 27 Feb 2019 05:35:25 +0200 > >> Subject: [PATCH] perf probe: Fix getting the kernel map > >> > >> Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 > >> PTI entry trampolines"), perf tools has been creating more than one kernel > >> map, however 'perf probe' assumed there could be only one. > >> > >> Fix by using machine__kernel_map() to get the main kernel map. > >> > >> Signed-off-by: Adrian Hunter > >> Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI > >> entry trampolines") > > > > Below is my investigation result before, FYI. > > the first bad commit (v4.18 ~ v4.19): > > d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines > > Yes we should add a fixes tag for that also. So, what do I need to do here for the stable tree(s) to resolve this issue? thanks, greg k-h
Re: [bug report][stable] perf probe: failed to add events
Hi Adrian, On 19/2/28 15:19, Adrian Hunter wrote: > On 28/02/19 4:07 AM, Joseph Qi wrote: >> Hi Adrian, >> >> On 19/2/27 20:39, Adrian Hunter wrote: >>> Seems to be fixed by this: >>> >>> From: Adrian Hunter >>> Date: Wed, 27 Feb 2019 05:35:25 +0200 >>> Subject: [PATCH] perf probe: Fix getting the kernel map >>> >>> Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 >>> PTI entry trampolines"), perf tools has been creating more than one kernel >>> map, however 'perf probe' assumed there could be only one. >>> >>> Fix by using machine__kernel_map() to get the main kernel map. >>> >>> Signed-off-by: Adrian Hunter >>> Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI >>> entry trampolines") >> >> Below is my investigation result before, FYI. >> the first bad commit (v4.18 ~ v4.19): >> d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines > > Yes we should add a fixes tag for that also. > Have you sent out the patch officially? I can't find it in the mail list. Thanks, Joseph >> revert this commit on 4.19.0, it works. >> the first good commit again (v4.19 ~ v4.20): >> bf904d2762ee x86/pti/64: Remove the SYSCALL64 entry trampoline >> backported this commit as well as the related commit 98f05b5138f0 on >> v4.19.24, it works. >> >> And I've tested your fix on v4.19.24, it also works. >> Tested-by: Joseph Qi >>
Re: [bug report][stable] perf probe: failed to add events
On 28/02/19 4:07 AM, Joseph Qi wrote: > Hi Adrian, > > On 19/2/27 20:39, Adrian Hunter wrote: >> Seems to be fixed by this: >> >> From: Adrian Hunter >> Date: Wed, 27 Feb 2019 05:35:25 +0200 >> Subject: [PATCH] perf probe: Fix getting the kernel map >> >> Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 >> PTI entry trampolines"), perf tools has been creating more than one kernel >> map, however 'perf probe' assumed there could be only one. >> >> Fix by using machine__kernel_map() to get the main kernel map. >> >> Signed-off-by: Adrian Hunter >> Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI >> entry trampolines") > > Below is my investigation result before, FYI. > the first bad commit (v4.18 ~ v4.19): > d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines Yes we should add a fixes tag for that also. > revert this commit on 4.19.0, it works. > the first good commit again (v4.19 ~ v4.20): > bf904d2762ee x86/pti/64: Remove the SYSCALL64 entry trampoline > backported this commit as well as the related commit 98f05b5138f0 on > v4.19.24, it works. > > And I've tested your fix on v4.19.24, it also works. > Tested-by: Joseph Qi >
Re: [bug report][stable] perf probe: failed to add events
Hi Adrian, On 19/2/27 20:39, Adrian Hunter wrote: > Seems to be fixed by this: > > From: Adrian Hunter > Date: Wed, 27 Feb 2019 05:35:25 +0200 > Subject: [PATCH] perf probe: Fix getting the kernel map > > Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 > PTI entry trampolines"), perf tools has been creating more than one kernel > map, however 'perf probe' assumed there could be only one. > > Fix by using machine__kernel_map() to get the main kernel map. > > Signed-off-by: Adrian Hunter > Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry > trampolines") Below is my investigation result before, FYI. the first bad commit (v4.18 ~ v4.19): d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines revert this commit on 4.19.0, it works. the first good commit again (v4.19 ~ v4.20): bf904d2762ee x86/pti/64: Remove the SYSCALL64 entry trampoline backported this commit as well as the related commit 98f05b5138f0 on v4.19.24, it works. And I've tested your fix on v4.19.24, it also works. Tested-by: Joseph Qi
Re: [bug report][stable] perf probe: failed to add events
On 26/02/19 4:20 PM, Arnaldo Carvalho de Melo wrote: > Em Tue, Feb 26, 2019 at 02:08:02PM +0100, Greg KH escreveu: >> On Tue, Feb 26, 2019 at 08:32:34PM +0800, Joseph Qi wrote: >>> >>> >>> On 19/2/26 17:05, Greg KH wrote: On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: > Hi, > > I'm using kernel v4.19.24 and have found that there is an issue when > using perf probe to define a new dynamic tracepoint. > > $ perf probe -a handle_mm_fault > Failed to write event: Numerical result out of range > Error: Failed to add events. > > I've also tried kernel v4.20, and it can pass. Ick, has this ever worked on the 4.19 stable tree? If so, any chance you can run 'git bisect' to find the offending commit? >>> >From my test, v4.19.0 also has this issue. >>> Bisect locates that it is introduced by commit bf904d2762ee >>> "x86/pti/64: Remove the SYSCALL64 entry trampoline". >> >> But that commit was in 4.20, not 4.19. So if this never worked, it's >> not a regression? >> >> confused, > > Adrian, Ideas? > Seems to be fixed by this: From: Adrian Hunter Date: Wed, 27 Feb 2019 05:35:25 +0200 Subject: [PATCH] perf probe: Fix getting the kernel map Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry trampolines"), perf tools has been creating more than one kernel map, however 'perf probe' assumed there could be only one. Fix by using machine__kernel_map() to get the main kernel map. Signed-off-by: Adrian Hunter Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry trampolines") --- tools/perf/util/probe-event.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index e86f8be89157..6cd96f9b346d 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -157,8 +157,10 @@ static struct map *kernel_get_module_map(const char *module) if (module && strchr(module, '/')) return dso__new_map(module); - if (!module) - module = "kernel"; + if (!module) { + pos = machine__kernel_map(host_machine); + return map__get(pos); + } for (pos = maps__first(maps); pos; pos = map__next(pos)) { /* short_name is "[module]" */ -- 2.19.1
Re: [bug report][stable] perf probe: failed to add events
On 19/2/26 21:08, Greg KH wrote: > On Tue, Feb 26, 2019 at 08:32:34PM +0800, Joseph Qi wrote: >> >> >> On 19/2/26 17:05, Greg KH wrote: >>> On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: Hi, I'm using kernel v4.19.24 and have found that there is an issue when using perf probe to define a new dynamic tracepoint. $ perf probe -a handle_mm_fault Failed to write event: Numerical result out of range Error: Failed to add events. I've also tried kernel v4.20, and it can pass. >>> >>> Ick, has this ever worked on the 4.19 stable tree? If so, any chance >>> you can run 'git bisect' to find the offending commit? >>> >> >From my test, v4.19.0 also has this issue. >> Bisect locates that it is introduced by commit bf904d2762ee >> "x86/pti/64: Remove the SYSCALL64 entry trampoline". > > But that commit was in 4.20, not 4.19. So if this never worked, it's > not a regression? > > confused, Oops, my fault. The first bad commit is: d83212d5dd67 kallsyms, x86: Export addresses of PTI entry trampolines It is between v4.18 and v4.19. > > greg k-h >
Re: [bug report][stable] perf probe: failed to add events
Em Tue, Feb 26, 2019 at 02:08:02PM +0100, Greg KH escreveu: > On Tue, Feb 26, 2019 at 08:32:34PM +0800, Joseph Qi wrote: > > > > > > On 19/2/26 17:05, Greg KH wrote: > > > On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: > > >> Hi, > > >> > > >> I'm using kernel v4.19.24 and have found that there is an issue when > > >> using perf probe to define a new dynamic tracepoint. > > >> > > >> $ perf probe -a handle_mm_fault > > >> Failed to write event: Numerical result out of range > > >> Error: Failed to add events. > > >> > > >> I've also tried kernel v4.20, and it can pass. > > > > > > Ick, has this ever worked on the 4.19 stable tree? If so, any chance > > > you can run 'git bisect' to find the offending commit? > > > > > >From my test, v4.19.0 also has this issue. > > Bisect locates that it is introduced by commit bf904d2762ee > > "x86/pti/64: Remove the SYSCALL64 entry trampoline". > > But that commit was in 4.20, not 4.19. So if this never worked, it's > not a regression? > > confused, Adrian, Ideas? - Arnaldo
Re: [bug report][stable] perf probe: failed to add events
On Tue, Feb 26, 2019 at 08:32:34PM +0800, Joseph Qi wrote: > > > On 19/2/26 17:05, Greg KH wrote: > > On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: > >> Hi, > >> > >> I'm using kernel v4.19.24 and have found that there is an issue when > >> using perf probe to define a new dynamic tracepoint. > >> > >> $ perf probe -a handle_mm_fault > >> Failed to write event: Numerical result out of range > >> Error: Failed to add events. > >> > >> I've also tried kernel v4.20, and it can pass. > > > > Ick, has this ever worked on the 4.19 stable tree? If so, any chance > > you can run 'git bisect' to find the offending commit? > > > >From my test, v4.19.0 also has this issue. > Bisect locates that it is introduced by commit bf904d2762ee > "x86/pti/64: Remove the SYSCALL64 entry trampoline". But that commit was in 4.20, not 4.19. So if this never worked, it's not a regression? confused, greg k-h
Re: [bug report][stable] perf probe: failed to add events
On 19/2/26 17:05, Greg KH wrote: > On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: >> Hi, >> >> I'm using kernel v4.19.24 and have found that there is an issue when >> using perf probe to define a new dynamic tracepoint. >> >> $ perf probe -a handle_mm_fault >> Failed to write event: Numerical result out of range >> Error: Failed to add events. >> >> I've also tried kernel v4.20, and it can pass. > > Ick, has this ever worked on the 4.19 stable tree? If so, any chance > you can run 'git bisect' to find the offending commit? > >From my test, v4.19.0 also has this issue. Bisect locates that it is introduced by commit bf904d2762ee "x86/pti/64: Remove the SYSCALL64 entry trampoline". Thanks, Joseph >> So I've bisected and finally found the first good commit is: >> bf904d2762ee x86/pti/64: Remove the SYSCALL64 entry trampoline >> which is based on another commit: >> 98f05b5138f0 Use the TSS sp2 slot for SYSCALL/SYSRET scratch space >> >> Once I've backpoted these two commits into 4.19.24, the above case can >> pass, though I'm not sure how it is fixed. >> So is there any plan to let them go into stable as well? > > If they are needed, I'll gladly queue them up, but this feels like > something might have broken, so it should be easier to just revert the > offending commit instead. > > Andy, any ideas? > > thanks, > > greg k-h >
Re: [bug report][stable] perf probe: failed to add events
On Tue, Feb 26, 2019 at 03:31:14PM +0800, Joseph Qi wrote: > Hi, > > I'm using kernel v4.19.24 and have found that there is an issue when > using perf probe to define a new dynamic tracepoint. > > $ perf probe -a handle_mm_fault > Failed to write event: Numerical result out of range > Error: Failed to add events. > > I've also tried kernel v4.20, and it can pass. Ick, has this ever worked on the 4.19 stable tree? If so, any chance you can run 'git bisect' to find the offending commit? > So I've bisected and finally found the first good commit is: > bf904d2762ee x86/pti/64: Remove the SYSCALL64 entry trampoline > which is based on another commit: > 98f05b5138f0 Use the TSS sp2 slot for SYSCALL/SYSRET scratch space > > Once I've backpoted these two commits into 4.19.24, the above case can > pass, though I'm not sure how it is fixed. > So is there any plan to let them go into stable as well? If they are needed, I'll gladly queue them up, but this feels like something might have broken, so it should be easier to just revert the offending commit instead. Andy, any ideas? thanks, greg k-h