From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <david.marchand@6wind.com>
Received: from mail-wm0-f44.google.com (mail-wm0-f44.google.com [74.125.82.44])
 by dpdk.org (Postfix) with ESMTP id 274AC11D4
 for <dev@dpdk.org>; Wed, 20 Apr 2016 13:44:23 +0200 (CEST)
Received: by mail-wm0-f44.google.com with SMTP id v188so199762710wme.1
 for <dev@dpdk.org>; Wed, 20 Apr 2016 04:44:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=o9WVesB01Gci0PaCy7EotzE8rrcHah5egSvJSrQROQw=;
 b=gLBLp7tKDnXxKbpcP7g159pqfosLHnEEszz+ams1METREVA+P9SP64Kv/7KFZLbcF2
 e76pt49n8/2yA724oPodHQ2ZhsNSzEMko/3l2YIAB/sH3izG7QoYxUcgsRWrSq7ew2pq
 K5PMXZGvZS/3nhON8skUvx9dUhEIP19foM7Km0cmwJirSsvYG3zDqMU9WRE2dqZ3UDR+
 Z8mebtE5x2dgF4byTgYCGfFrYl9jid02KlFj6qWsN43jlV6g+P3gFM0zukAvdoV7StEB
 Y1C6wOfm1jm4q3McvV2xePJNlxj24Nhgi8AJFNIS8CRaTh3lEsL7bDoeNk29v6VjmZRr
 7c9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=o9WVesB01Gci0PaCy7EotzE8rrcHah5egSvJSrQROQw=;
 b=Rel9LK9QUTt2TqjnYRJj2JpJgpHUwEDmIt2Y/EBD7rPGhKdz1J7OxI3Jq4zo+fGxc0
 B7wEPc0kWBDScj07CwgTYTPQxmqu9uzdfDBEvkSFU7/44Np7ii1bR6fLwFoWAqltq1N2
 EGh7KxC40SdGsiwTtQ7a04GhosRD6CumOAVd91A7026CXQ4u/U0u0tk+HtPLFI7La04O
 sveErxjza35osegNk5NsYT7PMR7S+vJBxnUIVuhmd7booACJ6LyQA+M3PbbYqYz5xG6F
 21u3PjGwPslGBAmopbyoVidS9pKo56XTQN9Tgp/Wh0DIs93ndCaUmZXNTyiHq9AJB44k
 aDqA==
X-Gm-Message-State: AOPr4FWe7e7M9M02AxXv1GSRDpc36+LQ/iXjKck75qbDBRuqilPfXriolV33YEcgYb4GbWsU
X-Received: by 10.194.48.33 with SMTP id i1mr9598114wjn.53.1461152662941;
 Wed, 20 Apr 2016 04:44:22 -0700 (PDT)
Received: from gloops.dev.6wind.com (144.77.126.78.rev.sfr.net.
 [78.126.77.144])
 by smtp.gmail.com with ESMTPSA id m6sm5195708wje.21.2016.04.20.04.44.21
 (version=TLSv1/SSLv3 cipher=OTHER);
 Wed, 20 Apr 2016 04:44:22 -0700 (PDT)
From: David Marchand <david.marchand@6wind.com>
To: dev@dpdk.org
Cc: thomas.monjalon@6wind.com,
	viktorin@rehivetech.com
Date: Wed, 20 Apr 2016 13:44:00 +0200
Message-Id: <1461152657-19969-1-git-send-email-david.marchand@6wind.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1454076516-21591-1-git-send-email-david.marchand@6wind.com>
References: <1454076516-21591-1-git-send-email-david.marchand@6wind.com>
Subject: [dpdk-dev] [PATCH v2 00/17] prepare for rte_device / rte_driver
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Apr 2016 11:44:23 -0000

Following discussions with Jan [1] and some cleanup I started on pci code,
here is a patchset that reworks pdev drivers registration and hotplug api.

The structures changes mentioned in [1] are still to be done, but at least,
I think we are one step closer to it.

Before this patchset, rte_driver .init semantics differed whether it
concerned a pdev or a vdev driver:
- for vdev, it actually meant that a devargs is given to the driver so
  that it creates ethdev / crypto objects, so it was a probing action
- for pdev, it only registered the driver triggering no ethdev / crypto
  objects

>>From my pov, eal hotplug api introduced in this patchset still needs more
work so that it does not need to know about devargs. So a new devargs api
is needed.

Changes since v1:
- rebased on HEAD, new drivers should be okay
- patches have been split into smaller pieces
- RTE_INIT macro has been added, but in the end, I am not sure it is useful
- device type has been removed from ethdev, as it was used only by hotplug
- getting rid of pmd type in eal patch (patch 5 of initial series) has been
  dropped for now, we can do this once vdev drivers have been converted

[1] http://dpdk.org/ml/archives/dev/2016-January/031390.html

Regards, 
-- 
David Marchand

David Marchand (17):
  pci: no need for dynamic tailq init
  crypto: no need for a crypto pmd type
  drivers: align pci driver definitions
  eal: remove duplicate function declaration
  eal: introduce init macros
  crypto: export init/uninit common wrappers for pci drivers
  ethdev: export init/uninit common wrappers for pci drivers
  drivers: convert all pdev drivers as pci drivers
  crypto: get rid of crypto driver register callback
  ethdev: get rid of eth driver register callback
  eal/linux: move back interrupt thread init before setting affinity
  pci: add a helper for device name
  pci: add a helper to update a device
  ethdev: do not scan all pci devices on attach
  eal: add hotplug operations for pci and vdev
  ethdev: convert to eal hotplug
  ethdev: get rid of device type

 app/test/virtual_pmd.c                          |   2 +-
 drivers/crypto/qat/rte_qat_cryptodev.c          |  18 +-
 drivers/net/af_packet/rte_eth_af_packet.c       |   2 +-
 drivers/net/bnx2x/bnx2x_ethdev.c                |  35 +--
 drivers/net/bonding/rte_eth_bond_api.c          |   2 +-
 drivers/net/cxgbe/cxgbe_ethdev.c                |  24 +-
 drivers/net/cxgbe/cxgbe_main.c                  |   2 +-
 drivers/net/e1000/em_ethdev.c                   |  16 +-
 drivers/net/e1000/igb_ethdev.c                  |  40 +--
 drivers/net/ena/ena_ethdev.c                    |  20 +-
 drivers/net/enic/enic_ethdev.c                  |  23 +-
 drivers/net/fm10k/fm10k_ethdev.c                |  23 +-
 drivers/net/i40e/i40e_ethdev.c                  |  26 +-
 drivers/net/i40e/i40e_ethdev_vf.c               |  25 +-
 drivers/net/ixgbe/ixgbe_ethdev.c                |  47 +---
 drivers/net/mlx4/mlx4.c                         |  22 +-
 drivers/net/mlx5/mlx5.c                         |  21 +-
 drivers/net/mpipe/mpipe_tilegx.c                |   2 +-
 drivers/net/nfp/nfp_net.c                       |  23 +-
 drivers/net/null/rte_eth_null.c                 |   2 +-
 drivers/net/pcap/rte_eth_pcap.c                 |   2 +-
 drivers/net/ring/rte_eth_ring.c                 |   2 +-
 drivers/net/szedata2/rte_eth_szedata2.c         |  25 +-
 drivers/net/vhost/rte_eth_vhost.c               |   2 +-
 drivers/net/virtio/virtio_ethdev.c              |  26 +-
 drivers/net/vmxnet3/vmxnet3_ethdev.c            |  23 +-
 drivers/net/xenvirt/rte_eth_xenvirt.c           |   2 +-
 examples/ip_pipeline/init.c                     |  22 --
 lib/librte_cryptodev/rte_cryptodev.c            |  67 +----
 lib/librte_cryptodev/rte_cryptodev.h            |   2 -
 lib/librte_cryptodev/rte_cryptodev_pmd.h        |  45 +---
 lib/librte_cryptodev/rte_cryptodev_version.map  |   9 +-
 lib/librte_eal/bsdapp/eal/eal_pci.c             |  52 +++-
 lib/librte_eal/bsdapp/eal/rte_eal_version.map   |   8 +
 lib/librte_eal/common/eal_common_dev.c          |  39 +++
 lib/librte_eal/common/eal_common_pci.c          |  17 +-
 lib/librte_eal/common/eal_private.h             |  20 +-
 lib/librte_eal/common/include/rte_dev.h         |  29 ++-
 lib/librte_eal/common/include/rte_eal.h         |   3 +
 lib/librte_eal/common/include/rte_pci.h         |  32 +++
 lib/librte_eal/common/include/rte_tailq.h       |   4 +-
 lib/librte_eal/linuxapp/eal/eal.c               |   7 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c           |  16 +-
 lib/librte_eal/linuxapp/eal/rte_eal_version.map |   8 +
 lib/librte_ether/rte_ethdev.c                   | 316 ++++--------------------
 lib/librte_ether/rte_ethdev.h                   |  40 ++-
 lib/librte_ether/rte_ether_version.map          |   9 +-
 47 files changed, 392 insertions(+), 810 deletions(-)

-- 
1.9.1