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

Re: [Xen-devel] balloon question

On 8 Jun 2006, at 14:51, Jan Beulich wrote:

Running with Xen option dom0_mem=6G and kernel option mem=8G, I would have expected that I would see the system with a 2G balloon right after boot. However, the balloon is empty. Briefly looking at this, it would seem to me that, with all pages being reserved when the system starts and only the populated ones getting the reserved status cleared in __free_pages_bootmem(), the condition to put pages into the balloon in balloon_init() is inverted.

i386 deliberately marks pages beyond start_info->nr_pages as not Reserved so they get picked up by the balloon driver. Either x86/64 needs to do the same, or we stop doing that in i386. But then there will be pages that are legitimately Reserved that the balloon driver will erroneously pick up. Or we could make the balloon driver explicitly pick up all pages from start_info->nr_pages. Or have an interface to allow arch code to register page ranges with the balloon driver. This needs a little thought....

Also, dying in xen_destroy_contiguous_region() (and similarly in the failure recovery code in xen_create_contiguous_region()) if the space just unmapped can't be re-populated seems overly harsh (we're having a case where this actually happens); wouldn't it make sense to make this fatal only when the page can't be replaced by a free one (allocated inside the domain, with the page stolen for this then simply pushed into the balloon, similar to balloon_alloc_empty_page_range() except without freeing the memory to Xen)?

As it happens I'm fixing this exact problem right now. :-) Expect a fix in -unstable and -testing in the next few days.

 -- Keir

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.