]> git.karo-electronics.de Git - karo-tx-linux.git/commit
xen/setup: Cap amount to populate based on current tot_pages count.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 27 Apr 2012 02:11:08 +0000 (22:11 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 27 Apr 2012 20:02:32 +0000 (16:02 -0400)
commite4568b678455f68d374277319fb5cc41f11b6c4f
tree88f0d09f05a36f29bc7d5d8f344d18f3ddee2db9
parent465d482a452679df1694f9528c1aa08a52355e56
xen/setup: Cap amount to populate based on current tot_pages count.

Previous to this patch we would try to populate exactly up to
xen_released_pages number (so the ones that we released), but
that is incorrect as there are some pages that we thought were
released but in actuality were shared. Depending on the platform
it could be small amounts - 2 pages, but some had much higher - 17.

As such, lets use the XENMEM_current_reservation to get the exact
count of pages we are using, subtract it from nr_pages and use the
lesser of this and xen_released_pages to populate back.

This fixes errors such as:

(XEN) page_alloc.c:1148:d0 Over-allocation for domain 0: 2097153 > 2097152
(XEN) memory.c:133:d0 Could not allocate order=0 extent: id=0 memflags=0 (0 of 17)

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/setup.c