On Wed, Aug 22, 2018 at 09:56:59AM -0400, Austin S. Hemmelgarn wrote:
> On 2018-08-22 09:48, David Sterba wrote:
> > On Tue, Aug 21, 2018 at 01:01:00PM -0400, Austin S. Hemmelgarn wrote:
> >> On 2018-08-21 12:05, David Sterba wrote:
> >>> On Tue, Aug 21, 2018 at 10:10:04AM -0400, Austin S. Hemmelgarn wrote:
> >>>> On 2018-08-21 09:32, Janos Toth F. wrote:
> >>>>>>>> so pretty much everyone who wants to avoid the overhead from them 
> >>>>>>>> can just
> >>>>>>>> use the `noatime` mount option.
> >>>>>
> >>>>> It would be great if someone finally fixed this old bug then:
> >>>>> https://bugzilla.kernel.org/show_bug.cgi?id=61601
> >>>>> Until then, it seems practically impossible to use both noatime (this
> >>>>> can't be added as rootflag in the command line and won't apply if the
> >>>>> kernel already mounted the root as RW) and space-cache-v2 (has to be
> >>>>> added as a rootflag along with RW to take effect) for the root
> >>>>> filesystem (at least without an init*fs, which I never use, so can't
> >>>>> tell).
> >>>>>
> >>>> Last I knew, it was fixed.  Of course, it's been quite a while since I
> >>>> last tried this, as I run locally patched kernels that have `noatime` as
> >>>> the default instead of `relatime`.
> >>>
> >>> I'm using VMs without initrd, tested the rootflags=noatime and it still
> >>> fails, the same way as in the bugreport.
> >>>
> >>> As the 'noatime' mount option is part of the mount(2) API (passed as a
> >>> bit via mountflags), the remaining option in the filesystem is to
> >>> whitelist the generic options and ignore them. But this brings some
> >>> layering violation question.
> >>>
> >>> On the other hand, this would be come confusing as the user expectation
> >>> is to see the effects of 'noatime'.
> >>>
> >> Ideally there would be a way to get this to actually work properly.  I
> >> think ext4 at least doesn't panic, though I'm not sure if it actually
> >> works correctly.
> > 
> > No, ext4 also refuses to mount, the panic happens in VFS that tries
> > either the rootfstype= or all available filesystems.
> > 
> > [    3.763602] EXT4-fs (sda): Unrecognized mount option "noatime" or 
> > missing value
> > 
> > [    3.761315] BTRFS info (device sda): unrecognized mount option 'noatime'
> > 
> >> Otherwise, the only option for people who want it set is to patch the
> >> kernel to get noatime as the default (instead of relatime).  I would
> >> look at pushing such a patch upstream myself actually, if it weren't for
> >> the fact that I'm fairly certain that it would be immediately NACK'ed by
> >> at least Linus, and probably a couple of other people too.
> > 
> > An acceptable solution could be to parse the rootflags and translate
> > them to the MNT_* values, ie. what the commandline tool mount does
> > before it calls the mount syscall.
> > 
> That would be helpful, but at that point you might as well update the 
> CLI mount tool to just pass all the named options to the kernel and have 
> it do the parsing (I mean, keep the old interface too obviously, but 
> provide a new one and use that preferentially).

The initial mount is not done by the mount tool but internally by
kernel init sequence (files in init/):

mount_block_root
  do_mount_root
    ksys_mount

The mount options (as a string) is passed unchanged via variable
root_mount_data (== rootflags). So before this step, the options would
have to be filtered and all known generic options turned into bit flags.

Reply via email to