Re: [RFC PATCH v6 02/92] kvm: introspection: add basic ioctls (hook/unhook)
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2019-08-13 08:44:33
Also in:
kvm, linux-mm
On 09/08/19 17:59, Adalbert Lazăr wrote:
+static int kvmi_recv(void *arg)
+{
+ struct kvmi *ikvm = arg;
+
+ kvmi_info(ikvm, "Hooking VM\n");
+
+ while (kvmi_msg_process(ikvm))
+ ;
+
+ kvmi_info(ikvm, "Unhooking VM\n");
+
+ kvmi_end_introspection(ikvm);
+
+ return 0;
+}
+Rename this to kvmi_recv_thread instead, please.
+ + /* + * Make sure all the KVM/KVMI structures are linked and no pointer + * is read as NULL after the reference count has been set. + */ + smp_mb__before_atomic();
This is an smp_wmb(), not an smp_mb__before_atomic(). Add a comment that it pairs with the refcount_inc_not_zero in kvmi_get.
+ refcount_set(&kvm->kvmi_ref, 1); +
quoted hunk ↗ jump to hunk
@@ -57,8 +183,27 @@ void kvmi_destroy_vm(struct kvm *kvm) if (!ikvm) return; + /* trigger socket shutdown - kvmi_recv() will start shutdown process */ + kvmi_sock_shutdown(ikvm); + kvmi_put(kvm); /* wait for introspection resources to be released */ wait_for_completion_killable(&kvm->kvmi_completed); } +
This addition means that kvmi_destroy_vm should have called kvmi_end_introspection instead. In patch 1, kvmi_end_introspection should have been just kvmi_put, now this patch can add kvmi_sock_shutdown. Paolo _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization