From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: long latency of domain shutdown Date: Thu, 08 May 2008 13:36:27 +0100 Message-ID: References: <48230F35.76E4.0078.0@novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <48230F35.76E4.0078.0@novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jan Beulich Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 8/5/08 13:33, "Jan Beulich" wrote: >> In actuality, since we know that we never have 'cross-domain' pagetable type >> references, we should actually be able to zap pagetable reference counts to >> zero. The only reason we don't do that right now is really because it >> provides good debugging info to see whether a domain's refcounts have got >> screwed up. But that would not prevent us doing something faster for NDEBUG >> builds, at least. >> >> Does that make sense? > > Yes, except for me not immediately seeing why this is then not also a > problem for the current circular reference handling. Because ultimately the reference(s) that are still being held on the page we are unvalidating and calling free_lX_table() on will get dropped, due to the fact we are breaking the circular chain and calling free_lX_table()->put_page_and_type()->... > But really, rather than introducing (and fixing) the hack here I'd much > prefer a generic solution to the problem, and you didn't say a word on > the thoughts I had on that (but in a mail a couple of days ago you > indicated you might get around doing something in that area yourself, > so I half way implied you may have a mechanism in mind already). I don't have a very clear plan, except that some kind of continuation (basically encoding of how far we got) must be encoded in the page_info structure. We should be able to find spare bits for a page which is in this in-between state. -- Keir