lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a518220e-63f1-0832-e2b0-74e26dd9cf7f@suse.com>
Date:   Fri, 27 Jan 2017 11:27:48 +0100
From:   Juergen Gross <jgross@...e.com>
To:     Mohit Gambhir <mohit.gambhir@...cle.com>,
        Boris Ostrovsky <boris.ostrovsky@...cle.com>,
        tglx@...utronix.de, mingo@...hat.com, hpa@...or.com,
        x86@...nel.org, xen-devel@...ts.xenproject.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86/xen: Fix APIC id mismatch warning on Intel

On 26/01/17 19:12, Mohit Gambhir wrote:
> This patch fixes the following warning message seen when booting the
> kernel as Dom0 with Xen on Intel machines.
> 
> [0.003000] [Firmware Bug]: CPU1: APIC id mismatch. Firmware: 0 APIC: 1]
> 
> The code generating the warning in validate_apic_and_package_id() matches
> cpu_data(cpu).apicid (initialized in init_intel()->
> detect_extended_topology() using cpuid) against the apicid returned from
> xen_apic_read(). Now, xen_apic_read() makes a hypercall to retrieve apicid
> for the boot  cpu but returns 0 otherwise. Hence the warning gets thrown
> for all but the boot cpu.
> 
> The idea behind xen_apic_read() returning 0 for apicid is that the
> guests (even Dom0) should not need to know what physical processor their
> vcpus are running on. This is because we currently  do not have topology
> information in Xen and also because xen allows more vcpus than physical
> processors. However, boot cpu's apicid is required for loading
> xen-acpi-processor driver on AMD machines. Look at following patch for
> details:
> 
> commit 558daa289a40 ("xen/apic: Return the APIC ID (and version) for CPU
> 0.")
> 
> So to get rid of the warning, this patch modifies
> xen_cpu_present_to_apicid() to return cpu_data(cpu).apicid instead of
> calling xen_apic_read().
> 
> The warning is not seen on AMD machines because init_amd() populates
> cpu_data(cpu).apicid by calling hard_smp_processor_id()->xen_apic_read()
> as opposed to using apicid from cpuid as is done on Intel machines.
> 
> Signed-off-by: Mohit Gambhir <mohit.gambhir@...cle.com>

Reviewed-by: Juergen Gross <jgross@...e.com>


Thanks,

Juergen

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ