Re: [PATCH v5 04/12] Provide special async page fault handler when async PF capability is detected

Avi Kivity
2010-08-23T16:23:48Z

On 08/23/2010 06:52 PM, Rik van Riel wrote:
> On 08/23/2010 11:48 AM, Avi Kivity wrote:
>
>> Do you need to match cpu here as well? Or is token globally unique?
>>
>> Perhaps we should make it locally unique to remove a requirement from
>> the host to synchronize? I haven't seen how you generate it yet.
>
> If a task goes to sleep on one VCPU, but that VCPU ends
> up not being runnable later on, it would be nice to wake
> the task up on on a different VCPU.
>
> I do not remember why it is safe to send this wakeup
> event as an exception rather than an interrupt...

Wakeup could definitely be an interrupt, but the apf needs to be an
exception so we reuse it.

>
>> The other cpu might be waiting for us to yield. We can fix it later with
>> the the pv spinlock infrastructure.
>>
>> Or, we can avoid the allocation. If at most one apf can be pending (is
>> this true?), we can use a per-cpu variable for this dummy entry.
>
> Having a limit of just one APF pending kind of defeats
> the point.

Yes. How about, one APF pending before it is seen by the guest - but
how can we tell without an annoying xchg?

>
> At that point, a second one of these faults would put
> the VCPU to sleep, which prevents the first task from
> running once its pagefault (which started earlier)
> completes...
>

--
error compiling committee.c: too many arguments to function