On 7/7/23 15:59, David Marchand wrote:
At some point in OVS history, some virtio features were announced as
supported (ECN and UFO virtio features).

The userspace TSO code, which has been added later, does not support
those features and tries to disable them.

This breaks OVS upgrades: if an existing VM already negotiated such
features, their lack on reconnection to an upgraded OVS triggers a
vhost socket disconnection by Qemu.
This results in an endless loop because Qemu then retries with the same
set of virtio features.

This patch proposes to try and detect those vhost socket disconnection
and fallback restoring the old virtio features (and disabling TSO for this
vhost port).

Acked-by: Mike Pattrick <m...@redhat.com>
Acked-by: Simon Horman <simon.hor...@corigine.com>
Signed-off-by: David Marchand <david.march...@redhat.com>
---
Changelog since v5:
- fixed coding style,

Changelog since v4:
- I kept acks as the logic behind the state machine did not change much,
- fixed indent of enumeration in documentation,
- used status:<field> in documentation instead of grep -o,
- renamed "disabled_tso" as "userspace-tso",
- switched to a state machine with flags,
- removed note on byte padding in netdev_dpdk struct,

Changelog since v3:
- updated documentation now that the interface offloads status is reported
   in ovsdb,
- fixed one coding style issue,

Changelog since v2:
- reported workaround presence in the ovsdb port status field and
   updated documentation accordingly,
- tried to use "better" names, to distinguish ECN virtio feature from
   TSO OVS netdev feature,

Changelog since v1:
- added a note in the documentation,
- fixed vhost unregister trigger (so that both disabling and re-enabling
   TSO is handled),
- cleared netdev features when disabling TSO,
- changed level and ratelimited log message on vhost socket disconnect,

---
  Documentation/topics/userspace-tso.rst |  26 ++++++-
  lib/netdev-dpdk.c                      | 100 ++++++++++++++++++++++++-
  2 files changed, 120 insertions(+), 6 deletions(-)


Acked-by: Maxime Coquelin <maxime.coque...@redhat.com>

Thanks,
Maxime

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to