Re: QEMU, MCE, unpoison memory address across reboot

Gleb Natapov
2010-12-28T08:27:14Z

On Mon, Dec 27, 2010 at 07:27:54PM -0200, Marcelo Tosatti wrote:
> On Sun, Dec 26, 2010 at 02:27:26PM +0200, Avi Kivity wrote:
> > >> +static void kvm_unpoison_all(void *param)
> > >> +{
> > >> + HWPoisonPage *page, *next_page;
> > >> + unsigned long address;
> > >> + KVMState *s = param;
> > >> +
> > >> + QLIST_FOREACH_SAFE(page,&hwpoison_page_list, list, next_page) {
> > >> + address = (unsigned long)page->vaddr;
> > >> + QLIST_REMOVE(page, list);
> > >> + kvm_vm_ioctl(s, KVM_UNPOISON_ADDRESS, address);
> > >> + qemu_free(page);
> > >> + }
> > >> +}
> > >
> > >Can't you free and reallocate all guest memory instead, on reboot, if
> > >there's a hwpoisoned page? Then you don't need this interface.
> > >
> >
> > Alternatively, MADV_DONTNEED? We already use it for ballooning.
>
> Does not work for hugetlbfs.
>
Don't we break huge page to 4k pages during poisoning?

--
Gleb.