[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 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]