virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV
       [not found] <20220928234008.30302-1-mgurtovoy@nvidia.com>
@ 2022-10-12  2:31 ` Jason Wang
  2022-10-12  5:02 ` Michael S. Tsirkin
  1 sibling, 0 replies; 4+ messages in thread
From: Jason Wang @ 2022-10-12  2:31 UTC (permalink / raw)
  To: Max Gurtovoy; +Cc: linux-block, virtualization, stefanha, mst

On Thu, Sep 29, 2022 at 7:40 AM Max Gurtovoy <mgurtovoy@nvidia.com> wrote:
>
> This is instead of re-writing the same logic in virtio driver.
>
> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>

Acked-by: Jason Wang <Jasowang@redhat.com>


> ---
>  drivers/virtio/virtio_pci_common.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
> index ad258a9d3b9f..67d3970e57f2 100644
> --- a/drivers/virtio/virtio_pci_common.c
> +++ b/drivers/virtio/virtio_pci_common.c
> @@ -607,7 +607,6 @@ static int virtio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs)
>  {
>         struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev);
>         struct virtio_device *vdev = &vp_dev->vdev;
> -       int ret;
>
>         if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK))
>                 return -EBUSY;
> @@ -615,19 +614,7 @@ static int virtio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs)
>         if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV))
>                 return -EINVAL;
>
> -       if (pci_vfs_assigned(pci_dev))
> -               return -EPERM;
> -
> -       if (num_vfs == 0) {
> -               pci_disable_sriov(pci_dev);
> -               return 0;
> -       }
> -
> -       ret = pci_enable_sriov(pci_dev, num_vfs);
> -       if (ret < 0)
> -               return ret;
> -
> -       return num_vfs;
> +       return pci_sriov_configure_simple(pci_dev, num_vfs);
>  }
>
>  static struct pci_driver virtio_pci_driver = {
> --
> 2.18.1
>

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV
       [not found] <20220928234008.30302-1-mgurtovoy@nvidia.com>
  2022-10-12  2:31 ` [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV Jason Wang
@ 2022-10-12  5:02 ` Michael S. Tsirkin
       [not found]   ` <642b7167-2c1f-c7df-a732-0603da92579a@nvidia.com>
  1 sibling, 1 reply; 4+ messages in thread
From: Michael S. Tsirkin @ 2022-10-12  5:02 UTC (permalink / raw)
  To: Max Gurtovoy; +Cc: linux-block, stefanha, virtualization

On Thu, Sep 29, 2022 at 02:40:08AM +0300, Max Gurtovoy wrote:
> This is instead of re-writing the same logic in virtio driver.
> 
> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>

Dropped this as it caused build failures:

https://lore.kernel.org/r/202210080424.gSmuYfb0-lkp%40intel.com

> ---
>  drivers/virtio/virtio_pci_common.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
> index ad258a9d3b9f..67d3970e57f2 100644
> --- a/drivers/virtio/virtio_pci_common.c
> +++ b/drivers/virtio/virtio_pci_common.c
> @@ -607,7 +607,6 @@ static int virtio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs)
>  {
>  	struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev);
>  	struct virtio_device *vdev = &vp_dev->vdev;
> -	int ret;
>  
>  	if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK))
>  		return -EBUSY;
> @@ -615,19 +614,7 @@ static int virtio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs)
>  	if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV))
>  		return -EINVAL;
>  
> -	if (pci_vfs_assigned(pci_dev))
> -		return -EPERM;
> -
> -	if (num_vfs == 0) {
> -		pci_disable_sriov(pci_dev);
> -		return 0;
> -	}
> -
> -	ret = pci_enable_sriov(pci_dev, num_vfs);
> -	if (ret < 0)
> -		return ret;
> -
> -	return num_vfs;
> +	return pci_sriov_configure_simple(pci_dev, num_vfs);
>  }
>  
>  static struct pci_driver virtio_pci_driver = {
> -- 
> 2.18.1

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV
       [not found]     ` <f0e8e8a5-74ce-e62f-78f2-afb63663345e@nvidia.com>
@ 2022-10-12 21:20       ` Bjorn Helgaas via Virtualization
       [not found]         ` <63b02394-d932-a385-9267-515c71bb65ee@nvidia.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Bjorn Helgaas via Virtualization @ 2022-10-12 21:20 UTC (permalink / raw)
  To: Max Gurtovoy; +Cc: linux-block, virtualization, stefanha, Michael S. Tsirkin

On Wed, Oct 12, 2022 at 5:01 AM Max Gurtovoy <mgurtovoy@nvidia.com> wrote:
>
>
> On 10/12/2022 11:42 AM, Max Gurtovoy wrote:
> >
> > On 10/12/2022 8:02 AM, Michael S. Tsirkin wrote:
> >> On Thu, Sep 29, 2022 at 02:40:08AM +0300, Max Gurtovoy wrote:
> >>> This is instead of re-writing the same logic in virtio driver.
> >>>
> >>> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
> >> Dropped this as it caused build failures:
> >>
> >> https://lore.kernel.org/r/202210080424.gSmuYfb0-lkp%40intel.com
> >
> > maybe you can re-run it with:
> >
> > diff --git a/drivers/virtio/Makefile b/drivers/virtio/Makefile
> > index 8e98d24917cc..b383326a20e2 100644
> > --- a/drivers/virtio/Makefile
> > +++ b/drivers/virtio/Makefile
> > @@ -5,10 +5,11 @@ obj-$(CONFIG_VIRTIO_PCI_LIB) += virtio_pci_modern_dev.o
> >  obj-$(CONFIG_VIRTIO_PCI_LIB_LEGACY) += virtio_pci_legacy_dev.o
> >  obj-$(CONFIG_VIRTIO_MMIO) += virtio_mmio.o
> >  obj-$(CONFIG_VIRTIO_PCI) += virtio_pci.o
> > -virtio_pci-y := virtio_pci_modern.o virtio_pci_common.o
> > -virtio_pci-$(CONFIG_VIRTIO_PCI_LEGACY) += virtio_pci_legacy.o
> >  obj-$(CONFIG_VIRTIO_BALLOON) += virtio_balloon.o
> >  obj-$(CONFIG_VIRTIO_INPUT) += virtio_input.o
> >  obj-$(CONFIG_VIRTIO_VDPA) += virtio_vdpa.o
> >  obj-$(CONFIG_VIRTIO_MEM) += virtio_mem.o
> >  obj-$(CONFIG_VIRTIO_DMA_SHARED_BUFFER) += virtio_dma_buf.o
> > +
> > +virtio_pci-$(CONFIG_VIRTIO_PCI) := virtio_pci_modern.o
> > virtio_pci_common.o
> > +virtio_pci-$(CONFIG_VIRTIO_PCI_LEGACY) += virtio_pci_legacy.o
> >
>
> Now I saw that CONFIG_PCI_IOV is not set in the error log so the bellow
> should fix it:
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 060af91bafcd..c519220e8ff8 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -2228,7 +2228,10 @@ static inline int pci_sriov_set_totalvfs(struct
> pci_dev *dev, u16 numvfs)
>   { return 0; }
>   static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)
>   { return 0; }
> -#define pci_sriov_configure_simple     NULL
> +static inline int pci_sriov_configure_simple(struct pci_dev *dev, int
> nr_virtfn)
> +{
> +       return -ENOSYS;
> +}
>   static inline resource_size_t pci_iov_resource_size(struct pci_dev
> *dev, int resno)
>   { return 0; }
>   static inline void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool
> probe) { }
>
> Bjorn,
>
> WDYT about the above ?
>
> should I send it to the pci subsystem list ?

Yes.  I don't apply things that haven't appeared on linux-pci@vger.kernel.org.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV
       [not found]         ` <63b02394-d932-a385-9267-515c71bb65ee@nvidia.com>
@ 2022-10-12 23:19           ` Michael S. Tsirkin
  0 siblings, 0 replies; 4+ messages in thread
From: Michael S. Tsirkin @ 2022-10-12 23:19 UTC (permalink / raw)
  To: Max Gurtovoy; +Cc: Bjorn Helgaas, linux-block, stefanha, virtualization

On Thu, Oct 13, 2022 at 02:01:04AM +0300, Max Gurtovoy wrote:
> 
> On 10/13/2022 12:20 AM, Bjorn Helgaas wrote:
> > On Wed, Oct 12, 2022 at 5:01 AM Max Gurtovoy <mgurtovoy@nvidia.com> wrote:
> > > 
> > > On 10/12/2022 11:42 AM, Max Gurtovoy wrote:
> > > > On 10/12/2022 8:02 AM, Michael S. Tsirkin wrote:
> > > > > On Thu, Sep 29, 2022 at 02:40:08AM +0300, Max Gurtovoy wrote:
> > > > > > This is instead of re-writing the same logic in virtio driver.
> > > > > > 
> > > > > > Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
> > > > > Dropped this as it caused build failures:
> > > > > 
> > > > > https://lore.kernel.org/r/202210080424.gSmuYfb0-lkp%40intel.com
> > > > maybe you can re-run it with:
> > > > 
> > > > diff --git a/drivers/virtio/Makefile b/drivers/virtio/Makefile
> > > > index 8e98d24917cc..b383326a20e2 100644
> > > > --- a/drivers/virtio/Makefile
> > > > +++ b/drivers/virtio/Makefile
> > > > @@ -5,10 +5,11 @@ obj-$(CONFIG_VIRTIO_PCI_LIB) += virtio_pci_modern_dev.o
> > > >   obj-$(CONFIG_VIRTIO_PCI_LIB_LEGACY) += virtio_pci_legacy_dev.o
> > > >   obj-$(CONFIG_VIRTIO_MMIO) += virtio_mmio.o
> > > >   obj-$(CONFIG_VIRTIO_PCI) += virtio_pci.o
> > > > -virtio_pci-y := virtio_pci_modern.o virtio_pci_common.o
> > > > -virtio_pci-$(CONFIG_VIRTIO_PCI_LEGACY) += virtio_pci_legacy.o
> > > >   obj-$(CONFIG_VIRTIO_BALLOON) += virtio_balloon.o
> > > >   obj-$(CONFIG_VIRTIO_INPUT) += virtio_input.o
> > > >   obj-$(CONFIG_VIRTIO_VDPA) += virtio_vdpa.o
> > > >   obj-$(CONFIG_VIRTIO_MEM) += virtio_mem.o
> > > >   obj-$(CONFIG_VIRTIO_DMA_SHARED_BUFFER) += virtio_dma_buf.o
> > > > +
> > > > +virtio_pci-$(CONFIG_VIRTIO_PCI) := virtio_pci_modern.o
> > > > virtio_pci_common.o
> > > > +virtio_pci-$(CONFIG_VIRTIO_PCI_LEGACY) += virtio_pci_legacy.o
> > > > 
> > > Now I saw that CONFIG_PCI_IOV is not set in the error log so the bellow
> > > should fix it:
> > > 
> > > diff --git a/include/linux/pci.h b/include/linux/pci.h
> > > index 060af91bafcd..c519220e8ff8 100644
> > > --- a/include/linux/pci.h
> > > +++ b/include/linux/pci.h
> > > @@ -2228,7 +2228,10 @@ static inline int pci_sriov_set_totalvfs(struct
> > > pci_dev *dev, u16 numvfs)
> > >    { return 0; }
> > >    static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)
> > >    { return 0; }
> > > -#define pci_sriov_configure_simple     NULL
> > > +static inline int pci_sriov_configure_simple(struct pci_dev *dev, int
> > > nr_virtfn)
> > > +{
> > > +       return -ENOSYS;
> > > +}
> > >    static inline resource_size_t pci_iov_resource_size(struct pci_dev
> > > *dev, int resno)
> > >    { return 0; }
> > >    static inline void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool
> > > probe) { }
> > > 
> > > Bjorn,
> > > 
> > > WDYT about the above ?
> > > 
> > > should I send it to the pci subsystem list ?
> > Yes.  I don't apply things that haven't appeared on linux-pci@vger.kernel.org.
> 
> Sure.
> 
> MST,
> 
> can you confirm the above fixes the build errors before I sent the v2 ?

Max, please just use the lkp test, it's not hard.

-- 
MST

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-10-12 23:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20220928234008.30302-1-mgurtovoy@nvidia.com>
2022-10-12  2:31 ` [PATCH 1/1] virtio_pci: use common helper to configure SR-IOV Jason Wang
2022-10-12  5:02 ` Michael S. Tsirkin
     [not found]   ` <642b7167-2c1f-c7df-a732-0603da92579a@nvidia.com>
     [not found]     ` <f0e8e8a5-74ce-e62f-78f2-afb63663345e@nvidia.com>
2022-10-12 21:20       ` Bjorn Helgaas via Virtualization
     [not found]         ` <63b02394-d932-a385-9267-515c71bb65ee@nvidia.com>
2022-10-12 23:19           ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).