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(a)redhat.com>
> ---
>
> 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(a)redhat.com>
Sorry for letting this miss the release.
Not a big problem; I'm guessing that not many people actually use the
specific configuration this patch targets, and among those even fewer
will need to be externally fiddling with the guest interfaces' online
status. It will still be good to have the patch in there - even if/when
I get the more comprehensive fix pushed, someone may need this simpler
fix backported to a prior release.
Thanks for the review!