From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: Re: mapping problems in xenpaging Date: Thu, 29 Sep 2011 19:02:44 +0200 Message-ID: <20110929170244.GA29163@aepfle.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: zhen shi Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Thu, Sep 29, zhen shi wrote: >  Hi,Olaf, >   >  When we analyze and test xenpaging,we found there are some problems between > mapping and xenpaging. >  1) When mapping firstly, then do xenpaging,and the code paths have resolved > the problems.It's OK. >  2) The problems exists if we do address mapping firstly then go to > xenpaging,and our confusions are as followings: >    a) If the domU's memory is directly mapped to dom0,such as the hypercall > from pv driver,then it will build a related page-table in dom0,which will not > change p2m-type. >       and then do the xenpaging to page out the domU's memory pages whose gfn > address have been already mapped to dom0;So it will cause some problems when > dom0 >       accesses these pages.Because these pages are paged-out,and dom0 cannot > tell the p2mt before access the pages. I'm not entirely sure what you do. xenpaging runs in dom0 and is able to map paged-out pages. It uses that to trigger a page-in, see tools/xenpaging/pagein.c in xen-unstable.hg >   b)The another situation is that if xen has mapped the domU's page, and get > the mfn according to pfn_to_mfn.But then the page's p2mt is changed by others, > so when xen >     accesses the page ,it will cause problems such as BSOD or reboot.Because > the operations of getting mfn and accessing the page are not > atomic.and the situation exists >     in many code paths . Can you be more specific what you mean? Xen doesnt seem to have a pfn_to_mfn function, only the tools have some helper macros of that name. Olaf