[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171220143140.0a3dc7f1@cakuba.netronome.com>
Date: Wed, 20 Dec 2017 14:33:34 -0800
From: Jakub Kicinski <jakub.kicinski@...ronome.com>
To: Sridhar Samudrala <sridhar.samudrala@...el.com>
Cc: mst@...hat.com, stephen@...workplumber.org, netdev@...r.kernel.org,
virtualization@...ts.linux-foundation.org,
alexander.duyck@...il.com
Subject: Re: [RFC PATCH] virtio_net: Extend virtio to use VF datapath when
available
On Mon, 18 Dec 2017 16:40:36 -0800, Sridhar Samudrala wrote:
> +static int virtio_netdev_event(struct notifier_block *this,
> + unsigned long event, void *ptr)
> +{
> + struct net_device *event_dev = netdev_notifier_info_to_dev(ptr);
> +
> + /* Skip our own events */
> + if (event_dev->netdev_ops == &virtnet_netdev)
> + return NOTIFY_DONE;
I wonder how does this work WRT loop prevention. What if I have two
virtio devices with the same MAC, what is preventing them from claiming
each other? Is it only the check above (not sure what is "own" in
comment referring to)?
I'm worried the check above will not stop virtio from enslaving hyperv
interfaces and vice versa, potentially leading to a loop, no? There is
also the fact that it would be preferable to share the code between
paravirt drivers, to avoid duplicated bugs.
My suggestion during the previous discussion was to create a paravirt
bond device, which will explicitly tell the OS which interfaces to
bond, regardless of which driver they're using. Could be some form of
ACPI/FW driver too, I don't know enough about x86 FW to suggest
something fully fleshed :(
Powered by blists - more mailing lists