[PATCH RESEND] ubifs: Introduce a mount option of force_atime.

Dongsheng Yang yangds.fnst at cn.fujitsu.com
Tue Jun 9 20:16:19 PDT 2015


On 06/09/2015 04:02 PM, Richard Weinberger wrote:
> Am 09.06.2015 um 08:36 schrieb Artem Bityutskiy:
>> On Mon, 2015-06-08 at 18:07 +0800, Dongsheng Yang wrote:
>>> Currently, ubifs does not support access time anyway. I understand
>>> that there is a overhead to update inode in each access from user.
>>>
>>> But for the following two reasons, I think we can make it optional
>>> to user.
>>>
>>> (1). More and more flash storage in server are trying to use ubifs,
>>> it is not only for a device such as mobile phone any more, we want
>>> to use it in more and more generic way. Then we need to compete
>>> with some other main filesystems. From this point, access time is
>>> necessary to us, at least as a choice to user currently.
>>>
>>> (2). The default mount option about atime is relatime currently,
>>> it's much relaxy compared with strictatime. Then we don't update
>>> the inode in any accessing. So the overhead is not too much.
>>> It's really acceptable.
>>>
>>> Signed-off-by: Dongsheng Yang <yangds.fnst at cn.fujitsu.com>
>>> ---
>>> 	It's a RESEND patch to cc to fsdevel as Artem suggested.
>>> I would rename force_atime to enable_atime in next version.
>>
>> Why do you need to introduce a custom "force_atime" option if there are
>> already standard "atime" and "noatime" mount option? I am fine with
>> adding atime support to UBIFS in general, and I'd expect this behavior
>> then.
>
> I think the rationale behind force_atime was "I know atime can hurt my NAND and I know what
> I'm doing". :-)
> Such that possible users think of the consequences.

Thanx Richard, Yes, that's my point. :-)

In addition, the atime and noatime are non-fs dependent options.
Then these options would be parsed in userspace and vfs will
get a flags about them. vfs are treating default as atime enabled,
then vfs will set MNT_RELATIME in flags:

2592         /* Default to relatime unless overriden */
2593         if (!(flags & MS_NOATIME))
2594                 mnt_flags |= MNT_RELATIME;

But ubifs is working differently. ubifs disables atime by default.
The problem is, we can not distinguish the following two case
in ubifs.

1. mount -t ubifs ... - MNT_RELATIME in flags
2. mount -t ubifs -o atime - MNT_RELATIME in flags too

In vfs, they are equal. In ubifs, we want different behaviours but we
can not distinguish them.

Therefore, I introduced a new option named as force_atime in ubifs.
That's a ubifs-dependent opiton and it works as a main switch, in
a higher level compared with atime and noatime. If force_atime, we
support the atime-related flags. Otherwise, we don't care about all of
them in flags and don't support atime anyway.

Thanx
Yang

>
> Thanks,
> //richard
> .
>




More information about the linux-mtd mailing list