On Tue, Aug 24, 2021 at 03:44:48PM -0400, Theodore Ts'o wrote: > On Tue, Aug 24, 2021 at 08:23:15PM +0100, Matthew Wilcox wrote: > > > So when you mention "slab" as a name example, that's not the argument > > > you think it is. That's a real honest-to-goodness operating system > > > convention name that doesn't exactly predate Linux, but is most > > > certainly not new. > > > > Sure, but at the time Jeff Bonwick chose it, it had no meaning in > > computer science or operating system design. > > I think the big difference is that "slab" is mostly used as an > internal name. In Linux it doesn't even leak out to the users, since > we use kmem_cache_{create,alloc,free,destroy}(). So the "slab" > doesn't even show up in the API. /proc/slabinfo /proc/sys/vm/min_slab_ratio /sys/kernel/slab include/linux/slab.h cpuset.memory_spread_slab failslab= slab_merge slab_max_order= $ git grep slab fs/ext4 |wc -l 30 (13 of which are slab.h) > The problem is whether we use struct head_page, or folio, or mempages, > we're going to be subsystem users' faces. And people who are using it > every day will eventually get used to anything, whether it's "folio" > or "xmoqax", we sould give a thought to newcomers to Linux file system > code. If they see things like "read_folio()", they are going to be > far more confused than "read_pages()" or "read_mempages()". > > Sure, one impenetrable code word isn't that bad. But this is a case > of a death by a thousand cuts. At $WORK, one time we had welcomed an > intern to our group, I had to stop everyone each time that they used > an acronym, or a codeword, and asked them to define the term. > > It was really illuminating what an insider takes for granted, but when > it's one cutsy codeword after another, with three or more such > codewords in a sentence, it's *really* a less-than-great initial > experience for a newcomer. > > So if someone sees "kmem_cache_alloc()", they can probably make a > guess what it means, and it's memorable once they learn it. > Similarly, something like "head_page", or "mempages" is going to a bit > more obvious to a kernel newbie. So if we can make a tiny gesture > towards comprehensibility, it would be good to do so while it's still > easier to change the name. I completely agree that it's good to use something which is not jargon, or is at least widely-understood jargon. And I loathe acronyms (you'll notice I haven't suggested a single one). Folio/ream/quire/sheaf were all attempts to get across "collection of pages". Another direction would be something that is associated with memory (but I don't have a good example). Or a non-English word (roman? seite? sidor?) We're going to end up with hpage, aren't we?