Messages in this thread | | | Date | Thu, 20 Sep 2012 12:31:45 +0300 | From | Avi Kivity <> | Subject | Re: [PATCH 3/6] x86, kvm: use kernel_fpu_begin/end() in kvm_load/put_guest_fpu() |
| |
On 09/19/2012 08:25 PM, Suresh Siddha wrote: > On Wed, 2012-09-19 at 20:22 +0300, Avi Kivity wrote: >> On 09/19/2012 08:18 PM, Suresh Siddha wrote: >> >> > These routines (kvm_load/put_guest_fpu()) are already called with >> > preemption disabled but as you mentioned, we don't want the preemption >> > to be disabled completely between the kvm_load_guest_fpu() and >> > kvm_put_guest_fpu(). >> > >> > Also KVM already has the preempt notifier which is doing the >> > kvm_put_guest_fpu(), so something like the appended should address this. >> > I will test this shortly. >> > >> >> Note, we could also go in a different direction and make >> kernel_fpu_begin() use preempt notifiers and thus make its users >> preemptible. But that's for a separate patchset. > > yep, but we need the fpu buffer to save/restore the kernel fpu state. > > KVM already has those buffers allocated in the guest cpu state and hence > it all works out ok. But yes, we can revisit this in future.
kernel_fpu_begin() can allocate it. It means changing the APIs, but changing the behaviour to be preemptible is a bigger change anyway.
-- error compiling committee.c: too many arguments to function
| |