From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=36951 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PaN88-0001zS-Le for qemu-devel@nongnu.org; Wed, 05 Jan 2011 01:45:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PaN87-0008PT-B5 for qemu-devel@nongnu.org; Wed, 05 Jan 2011 01:45:56 -0500 Received: from mga09.intel.com ([134.134.136.24]:28315) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PaN87-0008P5-4K for qemu-devel@nongnu.org; Wed, 05 Jan 2011 01:45:55 -0500 From: Huang Ying In-Reply-To: <4D1D9E0F.6040701@web.de> References: <1293772955.22308.251.camel@yhuang-dev> <4D1D9E0F.6040701@web.de> Content-Type: text/plain; charset="UTF-8" Date: Wed, 05 Jan 2011 14:45:51 +0800 Message-ID: <1294209951.22308.340.camel@yhuang-dev> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [RFC 2/2] KVM, MCE, unpoison memory address across reboot List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: "kvm@vger.kernel.org" , Dean Nelson , Marcelo Tosatti , "qemu-devel@nongnu.org" , Andi Kleen , Avi Kivity On Fri, 2010-12-31 at 17:10 +0800, Jan Kiszka wrote: > Am 31.12.2010 06:22, Huang Ying wrote: > > In Linux kernel HWPoison processing implementation, the virtual > > address in processes mapping the error physical memory page is marked > > as HWPoison. So that, the further accessing to the virtual > > address will kill corresponding processes with SIGBUS. > > > > If the error physical memory page is used by a KVM guest, the SIGBUS > > will be sent to QEMU, and QEMU will simulate a MCE to report that > > memory error to the guest OS. If the guest OS can not recover from > > the error (for example, the page is accessed by kernel code), guest OS > > will reboot the system. But because the underlying host virtual > > address backing the guest physical memory is still poisoned, if the > > guest system accesses the corresponding guest physical memory even > > after rebooting, the SIGBUS will still be sent to QEMU and MCE will be > > simulated. That is, guest system can not recover via rebooting. > > > > In fact, across rebooting, the contents of guest physical memory page > > need not to be kept. We can allocate a new host physical page to > > back the corresponding guest physical address. > > > > This patch fixes this issue in QEMU-KVM via calling qemu_ram_remap() > > to clear the corresponding page table entry, so that make it possible > > to allocate a new page to recover the issue. > > > > Signed-off-by: Huang Ying > > --- > > kvm.h | 2 ++ > > qemu-kvm.c | 37 +++++++++++++++++++++++++++++++++++++ > > What's missing in upstream to make this a uq/master patch? We are still > piling up features and fixes in qemu-kvm* that should better target > upstream directly. That's work needlessly done twice. OK. I will do that. Just based on uq/master is sufficient to make it an upstream patch? > Is this infrastructure really arch-independent? Will there be other > users besides x86? If not, better keep it in target-i386/kvm.c. No. It is used only in x86. I will move it into target-i386/kvm.c. Best Regards, Huang Ying