[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 4/4] x86/APIC: restrict certain messages to BSP
On Fri, Mar 13, 2020 at 10:26:47AM +0100, Jan Beulich wrote: > All CPUs get an equal setting of EOI broadcast suppression; no need to > log one message per CPU, even if it's only in verbose APIC mode. > > Only the BSP is eligible to possibly get ExtINT enabled; no need to log > that it gets disabled on all APs, even if - again - it's only in verbose > APIC mode. > > Take the opportunity and introduce a "bsp" parameter to the function, to > stop using smp_processor_id() to tell BSP from APs. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> LGTM: Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> AFAICT this doesn't introduce any functional change in APIC setup or behavior, the only functional change is the log message reduction. Might be good to add a note to that effect to make this clear, since the change from smp_processor_id() -> bsp might make this not obvious. > > --- a/xen/arch/x86/apic.c > +++ b/xen/arch/x86/apic.c > @@ -499,7 +499,7 @@ static void resume_x2apic(void) > __enable_x2apic(); > } > > -void setup_local_APIC(void) > +void setup_local_APIC(bool bsp) > { > unsigned long oldvalue, value, maxlvt; > int i, j; > @@ -598,8 +598,8 @@ void setup_local_APIC(void) > if ( directed_eoi_enabled ) > { > value |= APIC_SPIV_DIRECTED_EOI; > - apic_printk(APIC_VERBOSE, "Suppress EOI broadcast on CPU#%d\n", > - smp_processor_id()); > + if ( bsp ) > + apic_printk(APIC_VERBOSE, "Suppressing EOI broadcast\n"); > } > > apic_write(APIC_SPIV, value); > @@ -615,21 +615,22 @@ void setup_local_APIC(void) > * TODO: set up through-local-APIC from through-I/O-APIC? --macro > */ > value = apic_read(APIC_LVT0) & APIC_LVT_MASKED; > - if (!smp_processor_id() && (pic_mode || !value)) { > + if (bsp && (pic_mode || !value)) { > value = APIC_DM_EXTINT; > apic_printk(APIC_VERBOSE, "enabled ExtINT on CPU#%d\n", > smp_processor_id()); > } else { > value = APIC_DM_EXTINT | APIC_LVT_MASKED; > - apic_printk(APIC_VERBOSE, "masked ExtINT on CPU#%d\n", > - smp_processor_id()); > + if (bsp) > + apic_printk(APIC_VERBOSE, "masked ExtINT on CPU#%d\n", > + smp_processor_id()); You might want to also drop the CPU#%d from the above messages, since they would only be printed for the BSP. > } > apic_write(APIC_LVT0, value); > > /* > * only the BP should see the LINT1 NMI signal, obviously. > */ > - if (!smp_processor_id()) > + if (bsp) > value = APIC_DM_NMI; > else > value = APIC_DM_NMI | APIC_LVT_MASKED; This would be shorter as: value = APIC_DM_NMI | (bsp ? 0 : APIC_LVT_MASKED); Not specially trilled anyway. Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |