OpenSolaris

Printable Version Enter a New Search
Bug ID 6614268
Synopsis ballooning out pages with stale read only mappings causes problems
State 10-Fix Delivered (Fix available in build)
Category:Subcategory xvm:kernel
Keywords
Responsible Engineer Joseph Bonasera
Reported Against snv_75
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_76
Fixed In snv_76
Release Fixed solaris_nevada(snv_76)
Related Bugs
Submit Date 8-October-2007
Last Update Date 29-October-2007
Description
When ballooning memory pages out of a domain, this warning comes
from the hypervisor sometimes:

freeing in-use page

It turns out that to give away a page, the domain can't have
*any* mappings to it. The kernel mappings used for page table windows
and ppcopy() that are for read/only access are not torn down when
not in use.  These are what are causing the warnings.

Further, Nils claims that:
<NilsAtHome> It's a warning that eventually causes the machine to run out of memory. 
<NilsAtHome> The domU thinks it's given the page away, but Xen will never use it.
<NilsAtHome> If it's a domU, killing the domain causes the pages to be freed.  If it's a dom0, you'll have to reboot the machine.
The full error message is:

(XEN) memory.c:188:d0 Dom0 freeing in-use page 40ba0 (pseudophys 375f0): count=2 type=e8000000

The error seems rare: on average, I see it about once per 1 GB ballooned out.
When running on a the hypervisor:

ppcopy() only erases the mapping of the destination page, it should 
also erase the mapping of the source page.

x86pte_mapout() needs to erase the window mapping to the page table. Also
we need to stop remembering the window contents in x86pte_mapin().
Work Around
N/A
Comments
N/A