From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751805AbdA3C7z (ORCPT ); Sun, 29 Jan 2017 21:59:55 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:51225 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751509AbdA3C7t (ORCPT ); Sun, 29 Jan 2017 21:59:49 -0500 Subject: Re: [PATCH] x86/xen: Fix APIC id mismatch warning on Intel To: Mohit Gambhir , jgross@suse.com, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org References: From: Boris Ostrovsky Message-ID: <17a5e82f-2e6c-6d16-7a23-1f26810d8e45@oracle.com> Date: Sun, 29 Jan 2017 21:58:25 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/26/2017 01:12 PM, 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 Applied to for-linus-4.11. -boris