xen-devel
[Xen-devel] RE: VM hung after running sometime
Thanks Keir.
I will kick off a test based on my assumption.
Actually Domian U is always blocked in _VPF_blocked_in_xen, which is set only in two
functions, wait_on_xen_event_channel, prepare_wait_on_xen_event_channel. Both
two functions first set the bit and will givp up or try to give up the schedule.
What I want to do is modify these functions not to set the bit, and only give up the
schedule. Under this situation, the CPU will never be blocked. If the bug is due to the
race I imagined, domian U will never hang since even event is missed, VCPU still knows
when IO is ready by further schedule. If the bug is something else, say in qemu, domain
U will still confront hang since IO never ready. Am I right?
> Date: Mon, 20 Sep 2010 08:45:21 +0100 > Subject: Re: VM hung after running sometime > From: keir.fraser@xxxxxxxxxxxxx > To: tinnycloud@xxxxxxxxxxx > CC: xen-devel@xxxxxxxxxxxxxxxxxxx; jbeulich@xxxxxxxxxx > > On 20/09/2010 07:00, "MaoXiaoyun" <tinnycloud@xxxxxxxxxxx> wrote: > > > When IO is not ready, domain U in VMEXIT->hvm_do_resume might invoke > > wait_on_xen_event_channel > > (where it is blocked in _VPF_blocked_in_xen). > > > > Here is my assumption of event missed. > > > > step 1: hvm_do_resume execute 260, and suppose p->state is STATE_IOREQ_READY > > or STATE_IOREQ_INPROCESS > > step 2: then in cpu_handle_ioreq is in line 547, it execute line 548 so > > quickly before hvm_do_resume execute line 270. > > Well, the event is missed. > > In other words, the _VPF_blocked_in_xen is cleared before
it is actually > > setted, and Domian U who is blocked > > might never get unblocked, it this possible? > > Firstly, that code is very paranoid and it should never actually be the case > that we see STATE_IOREQ_READY or STATE_IOREQ_INPROCESS in hvm_do_resume(). > Secondly, even if you do, take a look at the implementation of > wait_on_xen_event_channel() -- it is smart enough to avoid the race you > mention. > > -- Keir > >
|
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] VM hung after running sometime, MaoXiaoyun
- [Xen-devel] RE: VM hung after running sometime, MaoXiaoyun
- [Xen-devel] Re: VM hung after running sometime, Keir Fraser
- [Xen-devel] RE: VM hung after running sometime, Zhang, Yang Z
- [Xen-devel] RE: VM hung after running sometime, MaoXiaoyun
- [Xen-devel] Re: VM hung after running sometime, Keir Fraser
- [Xen-devel] RE: VM hung after running sometime,
MaoXiaoyun <=
- [Xen-devel] RE: VM hung after running sometime, MaoXiaoyun
- [Xen-devel] Re: VM hung after running sometime, Keir Fraser
- [Xen-devel] RE: VM hung after running sometime, MaoXiaoyun
- [Xen-devel] Re: VM hung after running sometime, Keir Fraser
- Re: [Xen-devel] Re: VM hung after running sometime, wei song
- Re: [Xen-devel] Re: VM hung after running sometime, wei song
- Re: [Xen-devel] Re: VM hung after running sometime, Jeremy Fitzhardinge
- RE: [Xen-devel] Re: VM hung after running sometime, MaoXiaoyun
- Re: [Xen-devel] Re: VM hung after running sometime, Jeremy Fitzhardinge
- RE: [Xen-devel] Re: VM hung after running sometime, MaoXiaoyun
|
|
|