DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [RFC PATCH 00/17] Single virtio implementation
@ 2014-12-08  6:21 Ouyang Changchun
  2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 01/17] virtio: Rearrange resource initialization Ouyang Changchun
                   ` (17 more replies)
  0 siblings, 18 replies; 30+ messages in thread
From: Ouyang Changchun @ 2014-12-08  6:21 UTC (permalink / raw)
  To: dev

This is RFC patch for single virtio implementation.
 
Why we need single virtio?
============================
As we know currently there are at least 3 virtio PMD driver implementations:
A) lib/librte_pmd_virtio(refer as virtio A);
B) virtio_net_pmd by 6wind(refer as virtio B);
C) virtio by Brocade/vyatta(refer as virtio C);
 
Integrating 3 implementations into one could reduce the maintaining cost and time,
in other hand, user don't need practice their application on 3 variant one by one to see
which one is the best for them;
 
 
What's the status?
====================
Currently virtio A has covered most features of virtio B, we could regard they have
similar behavior as virtio driver. But there are some differences between
virtio A and virtio C, so it need integrate features/codes from virtio C into virtio A.
This patch set bases on two original RFC patch sets from Stephen Hemminger[stephen@networkplumber.org]
Refer to [http://dpdk.org/ml/archives/dev/2014-August/004845.html ] for the original one.
This patch set also resolves some conflict with latest codes and removed duplicated codes.
 
 
What this patch set contains:
===============================
  1) virtio: Rearrange resource initialization, it extracts a function to setup PCI resources;
  2) virtio: Use weaker barriers, as DPDK driver only has to deal with the case of running on PCI
     and with SMP, In this case, the code can use the weaker barriers instead of using hard (fence)
     barriers. This may help performance a bit;
  3) virtio: Allow starting with link down, other driver has similar behavior;
  4) virtio: Add support for Link State interrupt;
  5) ether: Add soft vlan encap/decap functions, it helps if HW don't support vlan strip;
  6) virtio: Use software vlan stripping;
  7) virtio: Remove unnecessary adapter structure;
  8) virtio: Remove redundant vq_alignment, as vq alignment is always 4K, so use constant when needed;
  9) virtio: Fix how states are handled during initialization, this is to match Linux kernel;
  10) virtio: Make vtpci_get_status a local function as it is used in one file;
  11) virtio: Check for packet headroom at compile time;
  12) virtio: Move allocation before initialization to avoid being stuck in middle of virtio init;
  13) virtio: Add support for vlan filtering;
  14) virtio: Add support for multiple mac addresses;
  15) virtio: Add ability to set MAC address;
  16) virtio: Free mbuf's with threshold, this makes its behavior more like ixgbe;
  17) virtio: Use port IO to get PCI resource for security reasons and match virtio-net-pmd.
 
Any feedback and comments for this RFC are welcome.

Changchun Ouyang (17):
  virtio: Rearrange resource initialization
  virtio: Use weaker barriers
  virtio: Allow starting with link down
  virtio: Add support for Link State interrupt
  ether: Add soft vlan encap/decap functions
  virtio: Use software vlan stripping
  virtio: Remove unnecessary adapter structure
  virtio: Remove redundant vq_alignment
  virtio: Fix how states are handled during initialization
  virtio: Make vtpci_get_status local
  virtio: Check for packet headroom at compile time
  virtio: Move allocation before initialization
  virtio: Add support for vlan filtering
  virtio: Add suport for multiple mac addresses
  virtio: Add ability to set MAC address
  virtio: Free mbuf's with threshold
  virtio: Use port IO to get PCI resource.

 lib/librte_eal/common/include/rte_pci.h |   2 +
 lib/librte_eal/linuxapp/eal/eal_pci.c   |   3 +-
 lib/librte_ether/rte_ethdev.h           |   8 +
 lib/librte_ether/rte_ether.h            |  76 +++++
 lib/librte_pmd_virtio/virtio_ethdev.c   | 479 ++++++++++++++++++++++++--------
 lib/librte_pmd_virtio/virtio_ethdev.h   |  12 +-
 lib/librte_pmd_virtio/virtio_pci.c      |  20 +-
 lib/librte_pmd_virtio/virtio_pci.h      |   8 +-
 lib/librte_pmd_virtio/virtio_rxtx.c     | 101 +++++--
 lib/librte_pmd_virtio/virtqueue.h       |  59 +++-
 10 files changed, 614 insertions(+), 154 deletions(-)

-- 
1.8.4.2

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

end of thread, other threads:[~2014-12-10  0:29 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-08  6:21 [dpdk-dev] [RFC PATCH 00/17] Single virtio implementation Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 01/17] virtio: Rearrange resource initialization Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 02/17] virtio: Use weaker barriers Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 03/17] virtio: Allow starting with link down Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 04/17] virtio: Add support for Link State interrupt Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 05/17] ether: Add soft vlan encap/decap functions Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 06/17] virtio: Use software vlan stripping Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 07/17] virtio: Remove unnecessary adapter structure Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 08/17] virtio: Remove redundant vq_alignment Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 09/17] virtio: Fix how states are handled during initialization Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 10/17] virtio: Make vtpci_get_status local Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 11/17] virtio: Check for packet headroom at compile time Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 12/17] virtio: Move allocation before initialization Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 13/17] virtio: Add support for vlan filtering Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 14/17] virtio: Add suport for multiple mac addresses Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 15/17] virtio: Add ability to set MAC address Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 16/17] virtio: Free mbuf's with threshold Ouyang Changchun
2014-12-08  6:21 ` [dpdk-dev] [RFC PATCH 17/17] virtio: Use port IO to get PCI resource Ouyang Changchun
2014-12-08  9:30 ` [dpdk-dev] [RFC PATCH 00/17] Single virtio implementation Thomas Monjalon
2014-12-09  1:08   ` Ouyang, Changchun
2014-12-09  3:23     ` Qiu, Michael
2014-12-09  5:24       ` Stephen Hemminger
2014-12-09  5:41       ` Ouyang, Changchun
2014-12-09  6:11         ` Thomas Monjalon
2014-12-09  6:40           ` Ouyang, Changchun
2014-12-09  8:53             ` Thomas Monjalon
2014-12-09  9:46             ` Bruce Richardson
2014-12-09 14:08               ` Ouyang, Changchun
2014-12-09 16:03                 ` Qiu, Michael
2014-12-10  0:29                   ` Ouyang, Changchun

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).