On 11/27/24 20:34, Laine Stump wrote: > For the full history behind this patch, look at the following: > > https://issues.redhat.com/browse/RHEL-7036 > commit v10.7.0-101-ga37bd2a15b > commit v10.8.0-rc2-8-gbcd5ae4e73 > > Summary: original problem was unexpected failure of update-device when > the user hadn't changed anything other than online status of the guest > NIC (which should always be allowed). > > The first commit "fixed" this by avoiding the allocation of a new > ActualNetDef (i.e. creating a new networkport) for *all* network > device updates (because that was inappropriately changing which > ethernet physdev should be used for a macvtap connection, which by > design can't be handled in an update-device). > > But this commit caused a regression for update-device of bridge-based > network devices (because some the updates of certain attributes *do* > require the ActualNetDef be re-allocated), so... > > The 2nd commit narrowed the list of network types that get the "don't > allocate new ActualNetDef" treatment (so that only interfaces > connected to a network that uses a pool of ethernet VFs *being used in > passthrough mode* qualify). > > But then it was pointed out that this re-broke simple updates of > devices that used a direct/macvtap network in "bridge" mode (because > it's possible to list multiple physdevs to use for bridge mode, in > which case the network driver attempts to "load balance" (and so a new > allocation might have a different ethernet physdev which, again, can't > be supported in a device-update). > > So this (single line of code) patch *widens* the list of network types > that don't allocate a new ActualNetDef to also include the other > direct (macvtap) modes, e.g. bridge, private, etc. > > Signed-off-by: Laine Stump <laine@xxxxxxxxxx> > --- > > There is a more comprehensive fix that also, e.g., makes updating the > bandwidth or vlan info of a direct interface work correctly, but that > is much more invasive (and also isn't done yet). This patch fixes the > case of updating a direct interface's online status (for example) > without breaking anything else. > > src/qemu/qemu_hotplug.c | 38 +++++++++++++++++++++----------------- > 1 file changed, 21 insertions(+), 17 deletions(-) Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Sorry for letting this miss the release. Michal