Re: [bug report][stable] perf probe: failed to add events

2019-03-25 Thread Adrian Hunter
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

2019-03-21 Thread Greg KH
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

2019-03-02 Thread Joseph Qi
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

2019-02-27 Thread Adrian Hunter
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

2019-02-27 Thread Joseph Qi
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

2019-02-27 Thread Adrian Hunter
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

2019-02-26 Thread Joseph Qi



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

2019-02-26 Thread Arnaldo Carvalho de Melo
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

2019-02-26 Thread Greg KH
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

2019-02-26 Thread Joseph Qi



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

2019-02-26 Thread Greg KH
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