ixes: 13ce5e7eb94f ("virtio: mergeable buffers")
Signed-off-by: Huawei Xie
---
v2: use VIRTQUEUE_NUSED
---
drivers/net/virtio/virtio_ethdev.c | 4 ++--
drivers/net/virtio/virtio_ring.h| 2 +-
drivers/net/virtio/virtio_rxtx_simple.c | 3 +--
3 files changed, 4 insertions(+), 5 d
ixes: 13ce5e7eb94f ("virtio: mergeable buffers")
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 4 ++--
drivers/net/virtio/virtio_ring.h| 2 +-
drivers/net/virtio/virtio_rxtx_simple.c | 3 +--
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/
vring")
Signed-off-by: Huawei Xie
---
lib/librte_vhost/vhost_user/virtio-net-user.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/lib/librte_vhost/vhost_user/virtio-net-user.c
b/lib/librte_vhost/vhost_user/virtio-net-user.c
index 5803182..5844a42 100644
--
from library (CHECKED_RETURN)
>>> check_return: Calling fstat(fd, &stat) without checking return value.
>>> This library function may fail and return an error code.
Fixes: 8f972312b8f4 ("vhost: support vhost-user")
Signed-off-by: Huawei Xie
---
lib/librte_vhost/vh
We skip kernel managed virtio devices, if it isn't whitelisted.
Before checking if the virtio device is whitelisted, check if devargs is
specified.
Fixes: ac5e1d838dc1 ("virtio: skip error when probing kernel managed device")
Signed-off-by: Huawei Xie
Reported-by: Vincent Li
queue through costly cmpset operation.
This patch removes this internal lockless implementation and should improve
performance a bit.
Luckily DPDK OVS doesn't rely on this behavior.
Signed-off-by: Huawei Xie
---
doc/guides/rel_notes/release_16_07.rst | 3 +
lib/librte_vhost/rte_vi
We keep a common vq structure, containing only vq related fields,
and then split others into RX, TX and control queue respectively.
Signed-off-by: Huawei Xie
---
v2:
- don't split virtio_dev_rx/tx_queue_setup
v3:
- fix some 80 char warnings
- fix other newer version checkpatch warnings
- r
We keep a common vq structure, containing only vq related fields,
and then split others into RX, TX and control queue respectively.
Signed-off-by: Huawei Xie
---
v2:
- don't split virtio_dev_rx/tx_queue_setup
v3:
- fix some 80 char warnings
- fix other newer version checkpatch warnings
- r
There is no external function call or any barrier in the loop,
the used->idx would only be retrieved once.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/
Fixes: ac5e1d838dc1 ("virtio: skip error when probing kernel managed device")
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_pci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
ind
We keep a common vq structure, containing only vq related fields,
and then split others into RX, TX and control queue respectively.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 352 ++--
drivers/net/virtio/virtio_ethdev.h | 2
have too
many common vq operations. Split fields into virtnet_rx
and virtnet_tx respectively.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 333 +---
drivers/net/virtio/virtio_pci.c | 4 +-
drivers/net/virtio/virtio_pci.h | 3
check merge-able header as it is supported.
previously we don't support merge-able feature, so non merge-able
header is checked.
v2:
add missed signoff
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dr
performance reason of CACHE), in which descriptors are allocated
from the head and freed to the tail, with this patch in most cases
avail ring will remain the same, then it would be valid in both caches
of frontend and backend.
Signed-off-by: Huawei Xie
Suggested-by: ms >> Michael S. T
check merge-able header as it is supported.
previously we don't support merge-able feature, so non merge-able
header is checked.
---
drivers/net/virtio/virtio_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net/virtio/virti
eliminate unnecessary cache to cache transfer between virtio and vhost
core
---
drivers/net/virtio/virtqueue.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index 4e9239e..8c46a83 100644
--- a/drivers/net/virt
Acked-by: Huawei Xie
.
For all other IO port mapping errors, return -1.
Note than if VFIO/UIO fails, now we don't fall back to port IO.
Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource")
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
drivers/net/virtio/
call rte_eal_pci_ioport_map (on x86) only if the pci device is not bound
to a kernel driver.
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 6 +-
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
b/lib/librte_eal/linuxapp/eal/eal_pci.c
index dc0aa37..4ede4cb
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
b/lib/librte_eal/linuxapp/eal/eal_pci.c
index b44fa32
Use RTE_KDRV_NONE to indicate that kernel driver (other than VFIO/UIO) isn't
managing the device.
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
positive return of devinit of pci driver means the driver doesn't support
this device.
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
Acked-by: David Marchand
---
lib/librte_eal/common/eal_common_pci.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librt
's position
change LOG level from ERR to INFO
Huawei Xie (6):
eal: make the comment more accurate
eal: set kdrv to RTE_KDRV_NONE if kernel driver isn't managing the device.
eal: use new RTE_ARCH_X86 macro for x86 arch
eal: simple code rework
eal: map IO port only when kernel driv
ipedia.org/wiki/Duff%27s_device
In this implementation, while() loop is used because we could not assume
count is strictly positive. Using while() loop saves one line of check.
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
Acked-by: Olivier Matz
---
doc
Note than if VFIO/UIO fails, now we don't fall back to port IO.
Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource")
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 9 +++--
drivers/net/virtio/virtio_pci.c| 15 ++-
2 files ch
Call rte_eal_pci_ioport_map only if driver type is RTE_KDRV_NONE, which
means kernel driver(including UIO/VFIO) isn't managing the device.
other minor changes:
* use RTE_ARCH_X86 for pci ioport map
* rework rte_eal_pci_ioport_map a bit
Signed-off-by: Huawei Xie
---
lib/librte_eal/lin
v4 changes:
reword the commit message. When we mention kernel driver, emphasizes
that it includes UIO/VFIO.
Use RTE_KDRV_NONE to indicate that kernel driver(including UIO/VFIO)
isn't manipulating the device.
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
---
lib/librte_eal/linuxap
positive return of rte_eal_pci_probe_one_driver means the driver doesn't support
the device.
Signed-off-by: Huawei Xie
Acked-by: Yuanhan Liu
---
lib/librte_eal/common/eal_common_pci.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/c
managing the virtio device before virtio PMD uses port IO to configure
the device.
Huawei Xie (4):
eal: make the comment more accurate
eal: set kdrv to RTE_KDRV_NONE if kernel driver isn't managing the device.
eal: call pci_ioport_map when kernel driver isn't managing the device
virt
any kernel driver manipulating the virtio
device before virtio PMD uses IO port to configure the device.
Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource")
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 5 +
1 file changed, 5 insertions(+)
diff --git
v2 changes:
Remove unnecessary assignment of NULL to dev->data->mac_addrs
Ajust one comment's position
if virtio_resource_init fails, cleanup the resource and return 1 to
tell the upper layer we don't take over this device. -1 means error
which will cause DPDK to exit.
Signe
Use RTE_KDRV_NONE to indicate that kernel driver isn't manipulating
the device.
Signed-off-by: Huawei Xie
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
positive return of rte_eal_pci_probe_one_driver means the driver doesn't
support the device.
Signed-off-by: Huawei Xie
---
lib/librte_eal/common/eal_common_pci.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_pci.c
b/lib/librt
re serious problem is kernel driver is still manipulating the
device, which causes driver conflict.
This patch checks if there is any kernel driver manipulating the
virtio device before virtio PMD uses port IO to configure the device.
Huawei Xie (4):
eal: make the comment more accura
ve extra parenthesis after return")
Signed-off-by: Huawei Xie
---
app/test-pmd/cmdline.c | 12 ++--
app/test-pmd/config.c | 2 +-
app/test-pmd/flowgen.c | 2 +-
app/test-pmd/mempool_anon.c
v2 changes:
add missed commit message in v1
fix the error reported by checkpatch:
"ERROR: return is not a function, parentheses are not required"
also removed other extra parentheses like:
"return val == 0"
"return (rte_mempool_lookup(...))"
Signed-off-by:
v4 changes:
fix a silly typo in error handling when rte_pktmbuf_alloc fails
reported by haifeng
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
Acked-by: Yuanhan Liu
Tested-by
cause we could not assume count is strictly positive. Using while()
loop saves one line of check if count is zero.
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
doc/guides/rel_notes/release_2_3.rst | 3 ++
lib/librte_mbuf/
ne by one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk API
vhost: call rte_pktmbuf_alloc_bulk in vhost dequeue
doc/guides/rel_notes/release_2_3.rst | 3 ++
lib/librte_mbuf/rte_mbuf.h
of a port.
The atomic cmpset is a costly operation. This patch should help
performance a bit.
Signed-off-by: Huawei Xie
---
lib/librte_vhost/vhost_rxtx.c | 86 +--
1 file changed, 25 insertions(+), 61 deletions(-)
diff --git a/lib/librte_vhost/vhost_rxtx.c
Signed-off-by: Huawei Xie
---
app/test-pmd/cmdline.c | 12 ++--
app/test-pmd/config.c | 2 +-
app/test-pmd/flowgen.c | 2 +-
app/test-pmd/mempool_anon.c| 12 ++--
app/test-pmd/testpmd.h
conflict between virtio PMD and virtio-net kernel driver.
This patch checks if there is any kernel driver manipulating the virtio
device before virtio PMD uses IO port to configure the device.
Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource")
Signed-off-by: Huawei Xie
---
d
v2 changes:
Remove unnecessary assignment of NULL to dev->data->mac_addrs
Ajust one comment's position
if virtio_resource_init fails, cleanup the resource and return 1 to
tell the upper layer we don't take over this device.
return -1 means error and DPDK will exit.
Signed-of
Use RTE_KDRV_NONE to indicate that kernel driver isn't manipulating
the device.
Signed-off-by: Huawei Xie
Acked-by: David Marchand
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
Signed-off-by: Huawei Xie
---
lib/librte_eal/common/eal_common_pci.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_pci.c
b/lib/librte_eal/common/eal_common_pci.c
index dcfe947..bbcdb2b 100644
--- a/lib/librte_eal/common
ice before virtio PMD uses port IO to configure the device.
Huawei Xie (4):
eal: make the comment more accurate
eal: set kdrv to RTE_KDRV_NONE if kernel driver isn't manipulating the device.
virtio: return 1 to tell the kernel we don't take over this device
virtio: check if any ke
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 12 +---
drivers/net/vmxnet3/vmxnet3_ethdev.c | 6 +++---
drivers/net/vmxnet3/vmxnet3_rxtx.c | 2 +-
3 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 12 +---
drivers/net/vmxnet3/vmxnet3_ethdev.c | 6 +++---
drivers/net/vmxnet3/vmxnet3_rxtx.c | 2 +-
3 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net
v4 changes:
fix a silly typo in error handling when rte_pktmbuf_alloc fails
reported by haifeng
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
Acked-by: Yuanhan Liu
Tested-by
igned-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_mbuf/rte_mbuf.h | 55 ++
1 file changed, 55 insertions(+)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index f234ac9..b2ed
y pool,
it could directly call rte_mempool_put to free the bulk of mbufs,
otherwise rte_pktmbuf_free_bulk has to call rte_pktmbuf_free to free
the mbuf one by one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk API
v
driver.
This patch checks if there is any kernel driver manipulating the virtio
device before virtio PMD uses IO port to configure the device.
Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource")
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 7 +++
1 fi
if virtio_resource_init fails, cleanup the resource and return 1 to
tell the upper layer we don't take over this device.
return -1 means error and DPDK will exit.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
Use RTE_KDRV_NONE to indicate that kernel driver isn't manipulating the
device.
Signed-off-by: Huawei Xie
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
b/lib/librte_eal/linuxapp/eal/eal_
Signed-off-by: Huawei Xie
---
lib/librte_eal/common/eal_common_pci.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_pci.c
b/lib/librte_eal/common/eal_common_pci.c
index dcfe947..bbcdb2b 100644
--- a/lib/librte_eal/common
driver is still manipulating the
device, which causes driver conflict.
This patch checks if there is any kernel driver manipulating the
virtio device before virtio PMD uses port IO to configure the device.
Huawei Xie (4):
eal: make the comment more accurate
eal: set kdrv to RTE_KDRV_NONE
v4 changes:
fix a silly typo in error handling when rte_pktmbuf_alloc fails
reported by haifeng
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
Acked-by: Yuanhan Liu
Tested-by
_device
In our implementation, we use while() loop rather than do{} while() loop
because we could not assume count is strictly positive. Using while()
loop saves one line of check if count is zero.
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_mbuf/
rwise rte_pktmbuf_free_bulk has to call rte_pktmbuf_free to free
the mbuf one by one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk API
vhost: call rte_pktmbuf_alloc_bulk in vhost dequeue
lib/librte_mbuf/rte_mbuf.h
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_vhost/vhost_rxtx.c | 35 ++-
1 file changed, 22 insertions(+), 13 deletions(-)
diff
_device
In our implementation, we use while() loop rather than do{} while() loop
because we could not assume count is strictly positive. Using while()
loop saves one line of check if count is zero.
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_mbuf/
y one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk API
vhost: call rte_pktmbuf_alloc_bulk in vhost dequeue
lib/librte_mbuf/rte_mbuf.h| 49 +++
lib/librte_vhost/vhost_rxtx.c
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_vhost/vhost_rxtx.c | 35 ++-
1 file changed, 22 insertions(+), 13 deletions(-)
diff
v2 changes:
unroll the loop a bit to help the performance
rte_pktmbuf_alloc_bulk allocates a bulk of packet mbufs.
There is related thread about this bulk API.
http://dpdk.org/dev/patchwork/patch/4718/
Thanks to Konstantin's loop unrolling.
Signed-off-by: Gerald Rogers
Signed-off-by: H
same mbuf memory pool,
it could directly call rte_mempool_put to free the bulk of mbufs,
otherwise rte_pktmbuf_free_bulk has to call rte_pktmbuf_free to free
the mbuf one by one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk
pre-allocate a bulk of mbufs instead of allocating one mbuf a time on demand
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte_vhost/vhost_rxtx.c | 35 ++-
1 file changed, 22 insertions(+), 13 deletions(-)
diff
rte_pktmbuf_alloc_bulk allocates a bulk of packet mbufs.
There is related thread about this bulk API.
http://dpdk.org/dev/patchwork/patch/4718/
Thanks to Konstantin's loop unrolling.
Signed-off-by: Gerald Rogers
Signed-off-by: Huawei Xie
Acked-by: Konstantin Ananyev
---
lib/librte
of mbufs,
otherwise rte_pktmbuf_free_bulk has to call rte_pktmbuf_free to free
the mbuf one by one.
This patchset will not provide this symmetric implementation.
Huawei Xie (2):
mbuf: provide rte_pktmbuf_alloc_bulk API
vhost: call rte_pktmbuf_alloc_bulk in vhost dequeue
lib/librte_mbuf
Update release notes about virtio ring layout optimization,
vector rx and simple tx support
Signed-off-by: Huawei Xie
---
doc/guides/rel_notes/release_2_2.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/doc/guides/rel_notes/release_2_2.rst
b/doc/guides/rel_notes/release_2_2.rst
Changes in v4:
Check merge-able feature when select simple rx/tx functions.
simple rx/tx func is chose when merge-able rx is disabled and user specifies
single segment and
no offload support.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c | 15 +++
1 file changed
clean used ring.
shift operation of idx could be saved if vq_free_cnt means
free slots rather than free descriptors.
TODO: rearrange vq data structure, pack the stats var together so that we
could use one vec instruction to update all of them.
Signed-off-by: Huawei Xie
---
drivers/net/virtio
With fixed avail ring, we don't need to get desc idx from avail ring.
virtio driver only has to deal with desc ring.
This patch uses vector instruction to accelerate processing desc ring.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 2 +
drivers/net/v
fill avail ring with blank mbufs in virtio_dev_vring_start
Signed-off-by: Huawei Xie
---
drivers/net/virtio/Makefile | 2 +-
drivers/net/virtio/virtio_rxtx.c| 6 ++-
drivers/net/virtio/virtio_rxtx.h| 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 84
| 1 | ... | 127 || 0 | 1 | ... | 127 | desc ring for tx dat
+-+-+-+--+--+--+--+
||
||
++
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c
Changes in v3:
- Remove unnecessary NULL test for rte_free
- Remove unnecessary assign of local var vq after free
Add software RX ring in virtqueue.
Add fake_mbuf in virtqueue for wraparound processing.
Use global simple_rxtx to indicate whether simple rxtx is enabled
Signed-off-by: Huawei Xie
Would move all rx/tx related declarations into this header file in future.
Add RTE_VIRTIO_PMD_MAX_BURST.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 1 +
drivers/net/virtio/virtio_rxtx.c | 1 +
drivers/net/virtio/virtio_rxtx.h | 34
x dat
+-+-+-+--+--+--+--+
||
||
++
Performance boost could be observed only if the virtio backend isn't the
bottleneck or in VM2VM
case.
There are also several vhost optimization patches to be submitted later.
Huawei Xie (8)
Changes in v4:
Check merge-able feature when select simple rx/tx functions.
simple rx/tx func is chose when merge-able rx is disabled and user specifies
single segment and
no offload support.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c | 15 +++
1 file changed
clean used ring.
shift operation of idx could be saved if vq_free_cnt means
free slots rather than free descriptors.
TODO: rearrange vq data structure, pack the stats var together so that we
could use one vec instruction to update all of them.
Signed-off-by: Huawei Xie
---
drivers/net/virtio
With fixed avail ring, we don't need to get desc idx from avail ring.
virtio driver only has to deal with desc ring.
This patch uses vector instruction to accelerate processing desc ring.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 2 +
drivers/net/v
fill avail ring with blank mbufs in virtio_dev_vring_start
Signed-off-by: Huawei Xie
---
drivers/net/virtio/Makefile | 2 +-
drivers/net/virtio/virtio_rxtx.c| 6 ++-
drivers/net/virtio/virtio_rxtx.h| 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 84
| 1 | ... | 127 || 0 | 1 | ... | 127 | desc ring for tx dat
+-+-+-+--+--+--+--+
||
||
++
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c
Changes in v3:
- Remove unnecessary NULL test for rte_free
- Remove unnecessary assign of local var vq after free
Add software RX ring in virtqueue.
Add fake_mbuf in virtqueue for wraparound processing.
Use global simple_rxtx to indicate whether simple rxtx is enabled
Signed-off-by: Huawei Xie
Would move all rx/tx related declarations into this header file in future.
Add RTE_VIRTIO_PMD_MAX_BURST.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 1 +
drivers/net/virtio/virtio_rxtx.c | 1 +
drivers/net/virtio/virtio_rxtx.h | 34
boost could be observed only if the virtio backend isn't the
bottleneck or in VM2VM
case.
There are also several vhost optimization patches to be submitted later.
Huawei Xie (7):
virtio: add virtio_rxtx.h header file
virtio: add software rx ring, fake_buf into virtqueue
virtio: rx/tx r
Changes in v4:
Check merge-able feature when select simple rx/tx functions.
simple rx/tx func is chose when merge-able rx is disabled and user specifies
single segment and
no offload support.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c | 15 +++
1 file changed
slots rather than free descriptors.
TODO: rearrange vq data structure, pack the stats var together so that we
could use one vec instruction to update all of them.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 93
With fixed avail ring, we don't need to get desc idx from avail ring.
virtio driver only has to deal with desc ring.
This patch uses vector instruction to accelerate processing desc ring.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 2 +
drivers/net/v
fill avail ring with blank mbufs in virtio_dev_vring_start
Signed-off-by: Huawei Xie
---
drivers/net/virtio/Makefile | 2 +-
drivers/net/virtio/virtio_rxtx.c| 6 ++-
drivers/net/virtio/virtio_rxtx.h| 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 84
| 1 | ... | 127 || 0 | 1 | ... | 127 | desc ring for tx dat
+-+-+-+--+--+--+--+
||
||
++
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c
Changes in v3:
- Remove unnecessary NULL test for rte_free
- Remove unnecessary assign of local var vq after free
Add software RX ring in virtqueue.
Add fake_mbuf in virtqueue for wraparound processing.
Use global simple_rxtx to indicate whether simple rxtx is enabled
Signed-off-by: Huawei Xie
Would move all rx/tx related declarations into this header file in future.
Add RTE_VIRTIO_PMD_MAX_BURST.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.c | 1 +
drivers/net/virtio/virtio_rxtx.c | 1 +
drivers/net/virtio/virtio_rxtx.h | 34
r in VM2VM
case.
There are also several vhost optimization patches to be submitted later.
Huawei Xie (7):
virtio: add virtio_rxtx.h header file
virtio: add software rx ring, fake_buf into virtqueue
virtio: rx/tx ring layout optimization
virtio: fill RX avail ring with blank mbufs
virtio: vir
simple rx/tx func is enabled when user specifies single segment and no offload
support.
merge-able should be disabled to use simple rxtx.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/net/virtio
the stats var together so that we could
use
one vec instruction to update all of them.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 93 +
2 files changed, 96 insertions(+)
diff --git a
With fixed avail ring, we don't need to get desc idx from avail ring.
virtio driver only has to deal with desc ring.
This patch uses vector instruction to accelerate processing desc ring.
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_ethdev.h | 2 +
drivers/net/v
fill avail ring with blank mbufs in virtio_dev_vring_start
Signed-off-by: Huawei Xie
---
drivers/net/virtio/Makefile | 2 +-
drivers/net/virtio/virtio_rxtx.c| 6 ++-
drivers/net/virtio/virtio_rxtx.h| 3 ++
drivers/net/virtio/virtio_rxtx_simple.c | 84
x dat
+-+-+-+--+--+--+--+
||
||
++
Signed-off-by: Huawei Xie
---
drivers/net/virtio/virtio_rxtx.c | 24
1 file changed, 24 insertions(+)
diff --git a/drivers/net/v
Changes in v3:
- Remove unnecessary NULL test for rte_free
- Remove unnecessary assign of local var vq after free
Add software RX ring in virtqueue.
Add fake_mbuf in virtqueue for wraparound processing.
Use global simple_rxtx to indicate whether simple rxtx is enabled
Signed-off-by: Huawei Xie
1 - 100 of 324 matches
Mail list logo