Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-06 Thread Dou Liyang
Hi Thomas, At 06/06/2018 04:04 PM, Thomas Gleixner wrote: On Wed, 6 Jun 2018, Dou Liyang wrote: Hi Thomas, At 06/05/2018 07:41 PM, Thomas Gleixner wrote: On Tue, 5 Jun 2018, Dou Liyang wrote: +{ + if (unlikely(irqd_is_setaffinity_pending(irqd))) Affinity pending is also judged in

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-06 Thread Dou Liyang
Hi Thomas, At 06/06/2018 04:04 PM, Thomas Gleixner wrote: On Wed, 6 Jun 2018, Dou Liyang wrote: Hi Thomas, At 06/05/2018 07:41 PM, Thomas Gleixner wrote: On Tue, 5 Jun 2018, Dou Liyang wrote: +{ + if (unlikely(irqd_is_setaffinity_pending(irqd))) Affinity pending is also judged in

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-06 Thread Thomas Gleixner
On Wed, 6 Jun 2018, Dou Liyang wrote: > Hi Thomas, > > At 06/05/2018 07:41 PM, Thomas Gleixner wrote: > > On Tue, 5 Jun 2018, Dou Liyang wrote: > > > > +{ > > > > + if (unlikely(irqd_is_setaffinity_pending(irqd))) > > > > > > Affinity pending is also judged in > > > > > > > +

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-06 Thread Thomas Gleixner
On Wed, 6 Jun 2018, Dou Liyang wrote: > Hi Thomas, > > At 06/05/2018 07:41 PM, Thomas Gleixner wrote: > > On Tue, 5 Jun 2018, Dou Liyang wrote: > > > > +{ > > > > + if (unlikely(irqd_is_setaffinity_pending(irqd))) > > > > > > Affinity pending is also judged in > > > > > > > +

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Dou Liyang
Hi Thomas, At 06/05/2018 07:41 PM, Thomas Gleixner wrote: On Tue, 5 Jun 2018, Dou Liyang wrote: +{ + if (unlikely(irqd_is_setaffinity_pending(irqd))) Affinity pending is also judged in + irq_move_irq(irqd); If we can remove the if(...) statement here That requires

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Dou Liyang
Hi Thomas, At 06/05/2018 07:41 PM, Thomas Gleixner wrote: On Tue, 5 Jun 2018, Dou Liyang wrote: +{ + if (unlikely(irqd_is_setaffinity_pending(irqd))) Affinity pending is also judged in + irq_move_irq(irqd); If we can remove the if(...) statement here That requires

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Thomas Gleixner
On Tue, 5 Jun 2018, Dou Liyang wrote: > > +{ > > + if (unlikely(irqd_is_setaffinity_pending(irqd))) > > Affinity pending is also judged in > > > + irq_move_irq(irqd); > > If we can remove the if(...) statement here That requires to fix all call sites in ia64 and that's why I

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Thomas Gleixner
On Tue, 5 Jun 2018, Dou Liyang wrote: > > +{ > > + if (unlikely(irqd_is_setaffinity_pending(irqd))) > > Affinity pending is also judged in > > > + irq_move_irq(irqd); > > If we can remove the if(...) statement here That requires to fix all call sites in ia64 and that's why I

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Dou Liyang
Hi Thomas, At 06/04/2018 11:33 PM, Thomas Gleixner wrote: apic_ack_edge() is explicitely for handling interrupt affinity cleanup when interrupt remapping is not available or disable. Remapped interrupts and also some of the platform specific special interrupts, e.g. UV, invoke ack_APIC_irq()

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Dou Liyang
Hi Thomas, At 06/04/2018 11:33 PM, Thomas Gleixner wrote: apic_ack_edge() is explicitely for handling interrupt affinity cleanup when interrupt remapping is not available or disable. Remapped interrupts and also some of the platform specific special interrupts, e.g. UV, invoke ack_APIC_irq()

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Song Liu
On Mon, Jun 4, 2018 at 8:33 AM, Thomas Gleixner wrote: > apic_ack_edge() is explicitely for handling interrupt affinity cleanup when > interrupt remapping is not available or disable. > > Remapped interrupts and also some of the platform specific special > interrupts, e.g. UV, invoke

Re: [patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-05 Thread Song Liu
On Mon, Jun 4, 2018 at 8:33 AM, Thomas Gleixner wrote: > apic_ack_edge() is explicitely for handling interrupt affinity cleanup when > interrupt remapping is not available or disable. > > Remapped interrupts and also some of the platform specific special > interrupts, e.g. UV, invoke

[patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-04 Thread Thomas Gleixner
apic_ack_edge() is explicitely for handling interrupt affinity cleanup when interrupt remapping is not available or disable. Remapped interrupts and also some of the platform specific special interrupts, e.g. UV, invoke ack_APIC_irq() directly. To address the issue of failing an affinity update

[patch 3/8] x86/apic: Provide apic_ack_irq()

2018-06-04 Thread Thomas Gleixner
apic_ack_edge() is explicitely for handling interrupt affinity cleanup when interrupt remapping is not available or disable. Remapped interrupts and also some of the platform specific special interrupts, e.g. UV, invoke ack_APIC_irq() directly. To address the issue of failing an affinity update