|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86: suppress bogus log message
commit 0ce647ad6f70c5ec0aeee66ce74429982b81911a
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Nov 26 15:51:49 2015 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Nov 26 15:51:49 2015 +0100
x86: suppress bogus log message
The way we populate mpc_cpufeature is not compatible with modern CPUs,
and hence the message printed using that information is useless/bogus.
It's of interest only anyway when not using ACPI, so move it into MPS
parsing code. This at once significantly reduces boot time logging on
huge systems.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/mpparse.c | 51 ++++++++++++++------------
xen/include/asm-x86/mach-generic/mach_apic.h | 10 -----
2 files changed, 27 insertions(+), 34 deletions(-)
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index dc74e37..dc2b251 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -125,9 +125,9 @@ static int __init mpf_checksum(unsigned char *mp, int len)
/* Return xen's logical cpu_id of the new added cpu or <0 if error */
static int __devinit MP_processor_info_x(struct mpc_config_processor *m,
- u32 apicidx, bool_t hotplug)
+ u32 apicid, bool_t hotplug)
{
- int ver, apicid, cpu = 0;
+ int ver, cpu = 0;
if (!(m->mpc_cpuflag & CPU_ENABLED)) {
if (!hotplug)
@@ -135,8 +135,6 @@ static int __devinit MP_processor_info_x(struct
mpc_config_processor *m,
return -EINVAL;
}
- apicid = mpc_apic_id(m, apicidx);
-
if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) {
Dprintk(" Bootup CPU\n");
boot_cpu_physical_apicid = apicid;
@@ -340,11 +338,24 @@ static int __init smp_read_mpc(struct mp_config_table
*mpc)
{
struct mpc_config_processor *m=
(struct mpc_config_processor *)mpt;
- /* ACPI may have already provided this data */
- if (!acpi_lapic)
- MP_processor_info(m);
+
mpt += sizeof(*m);
count += sizeof(*m);
+
+ /* ACPI may have already provided this data. */
+ if (acpi_lapic)
+ break;
+
+ printk("Processor #%02x %u:%u APIC version
%u%s\n",
+ m->mpc_apicid,
+ MASK_EXTR(m->mpc_cpufeature,
+ CPU_FAMILY_MASK),
+ MASK_EXTR(m->mpc_cpufeature,
+ CPU_MODEL_MASK),
+ m->mpc_apicver,
+ m->mpc_cpuflag & CPU_ENABLED
+ ? "" : " [disabled]");
+ MP_processor_info(m);
break;
}
case MP_BUS:
@@ -781,8 +792,15 @@ int __devinit mp_register_lapic (
bool_t enabled,
bool_t hotplug)
{
- struct mpc_config_processor processor;
- int boot_cpu = 0;
+ struct mpc_config_processor processor = {
+ .mpc_type = MP_PROCESSOR,
+ /* Note: We don't fill in fields not consumed anywhere. */
+ .mpc_apicid = id,
+ .mpc_apicver = GET_APIC_VERSION(apic_read(APIC_LVR)),
+ .mpc_cpuflag = (enabled ? CPU_ENABLED : 0) |
+ (id == boot_cpu_physical_apicid ?
+ CPU_BOOTPROCESSOR : 0),
+ };
if (MAX_APICS <= id) {
printk(KERN_WARNING "Processor #%d invalid (max %d)\n",
@@ -790,21 +808,6 @@ int __devinit mp_register_lapic (
return -EINVAL;
}
- if (id == boot_cpu_physical_apicid)
- boot_cpu = 1;
-
- processor.mpc_type = MP_PROCESSOR;
- processor.mpc_apicid = id;
- processor.mpc_apicver = GET_APIC_VERSION(apic_read(APIC_LVR));
- processor.mpc_cpuflag = (enabled ? CPU_ENABLED : 0);
- processor.mpc_cpuflag |= (boot_cpu ? CPU_BOOTPROCESSOR : 0);
- processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
- (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
- processor.mpc_featureflag
- = boot_cpu_data.x86_capability[cpufeat_word(X86_FEATURE_FPU)];
- processor.mpc_reserved[0] = 0;
- processor.mpc_reserved[1] = 0;
-
return MP_processor_info_x(&processor, id, hotplug);
}
diff --git a/xen/include/asm-x86/mach-generic/mach_apic.h
b/xen/include/asm-x86/mach-generic/mach_apic.h
index ef76456..03e9e8a 100644
--- a/xen/include/asm-x86/mach-generic/mach_apic.h
+++ b/xen/include/asm-x86/mach-generic/mach_apic.h
@@ -28,16 +28,6 @@ static inline void enable_apic_mode(void)
extern u32 bios_cpu_apicid[];
-static inline int mpc_apic_id(struct mpc_config_processor *m, u32 apicid)
-{
- printk("Processor #%d %d:%d APIC version %d\n",
- apicid,
- (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8,
- (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4,
- m->mpc_apicver);
- return apicid;
-}
-
static inline int multi_timer_check(int apic, int irq)
{
return 0;
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |