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

Re: [Xen-devel] [PATCH] x86: fix domain cleanup



>>> Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 28.10.08 11:25 >>>
>On 28/10/08 10:05, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:
>
>>> Ah, looks like it's been broken since the preemptible page_type patch went
>>> in. Perhaps the tail of free_page_type() should go into __put_page_type(),
>>> as it's not needed by the call site in relinquish_memory(): the caller
>>> doesn't really hold a type reference to be dropped; and the logic for being
>>> preempted doesn't apply since relinquish_memory() requests no preemption.
>> 
>> It doesn't at present, but it should (in favor of
>> DOMAIN_DESTRUCT_AVOID_RECURSION),
>> including the put_page_and_type() earlier in that function. But of course,
>> it may still turn out that cleaning up after preemption here must be handled
>> differently from the __put_page_type() case. I'll give moving that part
>> (and removing the put_page() added yesterday) a try.

Okay, seems like it finally starts to work - it turned out that indeed we need
to distinguish whether a page was partially allocated or partially freed:
Partial allocation does not grab a general page reference, while partial free
doesn't drop it. My test box now survived 8 instances (out of 100 VM
destroys) where the VM got killed with a partially allocated page (and also
without leaking memory), but I surely want to run it for some more time,
especially also after removing all the debugging output I had to add to
figure what's going on (which makes the timing all different, but luckily
apparently increased the likelihood of running into the problem).

Jan


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