From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@6wind.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v6 00/28] remove pci driver from vdevs
Date: Fri, 30 Oct 2015 14:00:11 +0000 [thread overview]
Message-ID: <20151030140011.GB10248@bricha3-MOBL3> (raw)
In-Reply-To: <CALwxeUsXoMKtKOh7ZofRpj6veKNKqF_o5Kh=OnL9D22Nn7tnfQ@mail.gmail.com>
On Fri, Oct 30, 2015 at 02:32:35PM +0100, David Marchand wrote:
> Hello Bernard,
>
> On Thu, Oct 29, 2015 at 7:36 PM, Bernard Iremonger <
> bernard.iremonger@intel.com> wrote:
>
> > There is a dummy pci driver in the vdev PMD's at present.
> > This patch set removes the pci driver from the vdev PMD's.
> > Changes have been made to librte_ether to handle vdevs and pdevs in the
> > same way.
> >
> > [snip]
> >
> > Bernard Iremonger (28):
> > librte_eal: add RTE_KDRV_NONE for vdevs
> > librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
> > librte_ether: add function rte_eth_copy_dev_info
> > ixgbe: copy pci device info to eth_dev data
> > e1000: copy pci device info to eth_dev data
> > i40e: copy pci device info to eth_dev data
> > fm10k: copy pci device info to eth_dev data
> > bnx2x: copy pci device info to eth_dev data
> > cxgbe: copy pci device info to eth_dev data
> > enic: copy pci device info to eth_dev data
> > mlx4: copy pci device info to eth_dev data
> > virtio: copy pci device info to eth_dev data
> > vmxnet3: copy pci device info to eth_dev data
> > null: copy device info to eth_dev data
> > ring: copy device info to eth_dev data
> > pcap: copy device info to eth_dev data
> > af_packet: copy device info to eth_dev data
> > xenvirt: copy device info to eth_dev data
> > mpipe: copy device info to eth_dev data
> > bonding: copy device info to eth_dev data
> > librte_ether: remove branches on pci_dev
> > null: remove pci device
> > ring: remove pci device
> > pcap: remove pci device
> > af_packet: remove pci device
> > xenvirt: remove pci device
> > mpipe: remove pci device
> > bonding: remove pci device
> >
>
> We end up with kdrv none, while for virtual devices, I can't see a case
> where we would need it.
>
> And these flags end up in ethdev :
> +/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */
> +#define RTE_ETH_DEV_DRV_NEED_MAPPING RTE_PCI_DRV_NEED_MAPPING
> +/** Device needs to be unbound even if no module is provided */
> +#define RTE_ETH_DEV_DRV_FORCE_UNBIND RTE_PCI_DRV_FORCE_UNBIND
> +/** Device supports link state interrupt */
> +#define RTE_ETH_DEV_INTR_LSC RTE_PCI_DRV_INTR_LSC
> +/** Device supports detaching capability */
> +#define RTE_ETH_DEV_DETACHABLE RTE_PCI_DRV_DETACHABLE
>
> I can't see the point of all this, you are just moving pci specific fields
> to ethdev and I don't see how it would ease future cleanups or
> introductions of other bus types.
>
> A real cleanup would be something like what Neil already proposed before.
>
Hi David,
this is perhaps not a full solution to enable other device types, but it's
certainly a step along the way. The primary goals were to:
* remove all references to the pci_dev structure from ethdev, so that no checks
need to be explicitly made for the underlying device type. In this, I believe
it largely succeeds, as the flags above are checked for each device directly,
and a number of them are completely generic across device types, e.g. whether
it supports a link state interrupt or is hotpluggable. The others may be of use
to other device types too, just without any non-pci devices to look at as
reference in DPDK, it's hard to know for sure.
* Remove the need to have a pci_dev structure within each vdev, and again this
set does that cleanup, simplifying all the vdevs.
I'm sure there is more work to do be done to get more and different device support
in there, but this patch has been through 6 revisions and multiple reviews and I
believe is worthwhile including in 2.2 for the reasons stated above.
Regards,
/Bruce
next prev parent reply other threads:[~2015-10-30 14:00 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <PATCH v6>
2015-10-29 18:36 ` Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 01/28] librte_eal: add RTE_KDRV_NONE for vdevs Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 03/28] librte_ether: add function rte_eth_copy_dev_info Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 04/28] ixgbe: copy pci device info to eth_dev data Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 05/28] e1000: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 06/28] i40e: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 07/28] fm10k: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 08/28] bnx2x: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 09/28] cxgbe: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 10/28] enic: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 11/28] mlx4: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 12/28] virtio: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 13/28] vmxnet3: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 14/28] null: copy " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 15/28] ring: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 16/28] pcap: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 17/28] af_packet: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 18/28] xenvirt: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 19/28] mpipe: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 20/28] bonding: " Bernard Iremonger
2015-10-30 13:12 ` Kulasek, TomaszX
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 21/28] librte_ether: remove branches on pci_dev Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 22/28] null: remove pci device Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 23/28] ring: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 24/28] pcap: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 25/28] af_packet: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 26/28] xenvirt: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 27/28] mpipe: " Bernard Iremonger
2015-10-29 18:36 ` [dpdk-dev] [PATCH v6 28/28] bonding: " Bernard Iremonger
2015-10-30 13:04 ` Kulasek, TomaszX
2015-10-30 13:32 ` [dpdk-dev] [PATCH v6 00/28] remove pci driver from vdevs David Marchand
2015-10-30 14:00 ` Bruce Richardson [this message]
2015-10-30 14:33 ` Qiu, Michael
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=20151030140011.GB10248@bricha3-MOBL3 \
--to=bruce.richardson@intel.com \
--cc=david.marchand@6wind.com \
--cc=dev@dpdk.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 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).