Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-18 Thread Denys Vlasenko
On 06/18/2015 11:31 AM, Ingo Molnar wrote: >> If it takes, say, 20 cycles to pull data from e.g. L3 cache to ECX, >> then SYSRET can't possibly complete sooner than in 20 cycles. > > Yeah, that's true, but my point is: SYSRET has to do a lot of other things > (permission checks, loading the user

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-18 Thread Ingo Molnar
* Denys Vlasenko wrote: > On 06/15/2015 10:20 PM, Ingo Molnar wrote: > >> Actually, ecx and r11 need to be loaded first. They are not so much > >> "restored" > >> as "prepared for SYSRET insn". Every cycle lost in loading these delays > >> SYSRET. > >> [...] > > > > So in the typical case

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-18 Thread Ingo Molnar
* Denys Vlasenko dvlas...@redhat.com wrote: On 06/15/2015 10:20 PM, Ingo Molnar wrote: Actually, ecx and r11 need to be loaded first. They are not so much restored as prepared for SYSRET insn. Every cycle lost in loading these delays SYSRET. [...] So in the typical case they

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-18 Thread Denys Vlasenko
On 06/18/2015 11:31 AM, Ingo Molnar wrote: If it takes, say, 20 cycles to pull data from e.g. L3 cache to ECX, then SYSRET can't possibly complete sooner than in 20 cycles. Yeah, that's true, but my point is: SYSRET has to do a lot of other things (permission checks, loading the user mode

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-15 Thread Denys Vlasenko
On 06/15/2015 10:20 PM, Ingo Molnar wrote: >> Actually, ecx and r11 need to be loaded first. They are not so much >> "restored" >> as "prepared for SYSRET insn". Every cycle lost in loading these delays >> SYSRET. >> [...] > > So in the typical case they will still be cached, and so their max

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-15 Thread Ingo Molnar
* Denys Vlasenko wrote: > On 06/14/2015 10:40 AM, Ingo Molnar wrote: > > > > * Denys Vlasenko wrote: > > > >>+8b 74 24 68mov0x68(%rsp),%esi > >>+8b 7c 24 70mov0x70(%rsp),%edi > >>+8b 54 24 60mov0x60(%rsp),%edx > > > > Btw., could

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-15 Thread Ingo Molnar
* Denys Vlasenko dvlas...@redhat.com wrote: On 06/14/2015 10:40 AM, Ingo Molnar wrote: * Denys Vlasenko dvlas...@redhat.com wrote: +8b 74 24 68mov0x68(%rsp),%esi +8b 7c 24 70mov0x70(%rsp),%edi +8b 54 24 60mov0x60(%rsp),%edx

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-15 Thread Denys Vlasenko
On 06/15/2015 10:20 PM, Ingo Molnar wrote: Actually, ecx and r11 need to be loaded first. They are not so much restored as prepared for SYSRET insn. Every cycle lost in loading these delays SYSRET. [...] So in the typical case they will still be cached, and so their max latency

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-14 Thread Denys Vlasenko
On 06/14/2015 10:40 AM, Ingo Molnar wrote: > > * Denys Vlasenko wrote: > >> +8b 74 24 68mov0x68(%rsp),%esi >> +8b 7c 24 70mov0x70(%rsp),%edi >> +8b 54 24 60mov0x60(%rsp),%edx > > Btw., could you (in another patch) order the

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-14 Thread Ingo Molnar
* Denys Vlasenko wrote: > +8b 74 24 68mov0x68(%rsp),%esi > +8b 7c 24 70mov0x70(%rsp),%edi > +8b 54 24 60mov0x60(%rsp),%edx Btw., could you (in another patch) order the restoration properly, by pt_regs memory order, where

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-14 Thread Ingo Molnar
* Denys Vlasenko dvlas...@redhat.com wrote: +8b 74 24 68mov0x68(%rsp),%esi +8b 7c 24 70mov0x70(%rsp),%edi +8b 54 24 60mov0x60(%rsp),%edx Btw., could you (in another patch) order the restoration properly, by pt_regs memory

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-14 Thread Denys Vlasenko
On 06/14/2015 10:40 AM, Ingo Molnar wrote: * Denys Vlasenko dvlas...@redhat.com wrote: +8b 74 24 68mov0x68(%rsp),%esi +8b 7c 24 70mov0x70(%rsp),%edi +8b 54 24 60mov0x60(%rsp),%edx Btw., could you (in another patch) order the

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 12:18 PM, Denys Vlasenko wrote: > On 06/09/2015 09:11 PM, Andy Lutomirski wrote: >> On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko wrote: >>> On 06/09/2015 09:01 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko wrote: > This

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
On 06/09/2015 09:11 PM, Andy Lutomirski wrote: > On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko wrote: >> On 06/09/2015 09:01 PM, Andy Lutomirski wrote: >>> On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko wrote: This doesn't change much, but this uses shorter 32-bit insns:

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko wrote: > On 06/09/2015 09:01 PM, Andy Lutomirski wrote: >> On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko wrote: >>> This doesn't change much, but this uses shorter 32-bit insns: >>> >>> -48 8b 74 24 68 mov0x68(%rsp),%rsi >>>

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
On 06/09/2015 09:01 PM, Andy Lutomirski wrote: > On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko wrote: >> This doesn't change much, but this uses shorter 32-bit insns: >> >> -48 8b 74 24 68 mov0x68(%rsp),%rsi >> -48 8b 7c 24 70 mov0x70(%rsp),%rdi >>

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko wrote: > This doesn't change much, but this uses shorter 32-bit insns: > > -48 8b 74 24 68 mov0x68(%rsp),%rsi > -48 8b 7c 24 70 mov0x70(%rsp),%rdi > -48 8b 54 24 60 mov0x60(%rsp),%rdx >

[PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
This doesn't change much, but this uses shorter 32-bit insns: -48 8b 74 24 68 mov0x68(%rsp),%rsi -48 8b 7c 24 70 mov0x70(%rsp),%rdi -48 8b 54 24 60 mov0x60(%rsp),%rdx +8b 74 24 68mov0x68(%rsp),%esi +8b 7c

[PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
This doesn't change much, but this uses shorter 32-bit insns: -48 8b 74 24 68 mov0x68(%rsp),%rsi -48 8b 7c 24 70 mov0x70(%rsp),%rdi -48 8b 54 24 60 mov0x60(%rsp),%rdx +8b 74 24 68mov0x68(%rsp),%esi +8b 7c

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
On 06/09/2015 09:01 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko dvlas...@redhat.com wrote: This doesn't change much, but this uses shorter 32-bit insns: -48 8b 74 24 68 mov0x68(%rsp),%rsi -48 8b 7c 24 70 mov0x70(%rsp),%rdi

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko dvlas...@redhat.com wrote: On 06/09/2015 09:01 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko dvlas...@redhat.com wrote: This doesn't change much, but this uses shorter 32-bit insns: -48 8b 74 24 68

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko dvlas...@redhat.com wrote: This doesn't change much, but this uses shorter 32-bit insns: -48 8b 74 24 68 mov0x68(%rsp),%rsi -48 8b 7c 24 70 mov0x70(%rsp),%rdi -48 8b 54 24 60 mov

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Andy Lutomirski
On Tue, Jun 9, 2015 at 12:18 PM, Denys Vlasenko dvlas...@redhat.com wrote: On 06/09/2015 09:11 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko dvlas...@redhat.com wrote: On 06/09/2015 09:01 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko

Re: [PATCH 4/5] x86/asm/entry/32: Replace RESTORE_RSI_RDI[_RDX] with open-coded 32-bit reads

2015-06-09 Thread Denys Vlasenko
On 06/09/2015 09:11 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 12:03 PM, Denys Vlasenko dvlas...@redhat.com wrote: On 06/09/2015 09:01 PM, Andy Lutomirski wrote: On Tue, Jun 9, 2015 at 11:54 AM, Denys Vlasenko dvlas...@redhat.com wrote: This doesn't change much, but this uses shorter