All of lore.kernel.org
 help / color / mirror / Atom feed
From: Declan Doherty <declan.doherty@intel.com>
To: Shreyansh Jain <shreyansh.jain@nxp.com>, dev@dpdk.org
Cc: hemant.agrawal@nxp.com
Subject: Re: [PATCH v9 00/25] Introducing rte_driver/rte_device generalization
Date: Fri, 9 Sep 2016 17:11:36 +0100	[thread overview]
Message-ID: <b4848128-09a8-3bd2-8e1d-c4788f195e91@intel.com> (raw)
In-Reply-To: <1473257297-7221-1-git-send-email-shreyansh.jain@nxp.com>

On 07/09/16 15:07, Shreyansh Jain wrote:
> Based on master (e22856313)
>
> Background:
> ===========
>
> It includes two different patch-sets floated on ML earlier:
>  * Original patch series is from David Marchand [1], [2].
>   `- This focused mainly on PCI (PDEV) part
>   `- v7 of this was posted by me [8] in August/2016
>  * Patch series [4] from Jan Viktorin
>   `- This focused on VDEV and rte_device integration
>
> Introduction:
> =============
>
> This patch series introduces a generic device model, moving away from PCI
> centric code layout. Key change is to introduce rte_driver/rte_device
> structures at the top level which are inherited by
> rte_XXX_driver/rte_XXX_device - where XXX belongs to {pci, vdev, soc (in
> future),...}.
>
> Key motivation for this series is to move away from PCI centric design of
> EAL to a more hierarchical device model - pivoted around a generic driver
> and device. Each specific driver and device can inherit the common
> properties of the generic set and build upon it through driver/device
> specific functions.
>
> Earlier, the EAL device initialization model was:
> (Refer: [3])
>
> --
>  Constructor:
>   |- PMD_DRIVER_REGISTER(rte_driver)
>      `-  insert into dev_driver_list, rte_driver object
>
>  rte_eal_init():
>   |- rte_eal_pci_init()
>   |  `- scan and fill pci_device_list from sysfs
>   |
>   |- rte_eal_dev_init()
>   |  `- For each rte_driver in dev_driver_list
>   |     `- call the rte_driver->init() function
>   |        |- PMDs designed to call rte_eth_driver_register(eth_driver)
>   |        |- eth_driver have rte_pci_driver embedded in them
>   |        `- rte_eth_driver_register installs the
>   |           rte_pci_driver->devinit/devuninit callbacks.
>   |
>   |- rte_eal_pci_probe()
>   |  |- For each device detected, dev_driver_list is parsed and matching is
>   |  |  done.
>   |  |- For each matching device, the rte_pci_driver->devinit() is called.
>   |  |- Default map is to rte_eth_dev_init() which in turn creates a
>   |  |  new ethernet device (eth_dev)
>   |  |  `- eth_drv->eth_dev_init() is called which is implemented by
>   `--|    individual PMD drivers.
>
> --
>
> The structure of driver looks something like:
>
>  +------------+     ._____.
>  | rte_driver <-----| PMD |___
>  |  .init     |     `-----`   \
>  +----.-------+      |         \
>       `-.            |         What PMD actually is
>          \           |          |
>           +----------v----+     |
>           | eth_driver    |     |
>           | .eth_dev_init |     |
>           +----.----------+     |
>                `-.              |
>                   \             |
>                    +------------v---+
>                    | rte_pci_driver |
>                    | .pci_devinit   |
>                    +----------------+
>
>   and all devices are part of a following linked lists:
>     - dev_driver_list for all rte_drivers
>     - pci_device_list for all devices, whether PCI or VDEV
>
>
> From the above:
>  * a PMD initializes a rte_driver, eth_driver even though actually it is a
>    pci_driver
>  * initialization routines are passed from rte_driver->pci_driver->eth_driver
>    even though they should ideally be rte_eal_init()->rte_pci_driver()
>  * For a single driver/device type model, this is not necessarily a
>    functional issue - but more of a design language.
>  * But, when number of driver/device type increase, this would create problem
>    in how driver<=>device links are represented.
>
> Proposed Architecture:
> ======================
>
> A nice representation has already been created by David in [3]. Copying that
> here:
>
>                 +------------------+ +-------------------------------+
>                 |                  | |                               |
>                 | rte_pci_device   | | rte_pci_driver                |
>                 |                  | |                               |
> +-------------+ | +--------------+ | | +---------------------------+ |
> |             | | |              | | | |                           | |
> | rte_eth_dev +---> rte_device   +-----> rte_driver                | |
> |             | | |  char name[] | | | |  char name[]              | |
> +-------------+ | |              | | | |  int init(rte_device *)   | |
>                 | +--------------+ | | |  int uninit(rte_device *) | |
>                 |                  | | |                           | |
>                 +------------------+ | +---------------------------+ |
>                                      |                               |
>                                      +-------------------------------+
>
> - for ethdev on top of vdev devices
>
>                 +------------------+ +-------------------------------+
>                 |                  | |                               |
>                 | drv specific     | | rte_vdev_driver               |
>                 |                  | |                               |
> +-------------+ | +--------------+ | | +---------------------------+ |
> |             | | |              | | | |                           | |
> | rte_eth_dev +---> rte_device   +-----> rte_driver                | |
> |             | | |  char name[] | | | |  char name[]              | |
> +-------------+ | |              | | | |  int init(rte_device *)   | |
>                 | +--------------+ | | |  int uninit(rte_device *) | |
>                 |                  | | |                           | |
>                 +------------------+ | +---------------------------+ |
>                                      |                               |
>                                      |   int priv_size               |
>                                      |                               |
>                                      +-------------------------------+
>
> Representing from above, it would be:
>
> +--------------+
> | rte_driver   |
> |  name        |
> |  <Future>    |
> +------^-------+      pci_driver_list
>        |                   /                vdev_driver_list
>        `---. <<Inherits>> /                  /
>            |\____________/_______           /
>            |            /        \         /
>            +-----------/-----+   +--------/---------+
>            | rte_pci_driver  |   | rte_vdev_driver  |
>            |  pci_devinit()  |   |  vdev_devinit()  |
>            |  pci_devuninit()|   |  vdev_devuninit()|
>            |  <more>         |   |  <more>          |
>            +-----------------+   +------------------+
>
>
> +--------------+
> | rte_device   |
> |  name        |
> |  <Future>    |
> +------^-------+        pci_device_list
>        |                   /               xxx_device_list
>        `---. <<Inherits>> /                  /
>            |\____________/________          /
>            |            /         \        /
>            +-----------/-----+   +--------/---------+
>            | rte_pci_device  |   | rte_xxx_device   |
>            |  <dev data>     |   |  <dev data>      |
>            |  <flags/intr>   |   |  <flags/intr>    |
>            |  <more>         |   |  <more>          |
>            +-----------------+   +------------------+
>
>  * Each driver type has its own structure which derives from the generic
>    rte_driver structure.
>    \- Each driver type maintains its own list, at the same time, rte_driver
>       list also exists - so that *all* drivers can be looped on, if required.
>  * Each device, associated with one or more drivers, has its own type
>    derived from rte_device
>    \- Each device _may_ maintain its own list (for example, in current
>       implementation, vdev is not maintaining it).
>
> ==Introducing a new device/driver type implies==
>   - creating their own rte_<xxx>.h file which contains the device/driver
>     definitions.
>   - defining the DRIVER_REGISTER_XXX helpers
>
> ==Hotplugging Support==
>   - devices should be able to support attach/detach operations.
>   - Earlier these functions were part of ethdev. They have been moved to eal
>     to be more generic.
>
>  This patch is part of larger aim to:
>
>  --------------------+ <is type of>
>  eth_driver (PMD)    |-------------> rte_driver
>  crypto_driver (PMD) |               ^
>  <more in future>    |               |
>  --------------------+               | <inherits>
>                                     /
>            +-----------------------/+
>            | rte_pci_driver         |
>            | rte_vdev_driver        |
>            | rte_soc_driver         |
>            | rte_xxx_driver         |
>
>  Where PMD devices (rte_eth_dev, rte_cryptodev_dev) are connected to their
>  drivers rather than explicitly inheriting type specific driver (PCI, etc).
>
>

....

>
> Notes:
> ======
>
> * Some sign-off were already provided by Jan on the original v5; But, as a
>   large number of merges have been made, I am leaving those out just in case
>   it is not sync with initial understanding.
>
> * This might not be in-sync with pmdinfogen as PMD_REGISTER_DRIVER is
>   removed [7].
>
> Future Work/Pending:
> ===================
>  - Presently eth_driver, rte_eth_dev are not aligned to the rte_driver/
>    rte_device model. eth_driver still is a PCI specific entity. This
>    has been highlighted by comments from Ferruh in [9].
>  - cryptodev driver too still remains to be normalized over the rte_driver
>    model
>  - Some variables, like drv_name (as highlighted by Ferruh), are getting
>    duplicated across rte_xxx_driver/device and rte_driver/device.
>

  ....

>

Hey Shreyansh,

I got some time over the last couple of days to got through this 
patchset and your soc changes, and it's really a great clean up of the 
driver and device infrastructure code.

I guess I'm coming to this party a bit late but I have some thoughts on 
the the object model that you've outlined it improves things a huge 
amount but I wonder does it go far enough.

I think that currently the coupling of the rte_driver to instances of 
rte_pci_driver, rte_vdev_driver etc still really clouds the abstraction. 
I think if we introduced a rte_bus and rte_bus_data abstractions with 
all rte_drivers having a rte_bus instance then we could further simplify 
the driver and device management, I think this would greatly reduce the 
number of driver/device APIs in the EAL as I think most bus 
functionality could be abstracted into a simpler API. This would also 
make it possible to create new driver and device types and allowing them 
to be plug-able components into DPDK and which I don't think would work 
currently even  with the changes included here.

http://imgur.com/a/3b7XM

The link above is to a png of a visio which outlines the object model 
that I'm thinking of. The main extension from your current patchset 
would be that rte_eth_driver and rte_crypto_driver would now always be 
inheriting from rte_driver and not rte_soc_driver/rte_pci_driver, etv 
but the rte_driver object would have rte_bus instance which could be of 
type rte_bus_pci/ rte_bus_virtual/ rte_bus_soc etc.  This I think would 
allow the EAL to be written in such a way that it only every operates on 
the base object types rte_device/rte_driver directly never the 
derivative objects, like the rte_vdev_driver, rte_pci_driver. Also I 
prefer the abstraction that a driver has a bus rather than it is the 
bus. Also I think would be the devices layer to written driver/bus 
agnostic, so the eth_dev layer shouldn't know if and underlying PMD is 
PCI/memory based or virtual. Only the poll mode driver itself, and the 
part of the EAL which manages driver initialization should have 
knowledge of the drivers bus type.

Anyway have a look, and let me know what you think.

Thanks
Declan

  parent reply	other threads:[~2016-09-09 16:14 UTC|newest]

Thread overview: 375+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-29 14:08 [PATCH 0/9] prepare for rte_device / rte_driver David Marchand
2016-01-29 14:08 ` [PATCH 1/9] pci: no need for dynamic tailq init David Marchand
2016-02-08 10:32   ` viktorin
2016-01-29 14:08 ` [PATCH 2/9] pci: register all pdev as pci drivers David Marchand
2016-02-08 11:03   ` Jan Viktorin
2016-02-09  8:55     ` David Marchand
2016-01-29 14:08 ` [PATCH 3/9] drivers: no more pdev drivers David Marchand
2016-02-09 17:05   ` Jan Viktorin
2016-02-10  8:51     ` David Marchand
2016-02-10  9:27       ` David Marchand
2016-02-10 10:20         ` Jan Viktorin
2016-02-10 11:38           ` David Marchand
2016-02-10 12:29             ` Jan Viktorin
2016-01-29 14:08 ` [PATCH 4/9] eal/linux: move back interrupt thread init before setting affinity David Marchand
2016-02-02  7:02   ` Rahul Lakkireddy
2016-02-02  7:13     ` David Marchand
2016-02-02  7:43       ` Rahul Lakkireddy
2016-01-29 14:08 ` [PATCH 5/9] eal: get rid of pmd type David Marchand
2016-02-09 17:15   ` Jan Viktorin
2016-01-29 14:08 ` [PATCH 6/9] eal: initialize vdevs right next to pci devices David Marchand
2016-02-10 11:05   ` Jan Viktorin
2016-02-10 11:43     ` David Marchand
2016-01-29 14:08 ` [PATCH 7/9] pci: add a helper for device name David Marchand
2016-02-10 11:10   ` Jan Viktorin
2016-02-10 12:04     ` David Marchand
2016-01-29 14:08 ` [PATCH 8/9] pci: add a helper to refresh a device David Marchand
2016-02-10 11:23   ` Jan Viktorin
2016-02-10 12:00     ` David Marchand
2016-02-10 12:20       ` Jan Viktorin
2016-01-29 14:08 ` [PATCH 9/9] eal: relocate hotplug code from ethdev David Marchand
2016-04-20 11:44 ` [PATCH v2 00/17] prepare for rte_device / rte_driver David Marchand
2016-04-20 11:44   ` [PATCH v2 01/17] pci: no need for dynamic tailq init David Marchand
2016-04-20 11:44   ` [PATCH v2 02/17] crypto: no need for a crypto pmd type David Marchand
2016-04-20 11:44   ` [PATCH v2 03/17] drivers: align pci driver definitions David Marchand
2016-04-20 11:44   ` [PATCH v2 04/17] eal: remove duplicate function declaration David Marchand
2016-04-20 11:44   ` [PATCH v2 05/17] eal: introduce init macros David Marchand
2016-04-20 12:33     ` Jan Viktorin
2016-04-20 11:44   ` [PATCH v2 06/17] crypto: export init/uninit common wrappers for pci drivers David Marchand
2016-04-20 11:44   ` [PATCH v2 07/17] ethdev: " David Marchand
2016-04-20 11:44   ` [PATCH v2 08/17] drivers: convert all pdev drivers as " David Marchand
2016-04-20 11:44   ` [PATCH v2 09/17] crypto: get rid of crypto driver register callback David Marchand
2016-04-20 11:44   ` [PATCH v2 10/17] ethdev: get rid of eth " David Marchand
2016-04-20 11:44   ` [PATCH v2 11/17] eal/linux: move back interrupt thread init before setting affinity David Marchand
2016-04-20 11:44   ` [PATCH v2 12/17] pci: add a helper for device name David Marchand
2016-05-04 15:25     ` Bruce Richardson
2016-05-04 16:26       ` Thomas Monjalon
2016-05-04 16:36         ` Bruce Richardson
2016-04-20 11:44   ` [PATCH v2 13/17] pci: add a helper to update a device David Marchand
2016-04-20 11:44   ` [PATCH v2 14/17] ethdev: do not scan all pci devices on attach David Marchand
2016-04-20 11:44   ` [PATCH v2 15/17] eal: add hotplug operations for pci and vdev David Marchand
2016-05-27 10:39     ` Iremonger, Bernard
2016-04-20 11:44   ` [PATCH v2 16/17] ethdev: convert to eal hotplug David Marchand
2016-04-20 11:44   ` [PATCH v2 17/17] ethdev: get rid of device type David Marchand
2016-04-20 12:05   ` [PATCH v2 00/17] prepare for rte_device / rte_driver Bruce Richardson
2016-04-20 12:41     ` Jan Viktorin
2016-04-22 10:18       ` Jan Viktorin
2016-05-06  9:26       ` Declan Doherty
2016-05-06 11:46         ` Jan Viktorin
2016-05-27 10:23   ` Iremonger, Bernard
2016-06-16  6:32     ` Shreyansh Jain
2016-06-16  7:34       ` Thomas Monjalon
2016-06-16  8:23         ` Jan Viktorin
2016-06-16  9:19           ` Thomas Monjalon
2016-06-16 10:45             ` Jan Viktorin
2016-06-16  8:42         ` Shreyansh Jain
2016-06-16 10:48           ` Jan Viktorin
2016-06-16 14:06 ` [PATCH v3 " Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 01/17] pci: no need for dynamic tailq init Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 02/17] crypto: no need for a crypto pmd type Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 03/17] drivers: align pci driver definitions Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 04/17] eal: remove duplicate function declaration Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 05/17] eal: introduce init macros Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 06/17] crypto: export init/uninit common wrappers for pci drivers Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 07/17] ethdev: " Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 08/17] drivers: convert all pdev drivers as " Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 09/17] crypto: get rid of crypto driver register callback Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 10/17] ethdev: get rid of eth " Shreyansh Jain
2016-06-20  6:16     ` Shreyansh jain
2016-06-16 14:06   ` [PATCH v3 11/17] eal/linux: move back interrupt thread init before setting affinity Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 12/17] pci: add a helper for device name Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 13/17] pci: add a helper to update a device Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 14/17] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 15/17] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 16/17] ethdev: convert to eal hotplug Shreyansh Jain
2016-06-16 14:06   ` [PATCH v3 17/17] ethdev: get rid of device type Shreyansh Jain
2016-06-21 12:02 ` [PATCH v4 00/17] prepare for rte_device / rte_driver Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 01/17] pci: no need for dynamic tailq init Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 02/17] crypto: no need for a crypto pmd type Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 03/17] drivers: align pci driver definitions Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 04/17] eal: remove duplicate function declaration Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 05/17] eal: introduce init macros Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 06/17] crypto: export init/uninit common wrappers for pci drivers Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 07/17] ethdev: " Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 08/17] drivers: convert all pdev drivers as " Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 09/17] crypto: get rid of crypto driver register callback Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 10/17] ethdev: get rid of eth " Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 11/17] eal/linux: move back interrupt thread init before setting affinity Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 12/17] pci: add a helper for device name Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 13/17] pci: add a helper to update a device Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 14/17] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 15/17] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 16/17] ethdev: convert to eal hotplug Shreyansh Jain
2016-06-21 12:02   ` [PATCH v4 17/17] ethdev: get rid of device type Shreyansh Jain
2016-06-21 12:31   ` [PATCH v4 00/17] prepare for rte_device / rte_driver Shreyansh jain
2016-06-22  9:06   ` [PATCH v5 00/17] Prepare " Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 01/17] pci: no need for dynamic tailq init Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 02/17] crypto: no need for a crypto pmd type Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 03/17] drivers: align pci driver definitions Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 04/17] eal: remove duplicate function declaration Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 05/17] eal: introduce init macros Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 06/17] crypto: export init/uninit common wrappers for pci drivers Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 07/17] ethdev: " Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 08/17] drivers: convert all pdev drivers as " Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 09/17] crypto: get rid of crypto driver register callback Shreyansh Jain
2016-06-22 13:27       ` Neil Horman
2016-06-22 13:43         ` Shreyansh jain
2016-06-22 13:44         ` Thomas Monjalon
2016-06-22  9:06     ` [PATCH v5 10/17] ethdev: get rid of eth " Shreyansh Jain
2016-06-22 13:28       ` Neil Horman
2016-06-22 13:44         ` Shreyansh jain
2016-06-22  9:06     ` [PATCH v5 11/17] eal/linux: move back interrupt thread init before setting affinity Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 12/17] pci: add a helper for device name Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 13/17] pci: add a helper to update a device Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 14/17] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 15/17] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 16/17] ethdev: convert to eal hotplug Shreyansh Jain
2016-06-22  9:06     ` [PATCH v5 17/17] ethdev: get rid of device type Shreyansh Jain
2016-07-12  6:01   ` [PATCH v6 00/17] Prepare for rte_device / rte_driver Shreyansh Jain
2016-07-12  6:01     ` [PATCH v6 01/17] pci: no need for dynamic tailq init Shreyansh Jain
2016-07-14 17:11       ` viktorin
2016-07-12  6:01     ` [PATCH v6 02/17] crypto: no need for a crypto pmd type Shreyansh Jain
2016-07-14 17:14       ` viktorin
2016-07-12  6:01     ` [PATCH v6 03/17] drivers: align pci driver definitions Shreyansh Jain
2016-07-14 17:12       ` viktorin
2016-07-12  6:01     ` [PATCH v6 04/17] eal: remove duplicate function declaration Shreyansh Jain
2016-07-14 17:13       ` viktorin
2016-07-12  6:01     ` [PATCH v6 05/17] eal: introduce init macros Shreyansh Jain
2016-07-13  9:20       ` Jan Viktorin
2016-07-13 17:34         ` Jan Viktorin
2016-07-14  5:27           ` Shreyansh jain
2016-07-14 15:57             ` Jan Viktorin
2016-07-15 10:48               ` Shreyansh jain
2016-07-15 12:38                 ` Thomas Monjalon
2016-07-28  9:36                 ` Shreyansh Jain
2016-07-30  8:14                   ` Jan Viktorin
2016-08-01 11:00                     ` Shreyansh Jain
2016-07-12  6:01     ` [PATCH v6 06/17] crypto: export init/uninit common wrappers for pci drivers Shreyansh Jain
2016-07-14 17:06       ` viktorin
2016-07-12  6:01     ` [PATCH v6 07/17] ethdev: " Shreyansh Jain
2016-07-14 17:06       ` viktorin
2016-07-12  6:01     ` [PATCH v6 08/17] drivers: convert all pdev drivers as " Shreyansh Jain
2016-07-12  6:01     ` [PATCH v6 09/17] crypto: get rid of crypto driver register callback Shreyansh Jain
2016-07-14 17:10       ` viktorin
2016-07-12  6:01     ` [PATCH v6 10/17] ethdev: get rid of eth " Shreyansh Jain
2016-07-14 17:09       ` viktorin
2016-07-12  6:01     ` [PATCH v6 11/17] eal/linux: move back interrupt thread init before setting affinity Shreyansh Jain
2016-07-14 17:09       ` viktorin
2016-07-12  6:01     ` [PATCH v6 12/17] pci: add a helper for device name Shreyansh Jain
2016-07-14 16:55       ` Jan Viktorin
2016-07-15  9:39         ` Shreyansh jain
2016-07-15  9:56           ` Thomas Monjalon
2016-07-15 11:32             ` Jan Viktorin
2016-07-15  9:56           ` Jan Viktorin
2016-07-15 13:14           ` Shreyansh Jain
2016-07-12  6:01     ` [PATCH v6 13/17] pci: add a helper to update a device Shreyansh Jain
2016-07-14 17:01       ` Jan Viktorin
2016-07-15  9:44         ` Shreyansh jain
2016-07-12  6:01     ` [PATCH v6 14/17] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-07-12  6:01     ` [PATCH v6 15/17] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-07-14 16:50       ` Jan Viktorin
2016-07-15  9:52         ` Shreyansh jain
2016-07-12  6:01     ` [PATCH v6 16/17] ethdev: convert to eal hotplug Shreyansh Jain
2016-07-14 16:51       ` Jan Viktorin
2016-07-15 10:36         ` Shreyansh jain
2016-07-15 11:27           ` Jan Viktorin
2016-07-12  6:01     ` [PATCH v6 17/17] ethdev: get rid of device type Shreyansh Jain
2016-07-14 16:33       ` Jan Viktorin
2016-08-01 10:45   ` [PATCH v7 00/17] Prepare for rte_device / rte_driver Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 01/17] pci: no need for dynamic tailq init Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 02/17] crypto: no need for a crypto pmd type Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 03/17] drivers: align pci driver definitions Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 04/17] eal: remove duplicate function declaration Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 05/17] eal: introduce init macros Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 06/17] crypto: export init/uninit common wrappers for pci drivers Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 07/17] ethdev: " Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 08/17] drivers: convert all pdev drivers as " Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 09/17] crypto: get rid of crypto driver register callback Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 10/17] ethdev: get rid of eth " Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 11/17] eal/linux: move back interrupt thread init before setting affinity Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 12/17] pci: add a helper for device name Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 13/17] pci: add a helper to update a device Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 14/17] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 15/17] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 16/17] ethdev: convert to eal hotplug Shreyansh Jain
2016-08-01 10:45     ` [PATCH v7 17/17] ethdev: get rid of device type Shreyansh Jain
2016-08-01 15:43     ` [PATCH v7 00/17] Prepare for rte_device / rte_driver Jan Viktorin
2016-08-26 13:56   ` [PATCH v8 00/25] Introducing rte_driver/rte_device generalization Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 01/25] eal: define macro container_of Shreyansh Jain
2016-08-29 16:43       ` Ferruh Yigit
2016-08-30  4:27         ` Shreyansh Jain
2016-08-30 10:30           ` Thomas Monjalon
2016-08-30 11:59             ` Shreyansh Jain
2016-08-30 13:42               ` Thomas Monjalon
2016-08-31  4:26                 ` Shreyansh Jain
2016-08-30  4:31         ` Shreyansh Jain
2016-09-08  5:45         ` Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 02/25] eal: remove duplicate function declaration Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 03/25] pci: no need for dynamic tailq init Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 04/25] crypto: no need for a crypto pmd type Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 05/25] drivers: align pci driver definitions Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 06/25] eal: introduce init macros Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 07/25] driver: init/uninit common wrappers for PCI drivers Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 08/25] drivers: convert all pdev drivers as pci drivers Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 09/25] driver: Remove driver register callbacks for crypto/net Shreyansh Jain
2016-08-29 17:20       ` Ferruh Yigit
2016-08-30  4:36         ` Shreyansh Jain
2016-09-08  5:46         ` Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 10/25] eal/pci: Helpers for device name parsing/update Shreyansh Jain
2016-08-30 16:34       ` Pattan, Reshma
2016-08-31  4:24         ` Shreyansh Jain
2016-09-08  5:48         ` Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 11/25] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 12/25] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 13/25] ethdev: convert to eal hotplug Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 14/25] ethdev: get rid of device type Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 15/25] eal: extract vdev infra Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 16/25] eal: Remove PDEV/VDEV unused code Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 17/25] drivers: convert PMD_VDEV drivers to use rte_vdev_driver Shreyansh Jain
2016-08-29 16:57       ` Ferruh Yigit
2016-08-30  4:38         ` Shreyansh Jain
2016-09-08  5:49         ` Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 18/25] eal: move init/uninit to rte_vdev_driver Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 19/25] eal: remove PMD_DRIVER_REGISTER and unused pmd_types Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 20/25] eal: rte_pci.h includes rte_dev.h Shreyansh Jain
2016-08-26 13:56     ` [PATCH v8 21/25] eal: rename and move rte_pci_resource Shreyansh Jain
2016-08-26 13:57     ` [PATCH v8 22/25] eal/pci: inherit rte_driver by rte_pci_driver Shreyansh Jain
2016-08-29 16:49       ` Ferruh Yigit
2016-08-30  4:59         ` Shreyansh Jain
2016-09-08  5:51         ` Shreyansh Jain
2016-08-30 15:47       ` Ferruh Yigit
2016-09-01 13:54         ` Shreyansh Jain
2016-08-26 13:57     ` [PATCH v8 23/25] eal: call rte_eal_driver_register Shreyansh Jain
2016-08-26 13:57     ` [PATCH v8 24/25] eal: introduce rte_device Shreyansh Jain
2016-08-26 13:57     ` [PATCH v8 25/25] eal/pci: Create rte_device list and fallback on its members Shreyansh Jain
2016-08-29 16:53       ` Ferruh Yigit
2016-08-30  4:38         ` Shreyansh Jain
2016-09-08  5:55         ` Shreyansh Jain
2016-09-08  8:33           ` Ferruh Yigit
2016-08-30 13:27     ` [PATCH v8 00/25] Introducing rte_driver/rte_device generalization Ferruh Yigit
2016-09-01 12:36       ` Shreyansh Jain
2016-09-08  7:03         ` Shreyansh Jain
2016-09-01 18:29     ` Jan Viktorin
2016-09-02  5:32       ` Shreyansh Jain
2016-09-07 14:07   ` [PATCH v9 " Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 01/25] eal: define macro container_of Shreyansh Jain
2016-09-08 14:16       ` Ferruh Yigit
2016-09-09  4:19         ` Shreyansh Jain
2016-09-09  8:55           ` Adrien Mazarguil
2016-09-09 10:44             ` Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 02/25] eal: remove duplicate function declaration Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 03/25] pci: no need for dynamic tailq init Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 04/25] crypto: no need for a crypto pmd type Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 05/25] drivers: align pci driver definitions Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 06/25] eal: introduce init macros Shreyansh Jain
2016-09-12  7:15       ` David Marchand
2016-09-15  7:28         ` Shreyansh Jain
2016-09-07 14:07     ` [PATCH v9 07/25] driver: init/uninit common wrappers for PCI drivers Shreyansh Jain
2016-09-12  7:16       ` David Marchand
2016-09-12  9:55         ` Thomas Monjalon
2016-09-07 14:08     ` [PATCH v9 08/25] drivers: convert all pdev drivers as pci drivers Shreyansh Jain
2016-09-12  7:16       ` David Marchand
2016-09-16  4:49         ` Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 09/25] driver: Remove driver register callbacks for crypto/net Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 10/25] eal/pci: Helpers for device name parsing/update Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 11/25] ethdev: do not scan all pci devices on attach Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 12/25] eal: add hotplug operations for pci and vdev Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 13/25] ethdev: convert to eal hotplug Shreyansh Jain
2016-09-12  7:16       ` David Marchand
2016-09-15  7:29         ` Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 14/25] ethdev: get rid of device type Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 15/25] eal: extract vdev infra Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 16/25] eal: Remove PDEV/VDEV unused code Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 17/25] drivers: convert PMD_VDEV drivers to use rte_vdev_driver Shreyansh Jain
2016-09-11 11:55       ` Yuanhan Liu
2016-09-12  4:39         ` Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 18/25] eal: move init/uninit to rte_vdev_driver Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 19/25] eal: remove PMD_DRIVER_REGISTER and unused pmd_types Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 20/25] eal: rte_pci.h includes rte_dev.h Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 21/25] eal: rename and move rte_pci_resource Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 22/25] eal/pci: inherit rte_driver by rte_pci_driver Shreyansh Jain
2016-09-08 14:25       ` Ferruh Yigit
2016-09-16  4:47         ` Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 23/25] eal: call rte_eal_driver_register Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 24/25] eal: introduce rte_device Shreyansh Jain
2016-09-07 14:08     ` [PATCH v9 25/25] eal/pci: Create rte_device list and fallback on its members Shreyansh Jain
2016-09-07 18:40     ` [PATCH v9 00/25] Introducing rte_driver/rte_device generalization Stephen Hemminger
2016-09-08  7:10       ` Shreyansh Jain
2016-09-08 16:49         ` Stephen Hemminger
2016-09-09 11:42           ` Shreyansh Jain
2016-09-09 16:11     ` Declan Doherty [this message]
2016-09-13 11:15       ` Shreyansh Jain
2016-09-12  7:32     ` David Marchand
2016-09-16  4:29   ` [PATCH v10 " Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 01/25] eal: define container macro Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 02/25] eal: remove duplicate function declaration Shreyansh Jain
2016-09-16 11:42       ` Jan Viktorin
2016-09-16  4:29     ` [PATCH v10 03/25] pci: no need for dynamic tailq init Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 04/25] eal/pci: replace PCI devinit/devuninit with probe/remove Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 05/25] crypto: no need for a crypto pmd type Shreyansh Jain
2016-09-16 11:49       ` Jan Viktorin
2016-09-16  4:29     ` [PATCH v10 06/25] drivers: align PCI driver definitions Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 07/25] eal: introduce PCI device init macros Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 08/25] driver: init/uninit common wrappers for PCI drivers Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 09/25] drivers: convert all phy drivers as " Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 10/25] drivers: remove driver register callbacks for crypto/net Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 11/25] eal/pci: helpers for device name parsing/update Shreyansh Jain
2016-10-25 15:49       ` Pattan, Reshma
2016-10-26  6:23         ` Shreyansh Jain
2016-10-26  9:12           ` Pattan, Reshma
2016-09-16  4:29     ` [PATCH v10 12/25] ethdev: do not scan all PCI devices on attach Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 13/25] eal: add hotplug operations for PCI and VDEV Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 14/25] ethdev: convert to EAL hotplug Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 15/25] ethdev: get rid of device type Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 16/25] eal: extract vdev infra Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 17/25] eal: remove PDEV/VDEV unused code Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 18/25] drivers: convert VDRV to use RTE VDEV Driver Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 19/25] eal: remove unused PMD types Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 20/25] eal: include dev headers in place of PCI headers Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 21/25] eal: rename and move RTE PCI Resources Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 22/25] eal/pci: inherit RTE driver in PCI driver Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 23/25] eal: register EAL drivers explicitly Shreyansh Jain
2016-09-16  4:29     ` [PATCH v10 24/25] eal: introduce generalized RTE device Shreyansh Jain
2016-09-16  4:30     ` [PATCH v10 25/25] eal/pci: create RTE device list and fallback on its members Shreyansh Jain
     [not found]     ` <CALwxeUusnzO9daPnHkkf5QhY6_g67f-9oDzKcrhzXj7X3Lm_kQ@mail.gmail.com>
2016-09-16 14:29       ` [PATCH v10 00/25] Introducing rte_driver/rte_device generalization David Marchand
2016-09-17 18:50       ` Shreyansh Jain
2016-09-20 12:41   ` [PATCH v11 00/24] " Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 01/24] eal: remove duplicate function declaration Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 02/24] pci: no need for dynamic tailq init Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 03/24] eal/pci: replace PCI devinit/devuninit with probe/remove Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 04/24] crypto: no need for a crypto pmd type Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 05/24] drivers: align PCI driver definitions Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 06/24] eal: introduce PCI device init macros Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 07/24] driver: probe/remove common wrappers for PCI drivers Shreyansh Jain
2016-10-03 14:21       ` Thomas Monjalon
2016-10-04  6:16         ` Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 08/24] drivers: convert all phy drivers as " Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 09/24] drivers: remove driver register callbacks for crypto/net Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 10/24] eal/pci: helpers for device name parsing/update Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 11/24] ethdev: do not scan all PCI devices on attach Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 12/24] eal: add hotplug operations for PCI and VDEV Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 13/24] ethdev: convert to EAL hotplug Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 14/24] ethdev: get rid of device type Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 15/24] eal: extract vdev infra Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 16/24] eal: remove PDEV/VDEV unused code Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 17/24] drivers: convert VDRV to use RTE VDEV Driver Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 18/24] eal: remove unused PMD types Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 19/24] eal: include dev headers in place of PCI headers Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 20/24] eal: rename and move RTE PCI Resources Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 21/24] eal/pci: inherit RTE driver in PCI driver Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 22/24] eal: register EAL drivers explicitly Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 23/24] eal: introduce generalized RTE device Shreyansh Jain
2016-09-20 12:41     ` [PATCH v11 24/24] eal/pci: create RTE device list and fallback on its members Shreyansh Jain
2016-09-21 19:03     ` [PATCH v11 00/24] Introducing rte_driver/rte_device generalization Matej Vido
2016-09-22  4:25       ` Shreyansh Jain
2016-09-30 10:22     ` David Marchand
2016-10-03 14:28     ` Thomas Monjalon
2016-10-04  6:51       ` Shreyansh Jain
2016-10-04  7:42         ` Thomas Monjalon
2016-10-05 11:57           ` Shreyansh Jain
2016-10-17 13:43             ` Ferruh Yigit
2016-10-17 17:29               ` Shreyansh Jain
2016-10-18  9:23                 ` Ferruh Yigit
2016-10-19 11:13                   ` Shreyansh Jain
2016-10-18 13:04               ` Neil Horman
2016-10-18 13:47                 ` Thomas Monjalon

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=b4848128-09a8-3bd2-8e1d-c4788f195e91@intel.com \
    --to=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=shreyansh.jain@nxp.com \
    /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.