On 18/12/2009 15:44, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
>> On deallocation:
>> if (test_and_clear(PGC_allocated)) put_page();
>> if (page->count_info & PGC_count_mask) return -EBUSY;
> Hmm, and how would you recover from that? I don't think George wants
> his enclosing operation to fail because of a page still being mapped. On
> x86-64, at least, it might be possible to play with PGC_xen_heap, to
> convert a Xen heap page to a domain heap one, but that wouldn't
> cover anyone else (and would seem rather hackish, if it works at all).
I assume he would wrap it all up in a retryable hypercall. E.g., I don't
know the scenario we're thinking about, but perhaps xentrace tools go bad
and leak mappings, so the hypercall fails. So you restart xentrace tools,
and now the hypercall would work on next attempt. You wouldn't have to be
stuck forever, but yes you are stuck, or at least have to keep tracking that
page in Xen, until dom0 stops mapping the page, obviously!
Xen-devel mailing list