[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code |
Date: |
Mon, 19 Sep 2011 13:35:03 +0200 |
On 17.09.2011, at 19:40, Blue Swirl wrote:
> On Sat, Sep 17, 2011 at 5:15 PM, Alexander Graf <address@hidden> wrote:
>>
>> Am 17.09.2011 um 18:58 schrieb Blue Swirl <address@hidden>:
>>
>>> On Wed, Sep 14, 2011 at 8:42 AM, Alexander Graf <address@hidden> wrote:
>>>> CPUs that are not the boot CPU need to run in spinning code to check if
>>>> they
>>>> should run off to execute and if so where to jump to. This usually happens
>>>> by leaving secondary CPUs looping and checking if some variable in memory
>>>> changed.
>>>>
>>>> In an environment like Qemu however we can be more clever. We can just
>>>> export
>>>> the spin table the primary CPU modifies as MMIO region that would event
>>>> based
>>>> wake up the respective secondary CPUs. That saves us quite some cycles
>>>> while
>>>> the secondary CPUs are not up yet.
>>>>
>>>> So this patch adds a PV device that simply exports the spinning table into
>>>> the
>>>> guest and thus allows the primary CPU to wake up secondary ones.
>>>
>>> On Sparc32, there is no need for a PV device. The CPU is woken up from
>>> halted state with an IPI. Maybe you could use this approach?
>>
>> The way it's done here is defined by u-boot and now also nailed down in the
>> ePAPR architecture spec. While alternatives might be more appealing, this is
>> how guests work today :).
>
> OK. I hoped that there were no implementations yet. The header (btw
> missing) should point to the spec.
IIUC the spec that includes these bits is not finalized yet. It is however in
use on all u-boot versions for e500 that I'm aware of and the method Linux uses
to bring up secondary CPUs.
Stuart / Scott, do you have any pointers to documentation where the spinning is
explained?
Alex
- Re: [Qemu-ppc] [PATCH 50/58] pseries: Update SLOF firmware image, (continued)
[Qemu-ppc] [PATCH 04/58] PPC: Move openpic to target specific code compilation, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 44/58] kvm: ppc: booke206: use MMU API, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Alexander Graf, 2011/09/14
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/17
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Alexander Graf, 2011/09/17
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/17
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code,
Alexander Graf <=
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Scott Wood, 2011/09/19
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/24
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Alexander Graf, 2011/09/24
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/24
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Alexander Graf, 2011/09/24
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/24
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Scott Wood, 2011/09/26
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/27
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Alexander Graf, 2011/09/27
- Re: [Qemu-ppc] [PATCH 24/58] PPC: E500: Add PV spinning code, Blue Swirl, 2011/09/27