Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1058446pxk; Fri, 25 Sep 2020 05:17:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzir1waK23E77De3tOQ/AgLwOd5SqDEW565BQEQZlzcsrhWz+Bcr0awS0zcnz1l+3Syj48i X-Received: by 2002:a05:6402:50f:: with SMTP id m15mr1011520edv.41.1601036240191; Fri, 25 Sep 2020 05:17:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601036240; cv=none; d=google.com; s=arc-20160816; b=M0jbFk4KOvL868eCSKJ1IdeSIOon4dremVGsxMmUrlI2KlsAbY0KZLBeMpkrrpIIkl 6X+7VqnVwzpDbRQypVs0ixNyvgq3qXA2wJ149MWn0hNKMGqg3/56dE+XIUoHKW/+s5FI yayQEiXiZ8pRZyRxVvRGq+xJNLWK7aSv/wyUziwaji0JUL2IiHfZbPCt0JuASErgifJa e5weSD4DFcphld9ZqEBIRCBY32tFqC12JW5NOx2vB6ob5ca5h0OViY/Vx1mmsdnH7pDI zq8R+KtWKvEFc8ofjQFBOyMJag5d3bm8ilQ3js7WpQPV7JPHOzvSQ7RPFopDiA4uL25Z 20YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=9aKCeIUiQec4vK5wcBZEU6AS+RDJQHHmHHdQS8z/cKw=; b=wBxqK0q+cwA7quxdNi8cqzxk6+FRnMIRucjYvSTZAkCqgVW3RJB0OYp1FSUgDNAie5 MzuZx0RyD+VFhQ96u7fpA4w+Ma8gt7HVV6BAV6BrjtDm9iwbpiANqYGwDgso9RQsrIWa WOge5E7b3xnN8J5y+oM31OEnKFRm7j9loOCuKxQgxnqXQ2BrS0HEN5shWOsAEhj9W1O7 tC62P/q80tG9X/ZAGBtSnd2lrw6O6FAgZYBkMdQMgg2gTGqRVKX0osaLE7/11vNF/quv d7hFm/wxeu2f4f1gZr40jcFBXNJa31ctA3YGn9NUR3JpJt5uhKLBeb35beN5W3qVWQ/L OVqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=L74l5Mjc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f3si1741924ejt.743.2020.09.25.05.16.56; Fri, 25 Sep 2020 05:17:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=L74l5Mjc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728381AbgIYMNl (ORCPT + 99 others); Fri, 25 Sep 2020 08:13:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:40507 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726368AbgIYMNk (ORCPT ); Fri, 25 Sep 2020 08:13:40 -0400 Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1601036018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9aKCeIUiQec4vK5wcBZEU6AS+RDJQHHmHHdQS8z/cKw=; b=L74l5MjcOwWcbpp6+u3RcRb3yyV47qA0fkmyjMWWuQ6Io49APjTwrVKZSh/XjE1OKyjjeN /VhsWk/UTUMLfu/LqPdFQvURD3ClJb7YMFLZnmB2mwk3lrT5VivoP68478a8s8rh03YPtf 7UzKxUsi+uCefja42MFW8RrwUksoH9E= Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-157-J9QVNKOCMrmRaQiD3oYAmg-1; Fri, 25 Sep 2020 08:13:36 -0400 X-MC-Unique: J9QVNKOCMrmRaQiD3oYAmg-1 Received: by mail-oo1-f70.google.com with SMTP id h2so1177088oop.10 for ; Fri, 25 Sep 2020 05:13:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9aKCeIUiQec4vK5wcBZEU6AS+RDJQHHmHHdQS8z/cKw=; b=LpZL7OZtwRbnMHRuW2LfrQEKchm/mAU5zsqQkZg6erKN31DghYsA+ActLNH4U4yvg6 q9PlXY/SogGmBINz+4HXCBXv740XuttRNKjIIdeUvzMRheaCSG31wN8k1HxnzjAz5LEf ZffiJFyCDBKOX+Ea4Wrpwblp8HcdgP9UJihyDXLwg6s1oTofYla9hwet6jr8QusU0Eqp 0Jkbge1+2DP9x3MJpgt7HNz3vbYm4NMPO6GXEuYsHGfw92slFWdRlAUViyUPBnl0BwoX BNfZnQqxDqCPwJ3r4LD0VeBHKzihdqn7hb08T+1Xoli6LTgGzoEQyfoPHGEfJ5kriLOB Hlqw== X-Gm-Message-State: AOAM531NZbu11swFGRl3uv/oxY5q+Lf5MvZ5Fp1bfYIfsFUC/EngFnsR W7BnxGqt/BMhWIOEL5XKl18EOg0sFG4DAHRnRrKnD6UMJeZCxvZxnelPnhd3yLoK9OkzylR3eJA G3h2Q4XVQO8FOFKIKw8yfVZU9s4li+SA/dBuylJdT X-Received: by 2002:a9d:3ca:: with SMTP id f68mr54443otf.330.1601036015807; Fri, 25 Sep 2020 05:13:35 -0700 (PDT) X-Received: by 2002:a9d:3ca:: with SMTP id f68mr54429otf.330.1601036015525; Fri, 25 Sep 2020 05:13:35 -0700 (PDT) MIME-Version: 1.0 References: <20200922133731.33478-1-jarod@redhat.com> <14715.1600813163@famine> In-Reply-To: <14715.1600813163@famine> From: Jarod Wilson Date: Fri, 25 Sep 2020 08:13:24 -0400 Message-ID: Subject: Re: [PATCH net-next 0/5] bonding: rename bond components To: Jay Vosburgh Cc: LKML , Veaceslav Falico , Andy Gospodarek , "David S. Miller" , Jakub Kicinski , Thomas Davis , Netdev Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 22, 2020 at 6:19 PM Jay Vosburgh wrote: > > Jarod Wilson wrote: > > >The bonding driver's use of master and slave, while largely understood > >in technical circles, poses a barrier for inclusion to some potential > >members of the development and user community, due to the historical > >context of masters and slaves, particularly in the United States. This > >is a first full pass at replacing those phrases with more socially > >inclusive ones, opting for aggregator to replace master and link to > >replace slave, as the bonding driver itself is a link aggregation > >driver. > > First, I think there should be some direction from the kernel > development leadership as to whether or not this type of large-scale > search and replace of socially sensitive terms of art or other > terminology is a task that should be undertaken, given the noted issues > it will cause in stable release maintenance going forwards. Admittedly, part of the point of this patch is to help drive such conversations. Having a concrete example of how these changes would look makes it easier to discuss, I think. I understand the burden here, though as you noted later, bonding doesn't really churn that much, so in this specific case, the maintenance load wouldn't be terrible, and I think worth it in this case, from a social standpoint. I know this can start to get political and personal real fast though... > Second, on the merits of the proposed changes (presuming for the > moment that this goes forward), I would prefer different nomenclature > that does not reuse existing names for different purposes, i.e., "link" > and "aggregator." > > Both of those have specific meanings in the current code, and > old kernels will retain that meaning. Changing them to have new > meanings going forward will lead to confusion, in my opinion for no good > reason, as there are other names suited that do not conflict. > > For example, instead of "master" call everything a "bond," which > matches common usage in discussion. Changing "master" to "aggregator," > the replacement results in cumbersome descriptions like "the > aggregator's active aggregator" in the context of LACP. > > A replacement term for "slave" is trickier; my first choice > would be "port," but that may make more churn from a code change point > of view, although struct slave could become struct bond_port, and leave > the existing struct port for its current LACP use. I did briefly have the idea of renaming 'port' in the LACP code to 'lacp_port', which would allow reuse of 'port', and would then be consistent with the team driver (and bridge driver, iirc). I could certainly pursue that option, or try going with "bond_port", but I'd like something so widely used throughout the code to be shorter if possible, I think. It really is LACP that throws a wrench into most sensible naming schemes I could think of. Simply renaming current "master" to "bond" does make a fair bit of sense though, didn't really occur to me. But replacing "slave" is definitely the far more involved and messy one. > >There are a few problems with this change. First up, "link" is used for > >link state already in the bonding driver, so the first step here is to > >rename link to link_state. Second, aggregator is already used in the > >802.3ad code, but I feel the usage is actually consistent with referring > >to the bonding aggregation virtual device as the aggregator. Third, we > >have the issue of not wanting to break any existing userspace, which I > >believe this patchset accomplishes, while also adding alternative > >interfaces using new terminology, and a Kconfig option that will let > >people make the conscious decision to break userspace and no longer > >expose the original master/slave interfaces, once their userspace is > >able to cope with their removal. > > I'm opposed to the Kconfig option because it will lead to > balkanization of the UAPI, which would be worse than a clean break > (which I'm also opposed to). I suspected this might be a point of contention. Easy enough to simply omit that bit from the series, if that's the consensus. > >Lastly, we do still have the issue of ease of backporting fixes to > >-stable trees. I've not had a huge amount of time to spend on it, but > >brief forays into coccinelle didn't really pay off (since it's meant to > >operate on code, not patches), and the best solution I can come up with > >is providing a shell script someone could run over git-format-patch > >output before git-am'ing the result to a -stable tree, though scripting > >these changes in the first place turned out to be not the best thing to > >do anyway, due to subtle cases where use of master or slave can NOT yet > >be replaced, so a large amount of work was done by hand, inspection, > >trial and error, which is why this set is a lot longer in coming than > >I'd originally hoped. I don't expect -stable backports to be horrible to > >figure out one way or another though, and I don't believe that a bit of > >inconvenience on that front is enough to warrant not making these > >changes. > > I'm skeptical that, given the scope of the changes involved, > that it's really feasible to have effective automated massaging of > patches. I think the reality is that a large fraction of the bonding > fixes in the future will have to be backported entirely by hand. The > only saving grace here is that the quantity of such patches is generally > low (~40 in 2020 year to date). Yeah, requiring manual backporting by hand is a very distinct possibility. As noted, such patches are usually pretty low in number, and I'll note that they're also generally fairly small patches too. I would be happy to help with any manual backporting as well, as a consolation if scripting them doesn't really work out. -- Jarod Wilson jarod@redhat.com