Michael S. Tsirkin
2018-May-22 13:17 UTC
[PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
On Tue, May 22, 2018 at 03:14:22PM +0200, Jiri Pirko wrote:> Tue, May 22, 2018 at 03:12:40PM CEST, mst at redhat.com wrote: > >On Tue, May 22, 2018 at 11:08:53AM +0200, Jiri Pirko wrote: > >> Tue, May 22, 2018 at 11:06:37AM CEST, jiri at resnulli.us wrote: > >> >Tue, May 22, 2018 at 04:06:18AM CEST, sridhar.samudrala at intel.com wrote: > >> >>Use the registration/notification framework supported by the generic > >> >>failover infrastructure. > >> >> > >> >>Signed-off-by: Sridhar Samudrala <sridhar.samudrala at intel.com> > >> > > >> >In previous patchset versions, the common code did > >> >netdev_rx_handler_register() and netdev_upper_dev_link() etc > >> >(netvsc_vf_join()). Now, this is still done in netvsc. Why? > >> > > >> >This should be part of the common "failover" code. > >> > > >> > >> Also note that in the current patchset you use IFF_FAILOVER flag for > >> master, yet for the slave you use IFF_SLAVE. That is wrong. > >> IFF_FAILOVER_SLAVE should be used. > > > >Or drop IFF_FAILOVER_SLAVE and set both IFF_FAILOVER and IFF_SLAVE? > > No. IFF_SLAVE is for bonding.What breaks if we reuse it for failover? -- MST
Jiri Pirko
2018-May-22 13:26 UTC
[PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
Tue, May 22, 2018 at 03:17:37PM CEST, mst at redhat.com wrote:>On Tue, May 22, 2018 at 03:14:22PM +0200, Jiri Pirko wrote: >> Tue, May 22, 2018 at 03:12:40PM CEST, mst at redhat.com wrote: >> >On Tue, May 22, 2018 at 11:08:53AM +0200, Jiri Pirko wrote: >> >> Tue, May 22, 2018 at 11:06:37AM CEST, jiri at resnulli.us wrote: >> >> >Tue, May 22, 2018 at 04:06:18AM CEST, sridhar.samudrala at intel.com wrote: >> >> >>Use the registration/notification framework supported by the generic >> >> >>failover infrastructure. >> >> >> >> >> >>Signed-off-by: Sridhar Samudrala <sridhar.samudrala at intel.com> >> >> > >> >> >In previous patchset versions, the common code did >> >> >netdev_rx_handler_register() and netdev_upper_dev_link() etc >> >> >(netvsc_vf_join()). Now, this is still done in netvsc. Why? >> >> > >> >> >This should be part of the common "failover" code. >> >> > >> >> >> >> Also note that in the current patchset you use IFF_FAILOVER flag for >> >> master, yet for the slave you use IFF_SLAVE. That is wrong. >> >> IFF_FAILOVER_SLAVE should be used. >> > >> >Or drop IFF_FAILOVER_SLAVE and set both IFF_FAILOVER and IFF_SLAVE? >> >> No. IFF_SLAVE is for bonding. > >What breaks if we reuse it for failover?This is exposed to userspace. IFF_SLAVE is expected for bonding slaves. And failover slave is not a bonding slave.
Michael S. Tsirkin
2018-May-22 13:39 UTC
[PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
On Tue, May 22, 2018 at 03:26:26PM +0200, Jiri Pirko wrote:> Tue, May 22, 2018 at 03:17:37PM CEST, mst at redhat.com wrote: > >On Tue, May 22, 2018 at 03:14:22PM +0200, Jiri Pirko wrote: > >> Tue, May 22, 2018 at 03:12:40PM CEST, mst at redhat.com wrote: > >> >On Tue, May 22, 2018 at 11:08:53AM +0200, Jiri Pirko wrote: > >> >> Tue, May 22, 2018 at 11:06:37AM CEST, jiri at resnulli.us wrote: > >> >> >Tue, May 22, 2018 at 04:06:18AM CEST, sridhar.samudrala at intel.com wrote: > >> >> >>Use the registration/notification framework supported by the generic > >> >> >>failover infrastructure. > >> >> >> > >> >> >>Signed-off-by: Sridhar Samudrala <sridhar.samudrala at intel.com> > >> >> > > >> >> >In previous patchset versions, the common code did > >> >> >netdev_rx_handler_register() and netdev_upper_dev_link() etc > >> >> >(netvsc_vf_join()). Now, this is still done in netvsc. Why? > >> >> > > >> >> >This should be part of the common "failover" code. > >> >> > > >> >> > >> >> Also note that in the current patchset you use IFF_FAILOVER flag for > >> >> master, yet for the slave you use IFF_SLAVE. That is wrong. > >> >> IFF_FAILOVER_SLAVE should be used. > >> > > >> >Or drop IFF_FAILOVER_SLAVE and set both IFF_FAILOVER and IFF_SLAVE? > >> > >> No. IFF_SLAVE is for bonding. > > > >What breaks if we reuse it for failover? > > This is exposed to userspace. IFF_SLAVE is expected for bonding slaves. > And failover slave is not a bonding slave.That does not really answer the question. I'd claim it's sufficiently like a bond slave for IFF_SLAVE to make sense. In fact you will find that netvsc already sets IFF_SLAVE, and so does e.g. the eql driver. The advantage of using IFF_SLAVE is that userspace knows to skip it. If we don't set IFF_SLAVE existing userspace tries to use the lowerdev. -- MST
Reasonably Related Threads
- [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
- [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
- [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
- [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework
- [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework