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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 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 kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux