From: Stefan Bader <stefan.bader@canonical.com>
To: Boris Ostrovsky <boris.ostrovsky@amd.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Jan Beulich <jbeulich@suse.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: Workings/effectiveness of the xen-acpi-processor driver
Date: Thu, 03 May 2012 14:58:02 +0200 [thread overview]
Message-ID: <4FA280DA.9080505@canonical.com> (raw)
In-Reply-To: <4FA1B096.5010009@amd.com>
[-- Attachment #1.1: Type: text/plain, Size: 3619 bytes --]
On 03.05.2012 00:09, Boris Ostrovsky wrote:
> On 05/02/2012 05:41 PM, Konrad Rzeszutek Wilk wrote:
>> On Wed, May 02, 2012 at 02:31:07PM -0700, Boris Ostrovsky wrote:
>>> On 05/02/2012 01:14 PM, Konrad Rzeszutek Wilk wrote:
>>>> On Wed, May 02, 2012 at 01:06:34PM -0400, Boris Ostrovsky wrote:
>>>>> On 05/02/2012 12:08 PM, Konrad Rzeszutek Wilk wrote:
>>>>>> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
>>>>>> index a8f8844..d816448 100644
>>>>>> --- a/arch/x86/xen/enlighten.c
>>>>>> +++ b/arch/x86/xen/enlighten.c
>>>>>> @@ -811,7 +811,29 @@ static void xen_io_delay(void)
>>>>>> #ifdef CONFIG_X86_LOCAL_APIC
>>>>>> static u32 xen_apic_read(u32 reg)
>>>>>> {
>>>>>> - return 0;
>>>>>> + struct xen_platform_op op = {
>>>>>> + .cmd = XENPF_get_cpuinfo,
>>>>>> + .interface_version = XENPF_INTERFACE_VERSION,
>>>>>> + .u.pcpu_info.xen_cpuid = 0,
>>>>>
>>>>>
>>>>> Is this always zero? This will probably solve the current problem
>>>>
>>>> Its a CPU number (not tied in to APIC or ACPI IDs).
>>>
>>> Why not use CPU number instead of zero here?
>>
>> The issue was only with the bootup CPU - so was using the Xen's
>> bootup CPU number - which is zero (as is Linux's).
>
> I agree that for this particular problem this may be sufficient.
>
> My concern is that in the future someone may decide to use apic_read(APIC_ID) or
> read_apic_id() for some other purpose and they won't get expected result (i.e.
> on all CPUs they will get the same answer).
>
>>
>>>
>>>>
>>>>> but I am wondering whether in the future we might hit another bug
>>>>> because this routine will return the same APICID for all VCPUs.
>>>>
>>>> Later on it does a check for 'smp_processor_id()' - and if
>>>> that is anything but zero it will bail out.
>>>
>>> Can you point me to the check you are referring to?
>>
>> if (!xen_initial_domain() || smp_processor_id())
>
> I don't see this line --- neither in the mainline nor in your kernel. Which
> kernel and which routine is this in?
>
> BTW, this patch doesn't quite work, xen-acpi-processor driver fails to load with
> the same error as before. I'll look at this tomorrow more carefully.
>
>
> -boris
>
>>
>>
>>>
>>> -boris
>>>
>>>
>>>>
>>>> So this shoudl solve the problem for the bootup processor.
>>>>>
>>>>> -boris
>>>>>
>>>>>
>>>>>> + };
>>>>>> + int ret = 0;
>>>>>> +
>>>>>> + /* Shouldn't need this as APIC is turned off for PV, and we only
>>>>>> + * get called on the bootup processor. But just in case. */
>>>>>> + if (!xen_initial_domain() || smp_processor_id())
>>>>>> + return 0;
>>>>>> +
>>>>>> + if (reg == APIC_LVR)
>>>>>> + return 0x10;
>>>>>> +
>>>>>> + if (reg != APIC_ID)
>>>>>> + return 0;
>>>>>> +
>>>>>> + ret = HYPERVISOR_dom0_op(&op);
>>>>>> + if (ret)
>>>>>> + return 0;
>>>>>> +
>>>>>> + return op.u.pcpu_info.apic_id;
>>>>>> }
>>>>>>
>>>>>> static void xen_apic_write(u32 reg, u32 val)
I added debugging to all exit paths that could return 0 (which is what the
boot_cpu_physical_apicid is set to with that patch. Which would only leave the
case of the HV call returning the wrong value somehow...
>>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xen.org
>>> http://lists.xen.org/xen-devel
>>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2012-05-03 12:58 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-25 13:00 Workings/effectiveness of the xen-acpi-processor driver Stefan Bader
2012-04-26 15:50 ` Konrad Rzeszutek Wilk
2012-04-26 16:25 ` Stefan Bader
2012-04-26 17:04 ` Konrad Rzeszutek Wilk
2012-05-06 15:23 ` Pasi Kärkkäinen
2012-05-07 17:33 ` Konrad Rzeszutek Wilk
2012-05-07 17:44 ` Pasi Kärkkäinen
2012-05-01 20:02 ` Konrad Rzeszutek Wilk
2012-05-01 22:35 ` Boris Ostrovsky
2012-05-01 22:54 ` Konrad Rzeszutek Wilk
2012-05-02 0:47 ` Konrad Rzeszutek Wilk
2012-05-02 1:11 ` Boris Ostrovsky
2012-05-02 9:19 ` Jan Beulich
2012-05-02 14:56 ` Stefan Bader
2012-05-02 8:36 ` Stefan Bader
2012-05-02 15:01 ` Stefan Bader
2012-05-02 16:08 ` Konrad Rzeszutek Wilk
2012-05-02 17:06 ` Boris Ostrovsky
2012-05-02 17:14 ` Konrad Rzeszutek Wilk
2012-05-02 21:31 ` Boris Ostrovsky
2012-05-02 21:41 ` Konrad Rzeszutek Wilk
2012-05-02 22:09 ` Boris Ostrovsky
2012-05-03 6:55 ` Stefan Bader
2012-05-03 10:00 ` Stefan Bader
2012-05-03 12:58 ` Stefan Bader [this message]
2012-05-03 14:47 ` Stefan Bader
2012-05-03 15:46 ` Konrad Rzeszutek Wilk
2012-05-03 17:02 ` Boris Ostrovsky
2012-05-03 17:08 ` Konrad Rzeszutek Wilk
2012-05-04 8:00 ` Stefan Bader
2012-05-03 16:14 ` Konrad Rzeszutek Wilk
2012-05-02 21:29 ` Stefan Bader
2012-05-02 8:22 ` Stefan Bader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FA280DA.9080505@canonical.com \
--to=stefan.bader@canonical.com \
--cc=boris.ostrovsky@amd.com \
--cc=jbeulich@suse.com \
--cc=konrad.wilk@oracle.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).