On Sun, Sep 22, 2019 at 01:25:55PM +0200, Ingo Molnar wrote: > > * Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > On Fri, Sep 20, 2019 at 9:35 AM Brendan Higgins > > <brendanhiggins@xxxxxxxxxx> wrote: > > > > > > Sorry about that. I am surprised that none of the other reviewers > > > brought this up. > > > > I think I'm "special". > > > > There was some other similar change a few years ago, which I > > absolutely hated because of how it broke autocomplete for me. Very few > > other people seemed to react to it. > > FWIW, I am obsessively sensitive to autocomplete and overall source code > file hieararchy and nomenclature details as well, so it's not just you. > > Beyond the muscle memory aspect, nonsensical naming and inanely flat file > hierarchies annoy kernel developers and makes it harder for newbies to > understand the kernel source as well. > > The less clutter, the more organization, the better - and there's very > few valid technical reasons to add any new files or directories to the > top level directory - we should probably *remove* quite a few. > > For example 'firmware/' was recently moved to drivers/firmware/, and in a > similar fashion about a third of the remaining 22 directories should > probably be moved too: > > drwxr-xr-x arch > drwxr-xr-x block > drwxr-xr-x certs # move to build/certs/ dir > drwxr-xr-x crypto # move to kernel/crypto/ or security/crypto/ > drwxr-xr-x Documentation > drwxr-xr-x drivers > drwxr-xr-x fs > drwxr-xr-x include > drwxr-xr-x init > drwxr-xr-x ipc # move to kernel/ipc/ > drwxr-xr-x kernel > drwxr-xr-x lib > drwxr-xr-x LICENSES > drwxr-xr-x mm > drwxr-xr-x net > drwxr-xr-x samples # move to Documentation/samples/ > drwxr-xr-x scripts # move to build/scripts/ > drwxr-xr-x security > drwxr-xr-x sound # move to drivers/sound/ > drwxr-xr-x tools > drwxr-xr-x usr # move to build/usr/ > drwxr-xr-x virt # move to the already existing drivers/virt/ > > -rw-r--r-- COPYING > -rw-r--r-- CREDITS > -rw-r--r-- Kbuild > -rw-r--r-- Kconfig > -rw-r--r-- MAINTAINERS > -rw-r--r-- Makefile > -rw-r--r-- README > > There's a few borderline ones: > > - 'block' could in principle move to drivers/block/core/ but it's fine > at the top level too I think. > > - 'init' could in principle be moved to kernel/init/ - but it's not > wrong at the top level either. > > The remaining top level hierarchy would look pretty sweet and short: > > drwxr-xr-x arch > drwxr-xr-x block > drwxr-xr-x build # new > drwxr-xr-x Documentation > drwxr-xr-x drivers > drwxr-xr-x fs > drwxr-xr-x include > drwxr-xr-x init > drwxr-xr-x kernel > drwxr-xr-x lib > drwxr-xr-x LICENSES > drwxr-xr-x mm > drwxr-xr-x net > drwxr-xr-x security > drwxr-xr-x tools > > -rw-r--r-- COPYING > -rw-r--r-- CREDITS > -rw-r--r-- Kbuild > -rw-r--r-- Kconfig > -rw-r--r-- MAINTAINERS > -rw-r--r-- Makefile > -rw-r--r-- README > > I'm volunteering to do this (in a scripted, repeatable, reviewable, > tweakable and "easy to execute in a quiet moment" fashion), although > I also expect you to balk at the churn. :-) I for one would love the above changes. And I'm the one that has to deal with all of the backporting issues that arise with stable backports :) thanks, greg k-h