On Mon, Apr 17, 2023 at 10:29:59PM -0700, Hugh Dickins wrote: > On Thu, 9 Mar 2023, Luis Chamberlain wrote: > > > Update the docs to reflect a bit better why some folks prefer tmpfs > > over ramfs and clarify a bit more about the difference between brd > > ramdisks. > > > > While at it, add THP docs for tmpfs, both the mount options and the > > sysfs file. > > Okay: the original canonical reference for THP options on tmpfs has > been Documentation/admin-guide/mm/transhuge.rst. You're right that > they would be helpful here too: IIRC (but I might well be confusing > with our Google tree) we used to have them documented in both places, > but grew tired of keeping the two in synch. You're volunteering to > do so! so please check now that they tell the same story. Hehe. Sure, we should just make one point to the other. Which one should be the authoritive source? > But nowadays, "man 5 tmpfs" is much more important (and that might > give you a hint for what needs to be done after this series goes into > 6.4-rc - and I wonder if there are tmpfs manpage updates needed from > Christian for idmapped too? or already taken care of?). Sure, what's the man page git tree to use? I can do that once these documents are settled as well. I'll send fixes. > There's a little detail we do need you to remove, indicated below. > > > +====== ============================================================ > > +huge=0 never: disables huge pages for the mount > > +huge=1 always: enables huge pages for the mount > > +huge=2 within_size: only allocate huge pages if the page will be > > + fully within i_size, also respect fadvise()/madvise() hints. > > +huge=3 advise: only allocate huge pages if requested with > > + fadvise()/madvise() > > You're taking the source too literally there. Minor point is that there > is no fadvise() for this, to date anyway. Major point is: have you tried > mounting tmpfs with huge=0 etc? I did propose "huge=0" and "huge=1" years > ago, but those "never" went in, it's "always" been the named options. > Please remove those misleading numbers, it's "huge=never" etc. Will do. > > +== ============================================================ > > +-1 deny: disables huge on shm_mnt and all mounts, for > > + emergency use > > +-2 force: enables huge on shm_mnt and all mounts, w/o needing > > + option, for testing > > Likewise here, please delete the invalid "-1" and "-2" notations, > -1 and -2 are just #defines for use in the kernel source. ok! > And the description above is not quite accurate: it is very hard to > describe shmem_enabled, partly because it combines two different things. > It's partly the "huge=" mount option for any "internal mount", those > things like SysV SHM and memfd and i915 and shared-anonymous: the shmem > which has no user-visible mount to hold the option. But also these > "deny" and "force" overrides affecting *all* internal and visible mounts. I see thanks. Luis