#
d1c074bd |
| 28-May-2020 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
vhost: enable reply-ack systematically
As announced during v20.05 release cycle, this patch makes reply-ack protocol feature to be enabled unconditionally.
This protocol feature makes the communica
vhost: enable reply-ack systematically
As announced during v20.05 release cycle, this patch makes reply-ack protocol feature to be enabled unconditionally.
This protocol feature makes the communication between the master and the slave more robust, avoiding for example possible undefined behaviour with VHOST_USER_SET_MEM_TABLE.
Also, reply-ack support will be required for upcoming VHOST_USER_SET_STATUS request.
Note that this protocol feature was disabled by default because Qemu version 2.7.0 to 2.9.0 had a bug causing a deadlock when reply-ack was negotiated and multiqueue enabled. These Qemu version are now very old and no more maintained, so we can reasonably consider we no more support them.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
#
c3ff0ac7 |
| 15-Oct-2019 |
Flavio Leitner <fbl@sysclose.org> |
vhost: improve performance by supporting large buffer
The rte_vhost_dequeue_burst supports two ways of dequeuing data. If the data fits into a buffer, then all data is copied and a single linear buf
vhost: improve performance by supporting large buffer
The rte_vhost_dequeue_burst supports two ways of dequeuing data. If the data fits into a buffer, then all data is copied and a single linear buffer is returned. Otherwise it allocates additional mbufs and chains them together to return a multiple segments mbuf.
While that covers most use cases, it forces applications that need to work with larger data sizes to support multiple segments mbufs. The non-linear characteristic brings complexity and performance implications to the application.
To resolve the issue, add support to attach external buffer to a pktmbuf and let the host provide during registration if attaching an external buffer to pktmbuf is supported and if only linear buffer are supported.
Signed-off-by: Flavio Leitner <fbl@sysclose.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
d629b7b5 |
| 26-Apr-2019 |
John McNamara <john.mcnamara@intel.com> |
doc: fix spelling reported by aspell in guides
Fix spelling errors in the guide docs.
Signed-off-by: John McNamara <john.mcnamara@intel.com> Acked-by: Rami Rosen <ramirose@gmail.com>
|
#
5c6c1480 |
| 22-Feb-2019 |
Tiwei Bie <tiwei.bie@intel.com> |
doc: improve vhost zero copy guide
Highlight that vhost zero copy mbufs should be consumed as soon as possible.
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.c
doc: improve vhost zero copy guide
Highlight that vhost zero copy mbufs should be consumed as soon as possible.
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
cd85039e |
| 12-Oct-2018 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
vhost: restrict postcopy live-migration enablement
Postcopy live-migration feature requires the application to not populate the guest memory. As the vhost library cannot prevent the application to t
vhost: restrict postcopy live-migration enablement
Postcopy live-migration feature requires the application to not populate the guest memory. As the vhost library cannot prevent the application to that (e.g. preventing the application to call mlockall()), the feature is disabled by default.
The application should only enable the feature if it does not force the guest memory to be populated.
In case the user passes the RTE_VHOST_USER_POSTCOPY_SUPPORT flag at registration but the feature was not compiled, registration fails.
For the same reason, postcopy and dequeue zero copy features are not compatible, so don't advertize postcopy support if dequeue zero copy is requested.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
6beea244 |
| 25-May-2018 |
Zhihong Wang <zhihong.wang@intel.com> |
doc: add vDPA in vhost guide
Signed-off-by: Zhihong Wang <zhihong.wang@intel.com> Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
|
#
a24e7032 |
| 26-Apr-2018 |
Junjie Chen <junjie.j.chen@intel.com> |
doc/vhost: update zero copy performance tip
In VM2NIC case zero copy may need some tuning to get best performance. This patch describes the zero copy starved case and provides a tuning tip.
Signed-
doc/vhost: update zero copy performance tip
In VM2NIC case zero copy may need some tuning to get best performance. This patch describes the zero copy starved case and provides a tuning tip.
Signed-off-by: Junjie Chen <junjie.j.chen@intel.com> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
e3075e96 |
| 14-Mar-2018 |
Junjie Chen <junjie.j.chen@intel.com> |
doc: add driver limitation for vhost dequeue zero copy
In vhost-switch example, when binding nic to vfio-pci with iommu enabled, dequeue zero copy cannot work in VM2NIC mode due to no iommu dma mapp
doc: add driver limitation for vhost dequeue zero copy
In vhost-switch example, when binding nic to vfio-pci with iommu enabled, dequeue zero copy cannot work in VM2NIC mode due to no iommu dma mapping is setup for guest memory currently.
Signed-off-by: Junjie Chen <junjie.j.chen@intel.com> Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
939066d9 |
| 05-Apr-2018 |
Fan Zhang <roy.fan.zhang@intel.com> |
vhost/crypto: add public function implementation
This patch adds public API implementation to vhost crypto.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Jay Zhou <jianjay.zhou@huawe
vhost/crypto: add public function implementation
This patch adds public API implementation to vhost crypto.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Jay Zhou <jianjay.zhou@huawei.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
768274eb |
| 28-Mar-2018 |
Jianfeng Tan <jianfeng.tan@intel.com> |
vhost: avoid populate guest memory
It's not necessary to populate guest memory from vhost side unless zerocopy is enabled or users want better performance.
Update the doc for guest memory requireme
vhost: avoid populate guest memory
It's not necessary to populate guest memory from vhost side unless zerocopy is enabled or users want better performance.
Update the doc for guest memory requirement clarification.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
5630257f |
| 01-Feb-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
doc: convert Intel license headers to SPDX tags
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
#
002d6a7e |
| 06-Nov-2017 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
vhost: add flag to enable IOMMU support
Qemu versions from v2.7.0 to v2.9.0 have their reply-ack protocol feature implementation broken with multiqueue. The reply-ack protocol feature is optional ex
vhost: add flag to enable IOMMU support
Qemu versions from v2.7.0 to v2.9.0 have their reply-ack protocol feature implementation broken with multiqueue. The reply-ack protocol feature is optional except for IOMMU feature.
This patch introduce a new RTE_VHOST_USER_IOMMU_SUPPORT flag to enable VIRTIO_F_IOMMU_PLATFORM virtio feature.
By default, the IOMMU support is now disabled.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
show more ...
|
#
efba12a7 |
| 30-Aug-2017 |
Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> |
vhost: add user callbacks for socket open/close
Added new callbacks to notify about socket connection status. As destroy_device is used for virtqueue processing *pause* as well as connection close,
vhost: add user callbacks for socket open/close
Added new callbacks to notify about socket connection status. As destroy_device is used for virtqueue processing *pause* as well as connection close, the user has no distinction between those.
Consider the following scenario: rte_vhost: received SET_VRING_BASE message, calling destroy_device() as usual
user: end-user asks to remove the device (together with socket file), OK, device is not *in use* - that's NOT the behavior we want calling rte_vhost_driver_unregister() etc.
Instead of changing new_device/destroy_device callbacks and breaking the ABI, a set of new functions new_connection/destroy_connection has been added.
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-by: Jens Freimann <jfreimann@redhat.com>
show more ...
|
#
af147591 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: introduce API to start a specific driver
We used to use rte_vhost_driver_session_start() to trigger the vhost-user session. It takes no argument, thus it's a global trigger. And it could be p
vhost: introduce API to start a specific driver
We used to use rte_vhost_driver_session_start() to trigger the vhost-user session. It takes no argument, thus it's a global trigger. And it could be problematic.
The issue is, currently, rte_vhost_driver_register(path, flags) actually tries to put it into the session loop (by fdset_add). However, it needs a set of APIs to set a vhost-user driver properly: * rte_vhost_driver_register(path, flags); * rte_vhost_driver_set_features(path, features); * rte_vhost_driver_callback_register(path, vhost_device_ops);
If a new vhost-user driver is registered after the trigger (think OVS-DPDK that could add a port dynamically from cmdline), the current code will effectively starts the session for the new driver just after the first API rte_vhost_driver_register() is invoked, leaving later calls taking no effect at all.
To handle the case properly, this patch introduce a new API, rte_vhost_driver_start(path), to trigger a specific vhost-user driver. To do that, the rte_vhost_driver_register(path, flags) is simplified to create the socket only and let rte_vhost_driver_start(path) to actually put it into the session loop.
Meanwhile, the rte_vhost_driver_session_start is removed: we could hide the session thread internally (create the thread if it has not been created). This would also simplify the application.
NOTE: the API order in prog guide is slightly adjusted for showing the correct invoke order.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
abd53c16 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: add features changed callback
Features could be changed after the feature negotiation. For example, VHOST_F_LOG_ALL will be set/cleared at the start/end of live migration, respecitively. Thus
vhost: add features changed callback
Features could be changed after the feature negotiation. For example, VHOST_F_LOG_ALL will be set/cleared at the start/end of live migration, respecitively. Thus, we need a new callback to inform the application on such change.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
cb043557 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: rename virtio-net to vhost
Rename "virtio-net" to "vhost" in the API comments and vhost prog guide.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <max
vhost: rename virtio-net to vhost
Rename "virtio-net" to "vhost" in the API comments and vhost prog guide.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
7c129037 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: rename device ops struct
rename "virtio_net_device_ops" to "vhost_device_ops", to not let it be virtio-net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Max
vhost: rename device ops struct
rename "virtio_net_device_ops" to "vhost_device_ops", to not let it be virtio-net specific.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
93433b63 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: make notify ops per vhost driver
Assume there is an application both support vhost-user net and vhost-user scsi, the callback should be different. Making notify ops per vhost driver allow app
vhost: make notify ops per vhost driver
Assume there is an application both support vhost-user net and vhost-user scsi, the callback should be different. Making notify ops per vhost driver allow application define different set of callbacks for different driver.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
5fbb3941 |
| 01-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: introduce driver features related APIs
Introduce few APIs to set/get/enable/disable driver features.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <ma
vhost: introduce driver features related APIs
Introduce few APIs to set/get/enable/disable driver features.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
580f8e36 |
| 19-Dec-2016 |
Yong Wang <wang.yong19@zte.com.cn> |
doc: fix a typo in prog guide
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn> Acked-by: John McNamara <john.mcnamara@intel.com>
|
#
647e191b |
| 02-Nov-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
doc: update vhost programming guide
vhost-cuse has been removed in this release. Update the doc, with the vhost-cuse part being removed.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Ack
doc: update vhost programming guide
vhost-cuse has been removed in this release. Update the doc, with the vhost-cuse part being removed.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
show more ...
|
#
9ba1e744 |
| 09-Oct-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
vhost: add a flag to enable dequeue zero copy
Dequeue zero copy is disabled by default. Here add a new flag ``RTE_VHOST_USER_DEQUEUE_ZERO_COPY`` to explictily enable it.
Signed-off-by: Yuanhan Liu
vhost: add a flag to enable dequeue zero copy
Dequeue zero copy is disabled by default. Here add a new flag ``RTE_VHOST_USER_DEQUEUE_ZERO_COPY`` to explictily enable it.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Tested-by: Qian Xu <qian.q.xu@intel.com>
show more ...
|
#
f6ee75b5 |
| 19-Jul-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
doc: note a pitfall on vhost reconnect feature
The vhost feature negotiation only happens at virtio reset stage, say when a virtio-net device is firstly initiated, or when DPDK virtio PMD initiates.
doc: note a pitfall on vhost reconnect feature
The vhost feature negotiation only happens at virtio reset stage, say when a virtio-net device is firstly initiated, or when DPDK virtio PMD initiates. That means, if vhost APP restarts after the negotiation and reconnects, the feature negotiation process will not be triggered again, meaning the info is lost. To make reconnect work, QEMU simply saves the negotiated features before the restart and restores it afterwards.
Therefore, the vhost supported features must be exactly the same before and after the restart. For example, if TSO is disabled and then enabled, nothing will work and undefined issues might happen.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
show more ...
|
#
2bfaec90 |
| 24-Jun-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
doc: update vhost guide
Mainly on updating vhost-user part: we now support client mode. Also refine some words, and add a bit more explanation.
And made an emphatic statement that you are suggested
doc: update vhost guide
Mainly on updating vhost-user part: we now support client mode. Also refine some words, and add a bit more explanation.
And made an emphatic statement that you are suggested to use vhost-user instead of vhost-cuse, because we have enhanced vhost-user a lot since v2.2 (Actually, I doubt there are any people still using vhost-cuse)
[John McNamara: rewords, better formats] Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
show more ...
|
#
fea1d908 |
| 24-Apr-2015 |
John McNamara <john.mcnamara@intel.com> |
doc: fix spellings and typos
Fixed several typos and spelling errors in guide docs.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
|