Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-12-19 Thread Josh Poimboeuf
On Wed, Dec 20, 2017 at 05:41:44AM +, Andrey Vagin wrote:
> Hi Josh,
> 
> 
> Now I see these two warnings on Linus' tree:
> 
> [1.902454] WARNING: stack recursion on stack type 1
> [1.902466] WARNING: can't dereference iret registers at cd089a12 
> for ip entry_SYSCALL_64_fastpath+0x5/0x86

This still looks like the same issue where ORC is getting confused by
paravirt patching.  Unfortunately the patches which fix this got
preempted by other work again.  I haven't forgotten about it.

2017 is out the window, but hopefully in January I'll get a chance to
revive the patches.

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-12-19 Thread Josh Poimboeuf
On Wed, Dec 20, 2017 at 05:41:44AM +, Andrey Vagin wrote:
> Hi Josh,
> 
> 
> Now I see these two warnings on Linus' tree:
> 
> [1.902454] WARNING: stack recursion on stack type 1
> [1.902466] WARNING: can't dereference iret registers at cd089a12 
> for ip entry_SYSCALL_64_fastpath+0x5/0x86

This still looks like the same issue where ORC is getting confused by
paravirt patching.  Unfortunately the patches which fix this got
preempted by other work again.  I haven't forgotten about it.

2017 is out the window, but hopefully in January I'll get a chance to
revive the patches.

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-11-13 Thread Josh Poimboeuf
On Mon, Nov 13, 2017 at 02:06:35PM -0800, Andrei Vagin wrote:
> Hi Josh,
> 
> On Thu, Oct 26, 2017 at 8:24 AM, Josh Poimboeuf  wrote:
> > On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> >> Hi Josh,
> >>
> >> Here is one more warning:
> >> [5.852094] WARNING: can't dereference iret registers at 
> >> b6ce01b7ffe0 for ip entry_SYSCALL_64_fastpath+0xa/0xc2
> >
> > Thanks, I hadn't seen this one yet.
> >
> > I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> > code, which would mean this is another issue that will be fixed by my
> > "Make pv ops code generation more closely match reality" patches.
> >
> > If you can share either the entry_64.o file or the .config, and what
> > virt platform it's running on (kvm, xen, native), I should be able to
> > confirm the issue.
> >
> > I'm in Prague this week but I should have a v2 of those patches in a
> > week or two (will cc you).
> 
> Do you have any news? We still see this warning in the kernel log. Thanks!

Sorry, a bunch of other work got in the way.  I haven't forgotten about
it.  It's now (almost) at the top of my TODO list.

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-11-13 Thread Josh Poimboeuf
On Mon, Nov 13, 2017 at 02:06:35PM -0800, Andrei Vagin wrote:
> Hi Josh,
> 
> On Thu, Oct 26, 2017 at 8:24 AM, Josh Poimboeuf  wrote:
> > On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> >> Hi Josh,
> >>
> >> Here is one more warning:
> >> [5.852094] WARNING: can't dereference iret registers at 
> >> b6ce01b7ffe0 for ip entry_SYSCALL_64_fastpath+0xa/0xc2
> >
> > Thanks, I hadn't seen this one yet.
> >
> > I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> > code, which would mean this is another issue that will be fixed by my
> > "Make pv ops code generation more closely match reality" patches.
> >
> > If you can share either the entry_64.o file or the .config, and what
> > virt platform it's running on (kvm, xen, native), I should be able to
> > confirm the issue.
> >
> > I'm in Prague this week but I should have a v2 of those patches in a
> > week or two (will cc you).
> 
> Do you have any news? We still see this warning in the kernel log. Thanks!

Sorry, a bunch of other work got in the way.  I haven't forgotten about
it.  It's now (almost) at the top of my TODO list.

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-11-13 Thread Andrei Vagin
Hi Josh,

On Thu, Oct 26, 2017 at 8:24 AM, Josh Poimboeuf  wrote:
> On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
>> Hi Josh,
>>
>> Here is one more warning:
>> [5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
>> for ip entry_SYSCALL_64_fastpath+0xa/0xc2
>
> Thanks, I hadn't seen this one yet.
>
> I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> code, which would mean this is another issue that will be fixed by my
> "Make pv ops code generation more closely match reality" patches.
>
> If you can share either the entry_64.o file or the .config, and what
> virt platform it's running on (kvm, xen, native), I should be able to
> confirm the issue.
>
> I'm in Prague this week but I should have a v2 of those patches in a
> week or two (will cc you).

Do you have any news? We still see this warning in the kernel log. Thanks!

>
> --
> Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-11-13 Thread Andrei Vagin
Hi Josh,

On Thu, Oct 26, 2017 at 8:24 AM, Josh Poimboeuf  wrote:
> On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
>> Hi Josh,
>>
>> Here is one more warning:
>> [5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
>> for ip entry_SYSCALL_64_fastpath+0xa/0xc2
>
> Thanks, I hadn't seen this one yet.
>
> I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> code, which would mean this is another issue that will be fixed by my
> "Make pv ops code generation more closely match reality" patches.
>
> If you can share either the entry_64.o file or the .config, and what
> virt platform it's running on (kvm, xen, native), I should be able to
> confirm the issue.
>
> I'm in Prague this week but I should have a v2 of those patches in a
> week or two (will cc you).

Do you have any news? We still see this warning in the kernel log. Thanks!

>
> --
> Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-26 Thread Andrei Vagin
On Thu, Oct 26, 2017 at 10:24:29AM -0500, Josh Poimboeuf wrote:
> On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> > Hi Josh,
> > 
> > Here is one more warning:
> > [5.852094] WARNING: can't dereference iret registers at 
> > b6ce01b7ffe0 for ip entry_SYSCALL_64_fastpath+0xa/0xc2
> 
> Thanks, I hadn't seen this one yet.
> 
> I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> code, which would mean this is another issue that will be fixed by my
> "Make pv ops code generation more closely match reality" patches.
> 
> If you can share either the entry_64.o file or the .config, and what
> virt platform it's running on (kvm, xen, native), I should be able to
> confirm the issue.

The config is attached to this e-mail. It is a travis-ci vm. I think
they are hosted in Google Cloud:

[0.00] DMI: Google Google Compute Engine/Google Compute Engine, BIOS 
Google 01/01/2011
[0.00] Hypervisor detected: KVM

https://travis-ci.org/avagin/linux/jobs/292773933

> 
> I'm in Prague this week but I should have a v2 of those patches in a
> week or two (will cc you).

Good!

> 
> -- 
> Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-26 Thread Andrei Vagin
On Thu, Oct 26, 2017 at 10:24:29AM -0500, Josh Poimboeuf wrote:
> On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> > Hi Josh,
> > 
> > Here is one more warning:
> > [5.852094] WARNING: can't dereference iret registers at 
> > b6ce01b7ffe0 for ip entry_SYSCALL_64_fastpath+0xa/0xc2
> 
> Thanks, I hadn't seen this one yet.
> 
> I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
> code, which would mean this is another issue that will be fixed by my
> "Make pv ops code generation more closely match reality" patches.
> 
> If you can share either the entry_64.o file or the .config, and what
> virt platform it's running on (kvm, xen, native), I should be able to
> confirm the issue.

The config is attached to this e-mail. It is a travis-ci vm. I think
they are hosted in Google Cloud:

[0.00] DMI: Google Google Compute Engine/Google Compute Engine, BIOS 
Google 01/01/2011
[0.00] Hypervisor detected: KVM

https://travis-ci.org/avagin/linux/jobs/292773933

> 
> I'm in Prague this week but I should have a v2 of those patches in a
> week or two (will cc you).

Good!

> 
> -- 
> Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-26 Thread Josh Poimboeuf
On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> Hi Josh,
> 
> Here is one more warning:
> [5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
> for ip entry_SYSCALL_64_fastpath+0xa/0xc2

Thanks, I hadn't seen this one yet.

I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
code, which would mean this is another issue that will be fixed by my
"Make pv ops code generation more closely match reality" patches.

If you can share either the entry_64.o file or the .config, and what
virt platform it's running on (kvm, xen, native), I should be able to
confirm the issue.

I'm in Prague this week but I should have a v2 of those patches in a
week or two (will cc you).

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-26 Thread Josh Poimboeuf
On Wed, Oct 25, 2017 at 02:07:38PM -0700, Andrei Vagin wrote:
> Hi Josh,
> 
> Here is one more warning:
> [5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
> for ip entry_SYSCALL_64_fastpath+0xa/0xc2

Thanks, I hadn't seen this one yet.

I suspect this is in the middle of the ENABLE_INTERRUPTS() paravirt
code, which would mean this is another issue that will be fixed by my
"Make pv ops code generation more closely match reality" patches.

If you can share either the entry_64.o file or the .config, and what
virt platform it's running on (kvm, xen, native), I should be able to
confirm the issue.

I'm in Prague this week but I should have a v2 of those patches in a
week or two (will cc you).

-- 
Josh


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-25 Thread Andrei Vagin
Hi Josh,

Here is one more warning:
[5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
for ip entry_SYSCALL_64_fastpath+0xa/0xc2

[avagin@laptop linux]$ git describe tip/auto-latest
v4.14-rc6-471-g376214a8543d

On Fri, Oct 20, 2017 at 11:21:33AM -0500, Josh Poimboeuf wrote:
> This fixes the following ORC warning in the 'int3' entry code:
> 
>   WARNING: can't dereference iret registers at 8801c5f17fe0 for ip 
> 95f0d94b
> 
> The ORC metadata had the wrong stack offset for the iret registers.
> 
> Their location on the stack is dependent on whether the exception has an
> error code.
> 
> Reported-and-tested-by: Andrei Vagin 
> Fixes: 8c1f75587a18 ("x86/entry/64: Add unwind hint annotations")
> Signed-off-by: Josh Poimboeuf 
> ---
>  arch/x86/entry/entry_64.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
> index 49167258d587..f6cdb7a1455e 100644
> --- a/arch/x86/entry/entry_64.S
> +++ b/arch/x86/entry/entry_64.S
> @@ -808,7 +808,7 @@ apicinterrupt IRQ_WORK_VECTOR 
> irq_work_interrupt  smp_irq_work_interrupt
>  
>  .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
>  ENTRY(\sym)
> - UNWIND_HINT_IRET_REGS offset=8
> + UNWIND_HINT_IRET_REGS offset=\has_error_code*8
>  
>   /* Sanity check */
>   .if \shift_ist != -1 && \paranoid == 0
> -- 
> 2.13.6
> 


Re: [PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-25 Thread Andrei Vagin
Hi Josh,

Here is one more warning:
[5.852094] WARNING: can't dereference iret registers at b6ce01b7ffe0 
for ip entry_SYSCALL_64_fastpath+0xa/0xc2

[avagin@laptop linux]$ git describe tip/auto-latest
v4.14-rc6-471-g376214a8543d

On Fri, Oct 20, 2017 at 11:21:33AM -0500, Josh Poimboeuf wrote:
> This fixes the following ORC warning in the 'int3' entry code:
> 
>   WARNING: can't dereference iret registers at 8801c5f17fe0 for ip 
> 95f0d94b
> 
> The ORC metadata had the wrong stack offset for the iret registers.
> 
> Their location on the stack is dependent on whether the exception has an
> error code.
> 
> Reported-and-tested-by: Andrei Vagin 
> Fixes: 8c1f75587a18 ("x86/entry/64: Add unwind hint annotations")
> Signed-off-by: Josh Poimboeuf 
> ---
>  arch/x86/entry/entry_64.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
> index 49167258d587..f6cdb7a1455e 100644
> --- a/arch/x86/entry/entry_64.S
> +++ b/arch/x86/entry/entry_64.S
> @@ -808,7 +808,7 @@ apicinterrupt IRQ_WORK_VECTOR 
> irq_work_interrupt  smp_irq_work_interrupt
>  
>  .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
>  ENTRY(\sym)
> - UNWIND_HINT_IRET_REGS offset=8
> + UNWIND_HINT_IRET_REGS offset=\has_error_code*8
>  
>   /* Sanity check */
>   .if \shift_ist != -1 && \paranoid == 0
> -- 
> 2.13.6
> 


[PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-20 Thread Josh Poimboeuf
This fixes the following ORC warning in the 'int3' entry code:

  WARNING: can't dereference iret registers at 8801c5f17fe0 for ip 
95f0d94b

The ORC metadata had the wrong stack offset for the iret registers.

Their location on the stack is dependent on whether the exception has an
error code.

Reported-and-tested-by: Andrei Vagin 
Fixes: 8c1f75587a18 ("x86/entry/64: Add unwind hint annotations")
Signed-off-by: Josh Poimboeuf 
---
 arch/x86/entry/entry_64.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 49167258d587..f6cdb7a1455e 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -808,7 +808,7 @@ apicinterrupt IRQ_WORK_VECTOR   
irq_work_interrupt  smp_irq_work_interrupt
 
 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
 ENTRY(\sym)
-   UNWIND_HINT_IRET_REGS offset=8
+   UNWIND_HINT_IRET_REGS offset=\has_error_code*8
 
/* Sanity check */
.if \shift_ist != -1 && \paranoid == 0
-- 
2.13.6



[PATCH 1/3] x86/entry: Fix idtentry unwind hint

2017-10-20 Thread Josh Poimboeuf
This fixes the following ORC warning in the 'int3' entry code:

  WARNING: can't dereference iret registers at 8801c5f17fe0 for ip 
95f0d94b

The ORC metadata had the wrong stack offset for the iret registers.

Their location on the stack is dependent on whether the exception has an
error code.

Reported-and-tested-by: Andrei Vagin 
Fixes: 8c1f75587a18 ("x86/entry/64: Add unwind hint annotations")
Signed-off-by: Josh Poimboeuf 
---
 arch/x86/entry/entry_64.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 49167258d587..f6cdb7a1455e 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -808,7 +808,7 @@ apicinterrupt IRQ_WORK_VECTOR   
irq_work_interrupt  smp_irq_work_interrupt
 
 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
 ENTRY(\sym)
-   UNWIND_HINT_IRET_REGS offset=8
+   UNWIND_HINT_IRET_REGS offset=\has_error_code*8
 
/* Sanity check */
.if \shift_ist != -1 && \paranoid == 0
-- 
2.13.6