Re: [PATCH v2] CodingStyle: Inclusive Terminology

From: Kees Cook
Date: Wed Jul 08 2020 - 04:22:33 EST


On Wed, Jul 08, 2020 at 12:23:59AM -0700, Dan Williams wrote:
> Linux maintains a coding-style and its own idiomatic set of terminology.
> Update the style guidelines to recommend replacements for the terms
> master/slave and blacklist/whitelist.
>
> Link: http://lore.kernel.org/r/159389297140.2210796.13590142254668787525.stgit@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Cc: Jonathan Corbet <corbet@xxxxxxx>
> Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Acked-by: Dave Airlie <airlied@xxxxxxxxxx>
> Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
> Acked-by: SeongJae Park <sjpark@xxxxxxxxx>
> Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
> Signed-off-by: Chris Mason <clm@xxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
> Changes since v1 [1]
> - Drop inclusive-terminology.rst, it is in the lore archives if the
> arguments are needed for future debates, but otherwise no pressing
> need to carry it in the tree (Linus, James)
>
> - Update the recommended terms to include replacement for 'master' and
> 'whitelist' (Kees, Andy)
>
> - Add 'target' as a replacement (Andy)
>
> - Add 'device' as a replacement (Mark)
>
> - Collect acks and signed-off-bys. Yes, the sign-offs are not reflective
> of a submission chain, but I kept "Signed-off-by" if people offered
> it.

In that case, I will "upgrade" my Ack. ;)

Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>

:)

> - Non-change: I did not add explicit language as to what to do with
> existing usages. My personal inclination is to prioritize this
> coding-style cleanup higher than others, but the coding-style document
> has typically not indicated policy on how cleanups are handled by
> subsystems. It will be a case by case effort and consideration.

While I'd like to have published guidance on fixing existing language
(which is already underway[1]), I agree: let's start here.

> [...]
> +For symbol names, avoid introducing new usage of 'master/slave' (or

For symbol names, comments, documentation, and other language, avoid
introducing ...

> +'slave' independent of 'master') and 'blacklist/whitelist'. Recommended
> +replacements for 'master/slave' are: 'main/{secondary,subordinate}',
> +'primary/replica', '{initiator,requester}/{target,responder}',

the main and primary should be merged, IMO:

'{primary,main}/{secondary,replica,subordinate}'

> +'host/{device,proxy}', or 'leader/{performer,follower}'. Recommended

leader/performer does not track for me. Split it out?

'leader/follower', 'director/performer'

I have also seen:

'controller/worker'

Thanks!

-Kees

[1] https://lore.kernel.org/lkml/20200630174123.GA1906678@xxxxxxxxx/
https://lore.kernel.org/lkml/20200701171555.3198836-1-gregkh@xxxxxxxxxxxxxxxxxxx/

--
Kees Cook