From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=40187 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PaOWG-0004Dn-LV for qemu-devel@nongnu.org; Wed, 05 Jan 2011 03:14:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PaOWG-0007bB-Gv for qemu-devel@nongnu.org; Wed, 05 Jan 2011 03:14:57 -0500 Received: from fmmailgate03.web.de ([217.72.192.234]:59951) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PaOWG-0007b5-4v for qemu-devel@nongnu.org; Wed, 05 Jan 2011 03:14:56 -0500 Message-ID: <4D24287C.3040003@web.de> Date: Wed, 05 Jan 2011 09:14:52 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <1293772955.22308.251.camel@yhuang-dev> <4D1D9E0F.6040701@web.de> <1294209951.22308.340.camel@yhuang-dev> In-Reply-To: <1294209951.22308.340.camel@yhuang-dev> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig44F9C2FBA37371E0ADF26341" Sender: jan.kiszka@web.de 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: Huang Ying Cc: "kvm@vger.kernel.org" , Dean Nelson , Marcelo Tosatti , "qemu-devel@nongnu.org" , Andi Kleen , Avi Kivity This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig44F9C2FBA37371E0ADF26341 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Am 05.01.2011 07:45, Huang Ying wrote: > 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 O= S >>> 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 b= e >>> 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 stil= l >> piling up features and fixes in qemu-kvm* that should better target >> upstream directly. That's work needlessly done twice. >=20 > OK. I will do that. Just based on uq/master is sufficient to make it an= > upstream patch? This how things work: You base your upstream changes onto uq/master, they get picked up and then merged into qemu, qemu-kvm merges upstream back, and then you have your bits ready in both trees. Sometimes it takes some additional tweaking the qemu-kvm after the merge, but I hope we can significantly reduce the need for that very soon. >=20 >> Is this infrastructure really arch-independent? Will there be other >> users besides x86? If not, better keep it in target-i386/kvm.c. >=20 > No. It is used only in x86. I will move it into target-i386/kvm.c. >=20 Perfect. Then you just need to extend kvm_arch_init_vcpu with your reset registration, and both upstream and qemu-kvm will gain the feature automatically. Jan --------------enig44F9C2FBA37371E0ADF26341 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAk0kKHwACgkQitSsb3rl5xRG5QCaA8ozncCBnvCjoiWztMm9WLRj M0wAn2fQZ0csXhXsM2bNwc6HkFhNefJQ =8qvD -----END PGP SIGNATURE----- --------------enig44F9C2FBA37371E0ADF26341--