All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/5] bonding: rename bond components
@ 2020-09-22 13:37 Jarod Wilson
  2020-09-22 13:37 ` [PATCH net-next 1/5] bonding: rename struct slave member link to link_state Jarod Wilson
                   ` (5 more replies)
  0 siblings, 6 replies; 23+ messages in thread
From: Jarod Wilson @ 2020-09-22 13:37 UTC (permalink / raw)
  To: linux-kernel
  Cc: Jarod Wilson, Jay Vosburgh, Veaceslav Falico, Andy Gospodarek,
	David S. Miller, Jakub Kicinski, Thomas Davis, netdev

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.

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.

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.

See here for further details on Red Hat's commitment to this work:
https://www.redhat.com/en/blog/making-open-source-more-inclusive-eradicating-problematic-language

As far as testing goes, I've manually operated on various bonds while
working on this code, and have run it through multiple lnst test runs,
which exercises the existing sysfs interfaces fairly extensively. As far
as I can tell, there is no breakage of existing interfaces with this
set, unless the user consciously opts to do so via Kconfig.

Jarod Wilson (5):
  bonding: rename struct slave member link to link_state
  bonding: rename slave to link where possible
  bonding: rename master to aggregator where possible
  bonding: make Kconfig toggle to disable legacy interfaces
  bonding: update Documentation for link/aggregator terminology

Cc: Jay Vosburgh <j.vosburgh@gmail.com>
Cc: Veaceslav Falico <vfalico@gmail.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Thomas Davis <tadavis@lbl.gov>
Cc: netdev@vger.kernel.org

 .clang-format                                 |    4 +-
 Documentation/networking/bonding.rst          |  440 ++--
 drivers/infiniband/core/cma.c                 |    2 +-
 drivers/infiniband/core/lag.c                 |    2 +-
 drivers/infiniband/core/roce_gid_mgmt.c       |   10 +-
 drivers/infiniband/hw/mlx4/main.c             |    2 +-
 drivers/net/Kconfig                           |   12 +
 drivers/net/bonding/Makefile                  |    2 +-
 drivers/net/bonding/bond_3ad.c                |  604 ++---
 drivers/net/bonding/bond_alb.c                |  687 ++---
 drivers/net/bonding/bond_debugfs.c            |    2 +-
 drivers/net/bonding/bond_main.c               | 2336 +++++++++--------
 drivers/net/bonding/bond_netlink.c            |  104 +-
 drivers/net/bonding/bond_options.c            |  258 +-
 drivers/net/bonding/bond_procfs.c             |   63 +-
 drivers/net/bonding/bond_sysfs.c              |  249 +-
 drivers/net/bonding/bond_sysfs_link.c         |  193 ++
 drivers/net/bonding/bond_sysfs_slave.c        |  176 --
 .../ethernet/chelsio/cxgb3/cxgb3_offload.c    |    2 +-
 .../net/ethernet/mellanox/mlx4/en_netdev.c    |    4 +-
 .../ethernet/mellanox/mlx5/core/en/rep/bond.c |    2 +-
 .../net/ethernet/mellanox/mlx5/core/en_tc.c   |    2 +-
 .../ethernet/netronome/nfp/flower/lag_conf.c  |    2 +-
 .../ethernet/qlogic/netxen/netxen_nic_main.c  |   12 +-
 include/linux/netdevice.h                     |   20 +-
 include/net/bond_3ad.h                        |   20 +-
 include/net/bond_alb.h                        |   31 +-
 include/net/bond_options.h                    |   19 +-
 include/net/bonding.h                         |  351 +--
 include/net/lag.h                             |    2 +-
 30 files changed, 2902 insertions(+), 2711 deletions(-)
 create mode 100644 drivers/net/bonding/bond_sysfs_link.c
 delete mode 100644 drivers/net/bonding/bond_sysfs_slave.c

-- 
2.27.0


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2020-09-25 12:13 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-22 13:37 [PATCH net-next 0/5] bonding: rename bond components Jarod Wilson
2020-09-22 13:37 ` [PATCH net-next 1/5] bonding: rename struct slave member link to link_state Jarod Wilson
2020-09-22 13:37 ` [PATCH net-next 2/5] bonding: rename slave to link where possible Jarod Wilson
2020-09-22 23:23   ` Michal Kubecek
2020-09-22 23:51     ` David Miller
2020-09-25 11:52       ` Jarod Wilson
2020-09-22 13:37 ` [PATCH net-next 3/5] bonding: rename master to aggregator " Jarod Wilson
2020-09-22 13:37 ` [PATCH net-next 4/5] bonding: make Kconfig toggle to disable legacy interfaces Jarod Wilson
2020-09-22 22:05   ` Jarod Wilson
2020-09-22 23:24   ` Stephen Hemminger
2020-09-22 23:47     ` Jay Vosburgh
2020-09-23  0:01       ` Stephen Hemminger
2020-09-23 16:44         ` Jarod Wilson
2020-09-24 22:47           ` Jay Vosburgh
2020-09-23  4:13   ` kernel test robot
2020-09-23  4:13     ` kernel test robot
2020-09-23  4:13   ` [RFC PATCH] bonding: linkdesc can be static kernel test robot
2020-09-23  4:13     ` kernel test robot
2020-09-23 11:29     ` Jarod Wilson
2020-09-23 11:29       ` Jarod Wilson
2020-09-22 13:37 ` [PATCH net-next 5/5] bonding: update Documentation for link/aggregator terminology Jarod Wilson
2020-09-22 22:19 ` [PATCH net-next 0/5] bonding: rename bond components Jay Vosburgh
2020-09-25 12:13   ` Jarod Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.