From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [PATCH net-next v11 2/5] netvsc: refactor notifier/event handling code to use the failover framework Date: Tue, 22 May 2018 17:13:43 +0200 Message-ID: <20180522151343.GJ2149@nanopsycho> References: <1526954781-35359-1-git-send-email-sridhar.samudrala@intel.com> <1526954781-35359-3-git-send-email-sridhar.samudrala@intel.com> <20180522090637.GE2149@nanopsycho> <20180522090853.GF2149@nanopsycho> <20180522161007-mutt-send-email-mst@kernel.org> <20180522131422.GG2149@nanopsycho> <20180522161509-mutt-send-email-mst@kernel.org> <20180522132626.GH2149@nanopsycho> <20180522163502-mutt-send-email-mst@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Sridhar Samudrala , stephen@networkplumber.org, davem@davemloft.net, netdev@vger.kernel.org, virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org, jesse.brandeburg@intel.com, alexander.h.duyck@intel.com, kubakici@wp.pl, jasowang@redhat.com, loseweigh@gmail.com, aaron.f.brown@intel.com, anjali.singhai@intel.com To: "Michael S. Tsirkin" Return-path: Received: from mail-wm0-f66.google.com ([74.125.82.66]:37990 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751308AbeEVPNx (ORCPT ); Tue, 22 May 2018 11:13:53 -0400 Received: by mail-wm0-f66.google.com with SMTP id m129-v6so766112wmb.3 for ; Tue, 22 May 2018 08:13:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180522163502-mutt-send-email-mst@kernel.org> Sender: netdev-owner@vger.kernel.org List-ID: Tue, May 22, 2018 at 03:39:33PM CEST, mst@redhat.com wrote: >On Tue, May 22, 2018 at 03:26:26PM +0200, Jiri Pirko wrote: >> Tue, May 22, 2018 at 03:17:37PM CEST, mst@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@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@resnulli.us wrote: >> >> >> >Tue, May 22, 2018 at 04:06:18AM CEST, sridhar.samudrala@intel.com wrote: >> >> >> >>Use the registration/notification framework supported by the generic >> >> >> >>failover infrastructure. >> >> >> >> >> >> >> >>Signed-off-by: Sridhar Samudrala >> >> >> > >> >> >> >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 netvsc does the whole failover thing in a wrong way. This patchset is trying to fix it. >does e.g. the eql driver. > >The advantage of using IFF_SLAVE is that userspace knows to skip it. If The userspace should know how to skip other types of slaves - team, bridge, ovs, etc. The "master link" should be the one to look at. >we don't set IFF_SLAVE existing userspace tries to use the lowerdev. Each master type has a IFF_ master flag and IFF_ slave flag. In private flag. I don't see no reason to break this pattern here.