From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: page refcount on pages mapped by the toolstack.. Date: Wed, 5 Dec 2012 17:41:53 -0800 Message-ID: <20121205174153.76fa5dd1@mantra.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Xen-devel@lists.xensource.com" , Ian Campbell , Jan Beulich List-Id: xen-devel@lists.xenproject.org Hi, I observed something that doesn't seem right to me: PV dom0 booting PV guest (say domid 1). (no PVH). xl cr vm.cfg.pv Take some mfn from domid 1. It's refcnt is 1 as expected. Now, the lib wants to map it via xen_remap_domain_mfn_range(). The call goes thru do_mmu_update(), and upon returning the refcnt is 2, as expected. Now, I noticed the refcnt doesn't go back to 1 after the guest is created/booted. I'd have expected the process exit somewhere to have resulted in the refcnt going down to 1 (which is what would happen in case of PVH dom0). The guest is up, I notice the refcnt is 2. I shutdown the guest, the refcnt goes to 0 and the page is freed via relinquish_memory() called from domain_relinquish_resources(). I would have expected the page to hang with refcnt 1, what if the user process still has it mapped? What am I missing? Thanks, Mukesh