vhost: provide helper for host notifier ctrl
VDPA driver can decide if it needs to enable/disable the host notifier mapping, so exposing a API can allow flexibility. A later patch will base on this. Signed-off-by: Xiao Wang <xiao.w.wang@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
parent
02e3b285d4
commit
43f34e3566
@ -556,6 +556,9 @@ ifcvf_dev_config(int vid)
|
||||
rte_atomic32_set(&internal->dev_attached, 1);
|
||||
update_datapath(internal);
|
||||
|
||||
if (rte_vhost_host_notifier_ctrl(vid, true) != 0)
|
||||
DRV_LOG(NOTICE, "vDPA (%d): software relay is used.", did);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,8 @@
|
||||
* Device specific vhost lib
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <rte_pci.h>
|
||||
#include "rte_vhost.h"
|
||||
|
||||
@ -155,4 +157,20 @@ rte_vdpa_get_device(int did);
|
||||
*/
|
||||
int __rte_experimental
|
||||
rte_vdpa_get_device_num(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Enable/Disable host notifier mapping for a vdpa port.
|
||||
*
|
||||
* @param vid
|
||||
* vhost device id
|
||||
* @param enable
|
||||
* true for host notifier map, false for host notifier unmap
|
||||
* @return
|
||||
* 0 on success, -1 on failure
|
||||
*/
|
||||
int __rte_experimental
|
||||
rte_vhost_host_notifier_ctrl(int vid, bool enable);
|
||||
#endif /* _RTE_VDPA_H_ */
|
||||
|
@ -83,4 +83,5 @@ EXPERIMENTAL {
|
||||
rte_vhost_crypto_finalize_requests;
|
||||
rte_vhost_crypto_set_zero_copy;
|
||||
rte_vhost_va_from_guest_pa;
|
||||
rte_vhost_host_notifier_ctrl;
|
||||
};
|
||||
|
@ -2049,11 +2049,6 @@ skip_to_reply:
|
||||
if (vdpa_dev->ops->dev_conf)
|
||||
vdpa_dev->ops->dev_conf(dev->vid);
|
||||
dev->flags |= VIRTIO_DEV_VDPA_CONFIGURED;
|
||||
if (vhost_user_host_notifier_ctrl(dev->vid, true) != 0) {
|
||||
RTE_LOG(INFO, VHOST_CONFIG,
|
||||
"(%d) software relay is used for vDPA, performance may be low.\n",
|
||||
dev->vid);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -2148,7 +2143,7 @@ static int vhost_user_slave_set_vring_host_notifier(struct virtio_net *dev,
|
||||
return process_slave_message_reply(dev, &msg);
|
||||
}
|
||||
|
||||
int vhost_user_host_notifier_ctrl(int vid, bool enable)
|
||||
int rte_vhost_host_notifier_ctrl(int vid, bool enable)
|
||||
{
|
||||
struct virtio_net *dev;
|
||||
struct rte_vdpa_device *vdpa_dev;
|
||||
|
Loading…
x
Reference in New Issue
Block a user