[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 4/4] x86/APIC: restrict certain messages to BSP
On 14.05.2020 12:01, Roger Pau Monné wrote: > 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> Thanks. > 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. I've added "No functional change from this" to the last paragraph. >> --- 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. I want to specifically keep them, so that once (if ever) we introduce hot-unplug support for the BSP, the same or similar messages can be used and matched against earlier ones in the log. >> } >> 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); Indeed, at the expense of larger code churn. Seems like an at least partially unrelated change to me (at risk of obscuring the actual purpose of the change here). Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |