From: Niklas Schnelle <schnelle@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>,
Pierre Morel <pmorel@linux.ibm.com>
Cc: rdunlap@infradead.org, linux-kernel@vger.kernel.org,
lkp@intel.com, farman@linux.ibm.com, linux-s390@vger.kernel.org,
kvm@vger.kernel.org, gor@linux.ibm.com, hca@linux.ibm.com,
Janosch Frank <frankja@linux.ibm.com>
Subject: Re: [PATCH] KVM: s390: pci: Hook to access KVM lowlevel from VFIO
Date: Thu, 18 Aug 2022 17:22:40 +0200 [thread overview]
Message-ID: <d780fd99ceef548b4bd815cf991d10602cb97b27.camel@linux.ibm.com> (raw)
In-Reply-To: <d874d06d-359d-0cc2-283b-cf4cfd5789e9@linux.ibm.com>
On Thu, 2022-08-18 at 11:13 -0400, Matthew Rosato wrote:
> On 8/18/22 10:20 AM, Niklas Schnelle wrote:
> > On Thu, 2022-08-18 at 09:33 -0400, Matthew Rosato wrote:
> > > On 8/18/22 6:23 AM, Pierre Morel wrote:
> > > > We have a cross dependency between KVM and VFIO.
> > >
> > > maybe add something like 'when using s390 vfio_pci_zdev extensions for PCI passthrough'
> > >
> > > > To be able to keep both subsystem modular we add a registering
> > > > hook inside the S390 core code.
> > > >
> > > > This fixes a build problem when VFIO is built-in and KVM is built
> > > > as a module or excluded.
> > >
> > > s/or excluded//
> > >
> > > There's no problem when KVM is excluded, that forces CONFIG_VFIO_PCI_ZDEV_KVM=n because of the 'depends on S390 && KVM'.
> > >
> > > > Reported-by: Randy Dunlap <rdunlap@infradead.org>
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> > > > Fixes: 09340b2fca007 ("KVM: s390: pci: add routines to start/stop inter..")
> > > > Cc: <stable@vger.kernel.org>
> > > > ---
> > > > arch/s390/include/asm/kvm_host.h | 17 ++++++-----------
> > > > arch/s390/kvm/pci.c | 10 ++++++----
> > > > arch/s390/pci/Makefile | 2 ++
> > > > arch/s390/pci/pci_kvm_hook.c | 11 +++++++++++
> > > > drivers/vfio/pci/vfio_pci_zdev.c | 8 ++++++--
> > > > 5 files changed, 31 insertions(+), 17 deletions(-)
> > > > create mode 100644 arch/s390/pci/pci_kvm_hook.c
> > > >
> > > > diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
> > > > index f39092e0ceaa..8312ed9d1937 100644
> > > > --- a/arch/s390/include/asm/kvm_host.h
> > > > +++ b/arch/s390/include/asm/kvm_host.h
> >
> > I added Janosch as second S390 KVM maintainer in case he wants to chime
> > in.
> >
> > > > @@ -1038,16 +1038,11 @@ static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {}
> > > > #define __KVM_HAVE_ARCH_VM_FREE
> > > > void kvm_arch_free_vm(struct kvm *kvm);
> > > >
> > > > -#ifdef CONFIG_VFIO_PCI_ZDEV_KVM
> > > > -int kvm_s390_pci_register_kvm(struct zpci_dev *zdev, struct kvm *kvm);
> > > > -void kvm_s390_pci_unregister_kvm(struct zpci_dev *zdev);
> > > > -#else
> > > > -static inline int kvm_s390_pci_register_kvm(struct zpci_dev *dev,
> > > > - struct kvm *kvm)
> > > > -{
> > > > - return -EPERM;
> > > > -}
> > > > -static inline void kvm_s390_pci_unregister_kvm(struct zpci_dev *dev) {}
> > > > -#endif
> > > > +struct kvm_register_hook {
> > >
> > > Nit: zpci_kvm_register_hook ? Just to make it clear it's for zpci.
> >
> > Hmm, I guess one could re-use the same struct for another such KVM
> > dependency but I lean towards the same thinking as Matt, for now this
> > is for zpci so stay specific we can always generalize later.
>
> Yes, let's keep this zpci-specific.
>
> > Nit: For me hook and register together sound a bit redudant, maybe
> > "zpci_kvm_register"? Also question for Matt as a native speaker, should
> > it rather be "registration" when used as a noun here?
> >
>
> Maybe just drop the 'register'. If there is a need for a 3rd function later, for example, it might not be related to registration.
Yes, that sounds good and makes sense so "zpci_kvm_hook".
>
> e.g. struct kvm_zpci_hook {
> ...
> };
>
> extern struct kvm_zpci_hook zpci_kvm;
>
---8<---
> > >
> > > > diff --git a/arch/s390/pci/pci_kvm_hook.c b/arch/s390/pci/pci_kvm_hook.c
> > > > new file mode 100644
> > > > index 000000000000..9d8799b72dbf
> > > > --- /dev/null
> > > > +++ b/arch/s390/pci/pci_kvm_hook.c
> > > > @@ -0,0 +1,11 @@
> > > > +// SPDX-License-Identifier: GPL-2.0-only
> > > > +/*
> > > > + * VFIO ZPCI devices support
> > > > + *
> > > > + * Copyright (C) IBM Corp. 2022. All rights reserved.
> > > > + * Author(s): Pierre Morel <pmorel@linux.ibm.com>
> > > > + */
> > > > +#include <linux/kvm_host.h>
> > > > +
> > > > +struct kvm_register_hook kvm_pci_hook;
> > > > +EXPORT_SYMBOL_GPL(kvm_pci_hook);
> > >
> > > Following the comments above, zpci_kvm_register_hook, kvm_zpci_hook ?
> > >
> > > I'm not sure if this really needs to be in a separate file or if it could just go into arch/s390/pci.c with the zpci_aipb -- If going the route of a separate file, up to Niklas whether he wants this under the S390 PCI maintainership or added to the list for s390 vfio-pci like arch/kvm/pci* and vfio_pci_zdev.
> >
> > I'm fine with a separate file, pci.c is long enough as it is. I also
> > don't have a problem with having it maintained as part of S390 PCI but
> > logically I think it does fall more under arch/kvm/pci* so one could
> > argue it should be added in the MAINTAINERS file in that section.
> > If you change the struct name as I proposed above I would probably go
> > with "pci_kvm_register.c"
>
> OK, no problem with me for a separate file then, or maintaining said file. But I guess not pci_kvm_register.c per my comments above
Yes, let's go with pci_kvm_hook.c then
>
next prev parent reply other threads:[~2022-08-18 15:23 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-14 21:51 [PATCH] vfio-pci/zdev: require KVM to be built-in Randy Dunlap
2022-08-15 9:43 ` Pierre Morel
2022-08-16 6:04 ` Randy Dunlap
2022-08-16 7:55 ` Pierre Morel
2022-08-16 13:47 ` Pierre Morel
2022-08-16 18:06 ` Randy Dunlap
2022-08-16 19:46 ` Matthew Rosato
2022-08-16 20:22 ` Pierre Morel
2022-08-16 20:28 ` [PATCH] KVM: s390: pci: VFIO_PCI ZDEV configuration fix Pierre Morel
2022-08-16 22:15 ` Matthew Rosato
2022-08-17 7:10 ` Pierre Morel
2022-08-18 10:23 ` [PATCH] KVM: s390: pci: Hook to access KVM lowlevel from VFIO Pierre Morel
2022-08-18 13:33 ` Matthew Rosato
2022-08-18 14:06 ` Pierre Morel
2022-08-18 14:20 ` Niklas Schnelle
2022-08-18 15:13 ` Matthew Rosato
2022-08-18 15:22 ` Niklas Schnelle [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-08-18 16:46 Pierre Morel
2022-08-18 20:38 ` Matthew Rosato
2022-08-18 20:54 ` Pierre Morel
2022-08-19 7:14 ` Niklas Schnelle
2022-08-19 8:44 ` Pierre Morel
2022-08-19 10:42 ` Niklas Schnelle
2022-08-19 11:42 ` Pierre Morel
2022-08-19 11:49 ` Niklas Schnelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d780fd99ceef548b4bd815cf991d10602cb97b27.camel@linux.ibm.com \
--to=schnelle@linux.ibm.com \
--cc=farman@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mjrosato@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=rdunlap@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.