[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xenheap pages mapped by dom0
Jan Beulich wrote: I wouldn't really mind the op failing; I just want it to fail cleanly. All-or-nothing would be optimal IMHO. Failing such that everything will automatically clean itself up if/when dom0 does unmap the pages would be OK too. Having half the pages freed / marked unallocated, but some still allocated doesn't seem very good.Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 18.12.09 16:24 >>>I think the right thing to do would be very roughly: On allocation: page = alloc_xenheap_page(); share_xen_page_with_guest(page); 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). Anyway, I care more about allocating larger buffers than I do about re-allocating, so maybe I'll just punt on freeing maybe-mapped buffers for now. However, that brings up another point: suppose that I do several allocations, one per cpu, and one fails. Now I want to go and free the buffers I've just allocated (which shouldn't be mapped in dom0 yet). Can I not just call free_xenheap_pages()? Do I need to clear PGC_allocated before calling? Is any of this stuff written down somewhere? :-) -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |