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

Re: [Xen-devel] Re: A race condition introduced by changeset 15175: Re-init hypercall stubs page after HVM save/restore





Keir Fraser wrote:
> On 21/10/08 04:38, "Mukesh" <mukesh.rathor@xxxxxxxxxx> wrote:
>
>>> Hi Dexuan,
>>>
>>> Are you really sure that this is the problem? The suspend_lock was
>>> introduced specifically to solve this problem. Note that the BSP takes this
>>> lock before messing with the hypercall page.
>>>
>>>  -- Keir
>> I'm also looking at this now (I'm on 3.1.4 BTW). I see both hang and panic. 
it
>> appears I see the hang because the "master" vcpu is trying to catch other
>> vcpus
>> right at the cpu_relax so it can grab the lock in write mode. With many VCPUs
>> it's just not happening..... Not sure i like the design of this very much...
>> i'm
>> gonna try to modify it a bit ....
>
> Hmmm, yes, agreed. We need a completely different approach, or a lock which
> doesn't allow in more readers when there is a waiting writer. I'll look into
> it.
>
>  -- Keir
>

For now I fixed by removing yield and the lock at the expense of
burning a little cpu. Please let me know if you see any problems
with it...

ap_suspend()
..
        while (info->do_spin) {
                cpu_relax();
        }
..

bp_suspend():
..
        if (!suspend_cancelled) {
            platform_pci_resume();
            gnttab_resume();
            irq_resume();
        }
...

thanks,
Mukesh


_______________________________________________
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®.