[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Patch] continue_hypercall_on_cpu rework using tasklets



On 15/04/2010 09:29, "Juergen Gross" <juergen.gross@xxxxxxxxxxxxxx> wrote:

>> There is only one ASSERT in __sync_lazy_execstate, and it's safe for this
>> case. Bear in mind that our softirqs always run in the context of whatever
>> domain happens to be running on that cpu currently -- they don't have their
>> own proper vcpu context.
> 
> I don't see how it should be guaranteed that the current vcpu MUST be an idle
> one...

It's odd because someone else asked this exact same question, so the code
must be more subtle than I thought. Note that the ASSERT is inside
if(switch_required), and switch_required is true only if the vcpu whose
state is loaded on this CPU is not the same as the currently-scheduled vcpu.
This odd situation is only possible if we are lazy-syncing the former vcpu's
state, and that only occurs if the currently-running vcpu is the idle vcpu
(as all other vcpus would need their state loaded immediately, so lazy sync
does not apply).

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.