On September 2, 2018 5:21:15 AM, fengguang.wu@xxxxxxxxx wrote: > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 8b47507faab5..0c483720de8d 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -3892,6 +3892,7 @@ static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm) > if (type == KVM_EVENT_CREATE_VM) { > add_uevent_var(env, "EVENT=create"); > kvm->userspace_pid = task_pid_nr(current); > + current->kvm = kvm; Is it OK to store `kvm` on the task_struct? What if the thread that originally created the VM exits? From the documentation it seems like a VM is associated with an address space and not a specific thread, so maybe it should be stored on mm_struct? >From Documentation/virtual/kvm/api.txt: Only run VM ioctls from the same process (address space) that was used to create the VM. -Nikita > } else if (type == KVM_EVENT_DESTROY_VM) { > add_uevent_var(env, "EVENT=destroy"); > } > -- > 2.15.0 > > >