On Thu, Feb 04, 2021 at 10:29:12PM +0200, Yuri Benditovich wrote: > This set of patches introduces graceful switch from tap-vhost to > tap-no-vhost depending on guest features. Before that the features > that vhost does not support were silently cleared in get_features. > This creates potential problem of migration from the machine where > some of virtio-net features are supported by the vhost kernel to the > machine where they are not supported (packed ring as an example).
I still worry that adding new features will silently disable vhost for people. Can we limit the change to when a VM is migrated in? > Instead of silent masking of the features virtio-net gracefully > disables the vhost at set_features if some features acked by the > guest contradict with kernel vhost capabilities. > > This set of patches also makes get_vhost_net() call (that used > everywhere) to always return actual result, i.e. initially it > returns non-NULL value and from the moment the vhost was disabled > the call will return NULL. Such a way we avoid any unexpected > calls to vhost functions. > Yuri Benditovich (3): > vhost-net: add VIRTIO_NET_F_HASH_REPORT to the list of kernel features > net: add ability to hide (disable) vhost_net > virtio-net: graceful fallback to vhost=off for tap netdev > > hw/net/vhost_net.c | 5 +++- > hw/net/virtio-net.c | 58 ++++++++++++++++++++++++++++++++++++++------- > include/net/net.h | 1 + > 3 files changed, 55 insertions(+), 9 deletions(-) > > -- > 2.17.1