Re: [PATCH v6 06/12] Add PV MSR to enable asynchronous page faultsdelivery.

From: Avi Kivity
Date: Sun Oct 10 2010 - 08:49:16 EST


On 10/07/2010 07:53 PM, Gleb Natapov wrote:
On Thu, Oct 07, 2010 at 02:42:06PM +0200, Avi Kivity wrote:
> On 10/04/2010 05:56 PM, Gleb Natapov wrote:
> >Guest enables async PF vcpu functionality using this MSR.
> >
> > return NON_PRESENT;
> >+
> >+MSR_KVM_ASYNC_PF_EN: 0x4b564d02
> >+ data: Bits 63-6 hold 64-byte aligned physical address of a 32bit memory
>
> Given that it must be aligned anyway, we can require it to be a
> 64-byte region and also require that the guest zero it before
> writing the MSR. That will give us a little more flexibility in the
> future.
>
No code change needed, so OK.

The guest needs to allocate a 64-byte per-cpu entry instead of a 4-byte entry.

>
> >+ return 0;
> >+ }
> >+
> >+ if (kvm_gfn_to_hva_cache_init(vcpu->kvm,&vcpu->arch.apf.data, gpa))
> >+ return 1;
>
> Note: we need to handle the memory being removed from underneath
> kvm_gfn_to_hve_cache(). Given that, we can just make
> kvm_gfn_to_hva_cache_init() return void. "success" means nothing
> when future changes can invalidate it.
>
I want to catch guest doing stupid things. If guest give us non-existent
address I want wrmsr to #GP.

Ok.

> >+
> >+ kvm_async_pf_wakeup_all(vcpu);
>
> Why is this needed? If all apfs are flushed at disable time, what
> do we need to wake up?
For migration. Destination will rewrite msr and all processes will be
waked up.

Ok. What happens to apf completions that happen after all vcpus are stopped?

>
> Need to list the MSR for save/restore/reset.
>
>
This patch adds it to msrs_to_save, no?

Yes, missed it somehow.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/