On Thu, Dec 28, 2017 at 11:41:45AM +0100, Thomas Gleixner wrote:
> On Sun, 24 Dec 2017, vcap...@pengaru.com wrote:
> > On Sat, Dec 23, 2017 at 09:33:37PM +0100, Thomas Gleixner wrote:
> > > > It seems like the affinity changes are assuming a strict adherence to
> > > > the CPU mask when the underlying hardware is treating it more as a hint.
> > > > Perhaps handlers still need to be maintained on all CPUs in a given apic
> > > > domain, regardless of what the masks are configured as, to cover these
> > > > situations.
> > > 
> > > That's odd. I'll have a look after the holidays.
> > > 
> > 
> > Ok, just FYI I've reproduced it on rc5 as well.
> > 
> > I may be offline a bit at the start of the new year, in case you've got
> > something for me to test and I'm unresponsive.
> 
> Can you try the patch below?
> 

Looks fixed so far, I'll try living in 4.15-rc5 now and will report back
if anything goes sideways.

Thanks Thomas!


> Thanks,
> 
>       tglx
> 
> 8<---------------
> --- a/arch/x86/kernel/apic/apic_flat_64.c
> +++ b/arch/x86/kernel/apic/apic_flat_64.c
> @@ -151,7 +151,7 @@ static struct apic apic_flat __ro_after_
>       .apic_id_valid                  = default_apic_id_valid,
>       .apic_id_registered             = flat_apic_id_registered,
>  
> -     .irq_delivery_mode              = dest_LowestPrio,
> +     .irq_delivery_mode              = dest_Fixed,
>       .irq_dest_mode                  = 1, /* logical */
>  
>       .disable_esr                    = 0,
> --- a/arch/x86/kernel/apic/probe_32.c
> +++ b/arch/x86/kernel/apic/probe_32.c
> @@ -105,7 +105,7 @@ static struct apic apic_default __ro_aft
>       .apic_id_valid                  = default_apic_id_valid,
>       .apic_id_registered             = default_apic_id_registered,
>  
> -     .irq_delivery_mode              = dest_LowestPrio,
> +     .irq_delivery_mode              = dest_Fixed,
>       /* logical delivery broadcast to all CPUs: */
>       .irq_dest_mode                  = 1,
>  
> --- a/arch/x86/kernel/apic/x2apic_cluster.c
> +++ b/arch/x86/kernel/apic/x2apic_cluster.c
> @@ -184,7 +184,7 @@ static struct apic apic_x2apic_cluster _
>       .apic_id_valid                  = x2apic_apic_id_valid,
>       .apic_id_registered             = x2apic_apic_id_registered,
>  
> -     .irq_delivery_mode              = dest_LowestPrio,
> +     .irq_delivery_mode              = dest_Fixed,
>       .irq_dest_mode                  = 1, /* logical */
>  
>       .disable_esr                    = 0,

Reply via email to