From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [v4 1/3] vfio: add vfio_group_notify support Date: Wed, 16 Nov 2016 11:02:20 +0800 Message-ID: <582BCC3C.9070808@intel.com> References: <1479209747-5564-1-git-send-email-jike.song@intel.com> <1479209747-5564-2-git-send-email-jike.song@intel.com> <20161115161120.43d1aef8@t450s.home> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: pbonzini@redhat.com, guangrong.xiao@linux.intel.com, kwankhede@nvidia.com, cjia@nvidia.com, kevin.tian@intel.com, kvm@vger.kernel.org To: Alex Williamson Return-path: Received: from mga09.intel.com ([134.134.136.24]:10466 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752269AbcKPDGK (ORCPT ); Tue, 15 Nov 2016 22:06:10 -0500 In-Reply-To: <20161115161120.43d1aef8@t450s.home> Sender: kvm-owner@vger.kernel.org List-ID: On 11/16/2016 07:11 AM, Alex Williamson wrote: > On Tue, 15 Nov 2016 19:35:45 +0800 > Jike Song wrote: > >> A vfio_group may be or may not be attached to a KVM instance, >> if it is, the user of vfio_group might also want to know which >> KVM instance it is attached to, and when it will detach. In VFIO >> there are already external APIs for KVM to get/put vfio_group, >> by providing a similar vfio_group_notify, KVM can notify the >> vfio_group about attaching events. >> >> Cc: Xiao Guangrong >> Cc: Paolo Bonzini >> Cc: Alex Williamson >> Signed-off-by: Jike Song >> --- >> drivers/vfio/vfio.c | 30 ++++++++++++++++++++++++++++++ >> include/linux/vfio.h | 4 ++++ >> 2 files changed, 34 insertions(+) >> >> diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c >> index 0afb58e..b149ced 100644 >> --- a/drivers/vfio/vfio.c >> +++ b/drivers/vfio/vfio.c >> @@ -86,6 +86,8 @@ struct vfio_group { >> struct mutex unbound_lock; >> atomic_t opened; >> bool noiommu; >> + struct kvm *kvm; >> + struct blocking_notifier_head notifier; >> }; >> >> struct vfio_device { >> @@ -1015,6 +1017,34 @@ static long vfio_ioctl_check_extension(struct vfio_container *container, >> return ret; >> } >> >> +void vfio_group_notify(struct vfio_group *group, struct kvm *kvm) >> +{ >> + group->kvm = kvm; >> + blocking_notifier_call_chain(&group->notifier, >> + VFIO_GROUP_NOTIFY_SET_KVM, kvm); >> +} >> +EXPORT_SYMBOL_GPL(vfio_group_notify); > > This shouldn't be called vfio_group_notify() if it's specific to kvm. > vfio_group_set_kvm() perhaps. > will change to that. thanks! -- Thanks, Jike