Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Brian Gerst
On Tue, Aug 25, 2020 at 8:04 PM Alexander Graf wrote: > > Hi Andy, > > On 26.08.20 01:41, Andy Lutomirski wrote: > > > > On Tue, Aug 25, 2020 at 4:18 PM Alexander Graf wrote: > >> > >> Hi Thomas, > >> > >> On 25.08.20 12:28, Thomas Gleixner wrote: > >>> void irq_complete_move(struct irq_cfg

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Thomas Gleixner
On Tue, Aug 25 2020 at 16:41, Andy Lutomirski wrote: > How about this: > > void irq_complete_move(struct irq_cfg *cfg) > { > __irq_complete_move(cfg, ~get_irq_regs()->orig_ax); > } > > in arch/x86/kernel/apic/vector.c. Duh

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Alexander Graf
Hi Andy, On 26.08.20 01:41, Andy Lutomirski wrote: On Tue, Aug 25, 2020 at 4:18 PM Alexander Graf wrote: Hi Thomas, On 25.08.20 12:28, Thomas Gleixner wrote: void irq_complete_move(struct irq_cfg *cfg) { __irq_complete_move(cfg, ~get_irq_regs()->orig_ax); } Alex, On Mon, Aug

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Andy Lutomirski
On Tue, Aug 25, 2020 at 4:18 PM Alexander Graf wrote: > > Hi Thomas, > > On 25.08.20 12:28, Thomas Gleixner wrote: > >void irq_complete_move(struct irq_cfg *cfg) { __irq_complete_move(cfg, ~get_irq_regs()->orig_ax); } > > Alex, > > > > On Mon, Aug 24 2020 at 19:29, Alexander Graf wrote:

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Alexander Graf
Hi Thomas, On 25.08.20 12:28, Thomas Gleixner wrote: Alex, On Mon, Aug 24 2020 at 19:29, Alexander Graf wrote: I'm currently trying to understand a performance regression with ScyllaDB on i3en.3xlarge (KVM based VM on Skylake) which we reliably bisected down to this commit:

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-25 Thread Thomas Gleixner
Alex, On Mon, Aug 24 2020 at 19:29, Alexander Graf wrote: > I'm currently trying to understand a performance regression with > ScyllaDB on i3en.3xlarge (KVM based VM on Skylake) which we reliably > bisected down to this commit: > >https://github.com/scylladb/scylla/issues/7036 > > What

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-08-24 Thread Alexander Graf
Hi Thomas, On 21.05.20 22:05, Thomas Gleixner wrote: From: Thomas Gleixner Device interrupts which go through do_IRQ() or the spurious interrupt handler have their separate entry code on 64 bit for no good reason. Both 32 and 64 bit transport the vector number through ORIG_[RE]AX in pt_regs.

Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-05-22 Thread Thomas Gleixner
Thomas Gleixner writes: > + .align 8 > +SYM_CODE_START(irq_entries_start) > +vector=FIRST_EXTERNAL_VECTOR > +pos = . > +.rept (FIRST_SYSTEM_VECTOR - FIRST_EXTERNAL_VECTOR) > + UNWIND_HINT_IRET_REGS > + .byte 0x6a, vector > + jmp common_interrupt > + .nops

[patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

2020-05-21 Thread Thomas Gleixner
From: Thomas Gleixner Device interrupts which go through do_IRQ() or the spurious interrupt handler have their separate entry code on 64 bit for no good reason. Both 32 and 64 bit transport the vector number through ORIG_[RE]AX in pt_regs. Further the vector number is forced to fit into an u8