#
666ff776 |
| 02-Mar-2022 |
Harold Huang <baymaxhuang@gmail.com> |
net/virtio: support NAPI when using vhost-net backend
In patch [1], NAPI has been supported in kernel tun driver to accelerate packet processing received from vhost-net. This will greatly improve th
net/virtio: support NAPI when using vhost-net backend
In patch [1], NAPI has been supported in kernel tun driver to accelerate packet processing received from vhost-net. This will greatly improve the throughput of the tap device in the vhost-net backend.
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=fb3f903769e8
Signed-off-by: Harold Huang <baymaxhuang@gmail.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
b72099be |
| 28-Sep-2021 |
David Marchand <david.marchand@redhat.com> |
net/virtio-user: fix init when using existing tap
When attaching to an existing mono queue tap, the virtio-user was not reporting that the virtio device was not properly initialised which prevented
net/virtio-user: fix init when using existing tap
When attaching to an existing mono queue tap, the virtio-user was not reporting that the virtio device was not properly initialised which prevented from starting the port later.
$ ip tuntap add test mode tap $ dpdk-testpmd --vdev \ net_virtio_user0,iface=test,path=/dev/vhost-net,queues=2 -- -i
... virtio_user_dev_init_mac(): (/dev/vhost-net) No valid MAC in devargs or device, use random vhost_kernel_open_tap(): TUNSETIFF failed: Invalid argument vhost_kernel_enable_queue_pair(): fail to open tap for vhost kernel virtio_user_start_device(): (/dev/vhost-net) Failed to start device ... Configuring Port 0 (socket 0) vhost_kernel_open_tap(): TUNSETIFF failed: Invalid argument vhost_kernel_enable_queue_pair(): fail to open tap for vhost kernel virtio_set_multiple_queues(): Multiqueue configured but send command failed, this is too late now... Fail to start port 0: Invalid argument Please stop the ports first Done
The virtio-user with vhost-kernel backend was going through a lot of complications to initialise tap fds only when using them.
For each qp enabled for the first time, a tapfd was created via TUNSETIFF with unneeded additional steps (see below) and then mapped to the right qp in the vhost-net backend. Unneeded steps (as long as it has been done once for the port): - tap features were queried while this is a constant on a running system, - the device name in DPDK was updated, - the mac address of the tap was set,
On subsequent qps state change, the vhost-net backend fd mapping was updated and the associated queue/tapfd were disabled/enabled via TUNSETQUEUE.
Now, this patch simplifies the whole logic by keeping all tapfds opened and in enabled state (from the tap point of view) at all time.
Unused ioctl defines are removed.
Tap features are validated earlier to fail initialisation asap. Tap name discovery and mac address configuration are moved when configuring qp 0.
To support attaching to mono queue tap, the virtio-user driver now tries to attach in multi queue first, then fallbacks to mono queue.
Finally (but this is more for consistency), VIRTIO_NET_F_MQ feature is exposed only if the underlying tap supports multi queue.
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
cc0151b3 |
| 26-Jan-2021 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: add virtio-user features ops
This patch introduces new callbacks for getting and setting Virtio features, and implements them for the different backend types.
Signed-off-by: Maxime Coqu
net/virtio: add virtio-user features ops
This patch introduces new callbacks for getting and setting Virtio features, and implements them for the different backend types.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
#
47ac9661 |
| 25-Nov-2019 |
Tiwei Bie <tiwei.bie@intel.com> |
net/virtio-user: do not close tap when disabling queue pairs
Do not close the tap fds when disabling queue pairs, instead, we just need to unbind the backend. Otherwise, tap port can be destroyed un
net/virtio-user: do not close tap when disabling queue pairs
Do not close the tap fds when disabling queue pairs, instead, we just need to unbind the backend. Otherwise, tap port can be destroyed unexpectedly.
Fixes: e3b434818bbb ("net/virtio-user: support kernel vhost") Cc: stable@dpdk.org
Reported-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
1db4d233 |
| 29-Aug-2018 |
Eric Zhang <eric.zhang@windriver.com> |
net/virtio-user: check negotiated features before set
This patch checks negotiated features to see if necessary to offload before set the tap device offload capabilities. It also checks if kernel su
net/virtio-user: check negotiated features before set
This patch checks negotiated features to see if necessary to offload before set the tap device offload capabilities. It also checks if kernel support the TUNSETOFFLOAD operation.
Fixes: 5e97e4202563 ("net/virtio-user: enable offloading") Cc: stable@dpdk.org
Signed-off-by: Eric Zhang <eric.zhang@windriver.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
show more ...
|
#
791b43e0 |
| 29-Dec-2017 |
Ning Li <muziding001@163.com> |
net/virtio-user: specify MAC of the tap
When using virtio-user with vhost-kernel to exchange packet with kernel networking stack, application can set the MAC of the tap interface via parameter.
Sig
net/virtio-user: specify MAC of the tap
When using virtio-user with vhost-kernel to exchange packet with kernel networking stack, application can set the MAC of the tap interface via parameter.
Signed-off-by: Ning Li <muziding001@163.com> Reviewed-by: Seán Harte <seanbh@gmail.com> Tested-by: Seán Harte <seanbh@gmail.com> Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
show more ...
|
#
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
be7a4707 |
| 13-Jan-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio-user: enable multiqueue with kernel vhost
With vhost kernel, to enable multiqueue, we need backend device in kernel support multiqueue feature. Specifically, with tap as the backend, as l
net/virtio-user: enable multiqueue with kernel vhost
With vhost kernel, to enable multiqueue, we need backend device in kernel support multiqueue feature. Specifically, with tap as the backend, as linux/Documentation/networking/tuntap.txt shows, we check if tap supports IFF_MULTI_QUEUE feature.
And for vhost kernel, each queue pair has a vhost fd, and with a tap fd binding this vhost fd. All tap fds are set with the same tap interface name.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
5e97e420 |
| 13-Jan-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio-user: enable offloading
When used with vhost kernel backend, we can offload at both directions. - From vhost kernel to virtio_user, the offload is enabled so that DPDK app can trust
net/virtio-user: enable offloading
When used with vhost kernel backend, we can offload at both directions. - From vhost kernel to virtio_user, the offload is enabled so that DPDK app can trust the flow is checksum-correct; and if DPDK app sends it through another port, the checksum needs to be recalculated or offloaded. It also applies to TSO. - From virtio_user to vhost_kernel, the offload is enabled so that kernel can trust the flow is L4-checksum-correct, no need to verify it; if kernel will consume it, DPDK app should make sure the l3-checksum is correctly set.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
e3b43481 |
| 13-Jan-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio-user: support kernel vhost
This patch add support vhost kernel as the backend for virtio_user. Three main hook functions are added: - vhost_kernel_setup() to open char device, each vq p
net/virtio-user: support kernel vhost
This patch add support vhost kernel as the backend for virtio_user. Three main hook functions are added: - vhost_kernel_setup() to open char device, each vq pair needs one vhostfd; - vhost_kernel_ioctl() to communicate control messages with vhost kernel module; - vhost_kernel_enable_queue_pair() to open tap device and set it as the backend of corresonding vhost fd (that is to say, vq pair).
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|