From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=40897 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PeeVz-0006SQ-P1 for qemu-devel@nongnu.org; Sun, 16 Jan 2011 21:08:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PeeVy-0004JM-5J for qemu-devel@nongnu.org; Sun, 16 Jan 2011 21:08:15 -0500 Received: from mga11.intel.com ([192.55.52.93]:24410) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PeeVy-0004IW-0w for qemu-devel@nongnu.org; Sun, 16 Jan 2011 21:08:14 -0500 From: Huang Ying In-Reply-To: <4D300B9A.9010508@siemens.com> References: <1294907685.4596.44.camel@yhuang-dev> <4D2EBF69.9070208@siemens.com> <1294969881.4596.80.camel@yhuang-dev> <4D300B9A.9010508@siemens.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 17 Jan 2011 10:08:08 +0800 Message-ID: <1295230088.10748.79.camel@yhuang-dev> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH uq/master 2/2] 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: Dean@gnu.org, "kvm@vger.kernel.org" , Nelson , Marcelo Tosatti , "qemu-devel@nongnu.org" , Anthony Liguori , Andi Kleen , Avi Kivity , "Wu, Fengguang" On Fri, 2011-01-14 at 16:38 +0800, Jan Kiszka wrote: > Am 14.01.2011 02:51, Huang Ying wrote: > > On Thu, 2011-01-13 at 17:01 +0800, Jan Kiszka wrote: > >> Am 13.01.2011 09:34, Huang Ying wrote: [snip] > >>> + > >>> +void kvm_unpoison_all(void *param) > >> > >> Minor nit: This can be static now. > > > > In uq/master, it can be make static. But in kvm/master, kvm_arch_init > > is not compiled because of conditional compiling, so we will get warning > > and error for unused symbol. Should we consider kvm/master in this > > patch? > > qemu-kvm is very close to switching to upstream kvm_*init. As long as it > requires this service in its own modules, it will have to patch this > detail. It does this for other functions already. OK. I will change this. [snip] > >> As indicated, I'm sitting on lots of fixes and refactorings of the MCE > >> user space code. How do you test your patches? Any suggestions how to do > >> this efficiently would be warmly welcome. > > > > We use a self-made test script to test. Repository is at: > > > > git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git > > > > The kvm test script is in kvm sub-directory. > > > > The qemu patch attached is need by the test script. > > > > Yeah, I already found this yesterday and started reading. I was just > searching for p2v in qemu, but now it's clear where it comes from. Will > have a look (if you want to preview my changes: > git://git.kiszka.org/qemu-kvm.git queues/kvm-upstream). > > I was almost about to use MADV_HWPOISON instead of the injection module. > Is there a way to recover the fake corruption afterward? I think that > would allow to move some of the test logic into qemu and avoid p2v which > - IIRC - was disliked upstream. I don't know how to fully recover from MADV_HWPOISON. You can recover the virtual address space via qemu_ram_remap() introduced in 1/2 of this patchset. But you will lose one or several physical pages for each testing. I think that may be not a big issue for a testing machine. Ccing Andi and Fengguang, they know more than me about MADV_HWPOISON. > Also, is there a way to simulate corrected errors (BUS_MCEERR_AO)? BUS_MCEERR_AO is recoverable uncorrected error instead of corrected error. The test script is for BUS_MCEERR_AO and BUS_MCEERR_AR. To see the effect of pure BUS_MCEERR_AO, just remove the memory accessing loop (memset) in tools/simple_process/simple_process.c. Best Regards, Huang Ying