From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH V3] X86/vMCE: handle broken page with regard to migration Date: Mon, 19 Nov 2012 15:29:37 +0000 Message-ID: <50AA5061.7040103@eu.citrix.com> References: <446f6b9bfc89137e1aa0.1353117881@ljsromley.bj.intel.com> <20646.33684.410414.579210@mariner.uk.xensource.com> <1353318919.18229.7.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1353318919.18229.7.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: "Liu, Jinsong" , "xen-devel@lists.xensource.com" , Ian Jackson , "JBeulich@suse.com" List-Id: xen-devel@lists.xenproject.org On 19/11/12 09:55, Ian Campbell wrote: > If we get to this stage then haven't we either already sent something > over the wire for this page or marked it as dirty when we tried and > failed to send it? > > In the former case we don't care that the page is now broken on the > source since the target has got a good pre-breakage copy. > > In the latter case could we not set a flag at the same time as we mark > the page dirty which means "go round at least one more time"? Yeah -- on the last iteration, the VM itself has to be paused; if any pages get broken after that, it doesn't really matter, does it? The real thing is to have a consistent "snapshot" of behavior. I guess the one potentially tricky case to worry about is whether to deliver an MCE to the guest on restore. Consider the following scenario: - Page A is modified (and marked dirty) - VM paused for last iteration - Page breaks, is marked broken in the p2m - Save code sends page A In that case, the save code would send a "broken" page, and the restore code would mark a page as broken, and we *would* want to deliver an MCE on the far side. But suppose the last two steps were reversed: - Page A modified - VM paused for last iteration - Save code sends page A - Page breaks, marked broken in the p2m In that case, when the save code sends page A, it will send a good page; there's no need to mark it broken, or to send the guest an MCE. Am I understanding the situation correctly, Jinsong? -George