All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
To: <dedekind1@gmail.com>
Cc: linux-fsdevel@vger.kernel.org,
	Richard Weinberger <richard@nod.at>,
	linux-mtd@lists.infradead.org, adrian.hunter@intel.com
Subject: Re: [PATCH RESEND] ubifs: Introduce a mount option of force_atime.
Date: Tue, 23 Jun 2015 17:55:36 +0800	[thread overview]
Message-ID: <55892D18.3020203@cn.fujitsu.com> (raw)
In-Reply-To: <1433934324.14092.15.camel@sauron.fi.intel.com>

On 06/10/2015 07:05 PM, Artem Bityutskiy wrote:
> On Wed, 2015-06-10 at 18:34 +0800, Dongsheng Yang wrote:
>> On 06/10/2015 06:25 PM, Artem Bityutskiy wrote:
>>> On Wed, 2015-06-10 at 18:10 +0800, Dongsheng Yang wrote:
>>>> On 06/10/2015 05:21 PM, Artem Bityutskiy wrote:
>>>>> On Wed, 2015-06-10 at 11:16 +0800, Dongsheng Yang wrote:
>>>>>> 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.
>>>>>
>>>>> How bad is it to just default to relatime like other file-systems do,
>>>>> comparing to what we have now?
>>>>
>>>> Ha, yes, that's a problem. I read it from wiki that the author think
>>>> it's bad for ubifs. But I did not do a measure about it.
>>>
>>> Since I am one of the authors, I think we were mostly looking at the
>>> full atime support, and did not really look at relatime.
>>>
>>>> In theory, yes, lots of writing would damage the flash. So I think
>>>> just make it optional to user is a flexible way to do it. Even we
>>>> want to make the default to relatime, I think it's better to keep
>>>> the compatibility for a period and provide a force_atime to user.
>>>>
>>>> When lots of users said "okey, we are mostly choosing force_atime in our
>>>> use cases.". I believe that's a safe way to make ubifs supporting
>>>> atime by default.
>>>
>>> Let me make a step back. So what I hear is that the problem is that you
>>> cannot find the original mount options. For example, when you see the
>>> MNT_RELATIME flag, you do not know whether it was specified by the user
>>> or it was VFS adding this flag. Is this correct?
>>>
>>> If it is correct, then I think we need to look at a VFS-level solution.
>>> If the above is the only problem, then I'd say that introducing a custom
>>> "force_atime" is a work-around for VFS limitations.
>>
>> That's correct. Yes, I really want to solve it in vfs at first. But
>> later, just submited this patch as a Problem-solved for us. Because I
>> thought the force_atime would disappear when we decide to support
>> atime by default in future.
>>
>> Besides a change in VFS would cause more discussion, after a trade-off,
>> I submitted this patch for ubifs. :)
>>
>> But yes, there is really, at leat, a TODO entry for VFS in this
>> scenario I think. If you think we need to do it rather than a
>> work-around as what this patch did. I will think a better way
>> in VFS for that. :)
>
> Yes, I think a custom mount option should be the last resort solution,
> for the case when other options failed.
>
> One way would be to push this assignment down to individual
> file-systems. Another way would be to have the original flags preserved
> and passed to the file-system.
>
> May be you can find a better way.

Hi Artem, sorry for the late.

After the last discussion, I have been focus on some other work. But
when I came back to this topic today, I found I was wrong. Even in vfs,
unfortunately, we can not distinguish the use case 1 and 2:

1. mount -t ubifs ... - (flags & MS_NOATIME) == 0
2. mount -t ubifs -o atime - (flags & MS_NOATIME) == 0
3. mount -t ubifs -o noatime - (flags & MS_NOATIME) == 1

There is no MS_ATIME defined in vfs to be used for -o atime specified.
We can only find out the case 3 by the flags in kernel space.
That means, the information what we want for this topic only exists in
util-linux in user-space. util-linux make the Default equal to -o atime.

Then there are two ways to do it:
a), introduce a MS_ATIME and file_system_type::parse_options to vfs.
	It's a little costly. MS_ATIME would be used to make kernel
	to be aware of the atime option. parse_options() could be used
	to make file system to be in charge of parsing the standard
	options and set the default value.

	parse_options() is a common requirement, but the 	
	MS_ATIME looks much arguable.
	
b), introduce a force_atime to ubifs as what my patch is doing here.
	1), If we really need to know atime option in vfs, I propose to
	    experiment it in ubifs at first. If the force_atime works
	    well and looks useful to some other file system. Then we can
	    consider to introduce MS_ATIME to vfs. So, force_atime could
	    be treat as an experiment for MS_ATIME.
	2), As we talked before, I think force_atime is a flexible way
	    to change the default value to relatime or future lazytime.
	    Then I believe it's better to make the radialization
	    limited in ubifs.

c), change the default behaviour of ubifs to support atime immediately.
	That's rough and risky but most easy way to do it.

In short, I think force_atime to ubifs is the choice from my opinion.

What do you think about it?

Thanx
Yang
>
> .
>

WARNING: multiple messages have this Message-ID (diff)
From: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
To: <dedekind1@gmail.com>
Cc: Richard Weinberger <richard@nod.at>,
	<linux-mtd@lists.infradead.org>, <adrian.hunter@intel.com>,
	<linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH RESEND] ubifs: Introduce a mount option of force_atime.
Date: Tue, 23 Jun 2015 17:55:36 +0800	[thread overview]
Message-ID: <55892D18.3020203@cn.fujitsu.com> (raw)
In-Reply-To: <1433934324.14092.15.camel@sauron.fi.intel.com>

On 06/10/2015 07:05 PM, Artem Bityutskiy wrote:
> On Wed, 2015-06-10 at 18:34 +0800, Dongsheng Yang wrote:
>> On 06/10/2015 06:25 PM, Artem Bityutskiy wrote:
>>> On Wed, 2015-06-10 at 18:10 +0800, Dongsheng Yang wrote:
>>>> On 06/10/2015 05:21 PM, Artem Bityutskiy wrote:
>>>>> On Wed, 2015-06-10 at 11:16 +0800, Dongsheng Yang wrote:
>>>>>> 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.
>>>>>
>>>>> How bad is it to just default to relatime like other file-systems do,
>>>>> comparing to what we have now?
>>>>
>>>> Ha, yes, that's a problem. I read it from wiki that the author think
>>>> it's bad for ubifs. But I did not do a measure about it.
>>>
>>> Since I am one of the authors, I think we were mostly looking at the
>>> full atime support, and did not really look at relatime.
>>>
>>>> In theory, yes, lots of writing would damage the flash. So I think
>>>> just make it optional to user is a flexible way to do it. Even we
>>>> want to make the default to relatime, I think it's better to keep
>>>> the compatibility for a period and provide a force_atime to user.
>>>>
>>>> When lots of users said "okey, we are mostly choosing force_atime in our
>>>> use cases.". I believe that's a safe way to make ubifs supporting
>>>> atime by default.
>>>
>>> Let me make a step back. So what I hear is that the problem is that you
>>> cannot find the original mount options. For example, when you see the
>>> MNT_RELATIME flag, you do not know whether it was specified by the user
>>> or it was VFS adding this flag. Is this correct?
>>>
>>> If it is correct, then I think we need to look at a VFS-level solution.
>>> If the above is the only problem, then I'd say that introducing a custom
>>> "force_atime" is a work-around for VFS limitations.
>>
>> That's correct. Yes, I really want to solve it in vfs at first. But
>> later, just submited this patch as a Problem-solved for us. Because I
>> thought the force_atime would disappear when we decide to support
>> atime by default in future.
>>
>> Besides a change in VFS would cause more discussion, after a trade-off,
>> I submitted this patch for ubifs. :)
>>
>> But yes, there is really, at leat, a TODO entry for VFS in this
>> scenario I think. If you think we need to do it rather than a
>> work-around as what this patch did. I will think a better way
>> in VFS for that. :)
>
> Yes, I think a custom mount option should be the last resort solution,
> for the case when other options failed.
>
> One way would be to push this assignment down to individual
> file-systems. Another way would be to have the original flags preserved
> and passed to the file-system.
>
> May be you can find a better way.

Hi Artem, sorry for the late.

After the last discussion, I have been focus on some other work. But
when I came back to this topic today, I found I was wrong. Even in vfs,
unfortunately, we can not distinguish the use case 1 and 2:

1. mount -t ubifs ... - (flags & MS_NOATIME) == 0
2. mount -t ubifs -o atime - (flags & MS_NOATIME) == 0
3. mount -t ubifs -o noatime - (flags & MS_NOATIME) == 1

There is no MS_ATIME defined in vfs to be used for -o atime specified.
We can only find out the case 3 by the flags in kernel space.
That means, the information what we want for this topic only exists in
util-linux in user-space. util-linux make the Default equal to -o atime.

Then there are two ways to do it:
a), introduce a MS_ATIME and file_system_type::parse_options to vfs.
	It's a little costly. MS_ATIME would be used to make kernel
	to be aware of the atime option. parse_options() could be used
	to make file system to be in charge of parsing the standard
	options and set the default value.

	parse_options() is a common requirement, but the 	
	MS_ATIME looks much arguable.
	
b), introduce a force_atime to ubifs as what my patch is doing here.
	1), If we really need to know atime option in vfs, I propose to
	    experiment it in ubifs at first. If the force_atime works
	    well and looks useful to some other file system. Then we can
	    consider to introduce MS_ATIME to vfs. So, force_atime could
	    be treat as an experiment for MS_ATIME.
	2), As we talked before, I think force_atime is a flexible way
	    to change the default value to relatime or future lazytime.
	    Then I believe it's better to make the radialization
	    limited in ubifs.

c), change the default behaviour of ubifs to support atime immediately.
	That's rough and risky but most easy way to do it.

In short, I think force_atime to ubifs is the choice from my opinion.

What do you think about it?

Thanx
Yang
>
> .
>


  reply	other threads:[~2015-06-23 10:01 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-08 10:07 [PATCH RESEND] ubifs: Introduce a mount option of force_atime Dongsheng Yang
2015-06-08 10:07 ` Dongsheng Yang
2015-06-08 22:35 ` Richard Weinberger
2015-06-08 22:55 ` Richard Weinberger
2015-06-09  2:57   ` Dongsheng Yang
2015-06-09  2:57     ` Dongsheng Yang
2015-06-09  3:24   ` Dongsheng Yang
2015-06-09  3:24     ` Dongsheng Yang
2015-06-09  5:00     ` Dongsheng Yang
2015-06-09  5:00       ` Dongsheng Yang
2015-06-09  5:09       ` Dongsheng Yang
2015-06-09  5:09         ` Dongsheng Yang
2015-06-09  6:36 ` Artem Bityutskiy
2015-06-09  6:36   ` Artem Bityutskiy
2015-06-09  8:02   ` Richard Weinberger
2015-06-09  8:02     ` Richard Weinberger
2015-06-10  3:16     ` Dongsheng Yang
2015-06-10  3:16       ` Dongsheng Yang
2015-06-10  9:21       ` Artem Bityutskiy
2015-06-10  9:21         ` Artem Bityutskiy
2015-06-10 10:10         ` Dongsheng Yang
2015-06-10 10:10           ` Dongsheng Yang
2015-06-10 10:25           ` Artem Bityutskiy
2015-06-10 10:25             ` Artem Bityutskiy
2015-06-10 10:34             ` Dongsheng Yang
2015-06-10 10:34               ` Dongsheng Yang
2015-06-10 11:05               ` Artem Bityutskiy
2015-06-10 11:05                 ` Artem Bityutskiy
2015-06-23  9:55                 ` Dongsheng Yang [this message]
2015-06-23  9:55                   ` Dongsheng Yang
2015-06-23 10:44                   ` Artem Bityutskiy
2015-06-23 10:44                     ` Artem Bityutskiy
2015-06-23 23:49                     ` Dongsheng Yang
2015-06-23 23:49                       ` Dongsheng Yang
2015-06-24  0:33                     ` Dave Chinner
2015-06-24  0:33                       ` Dave Chinner
2015-06-24 16:04                       ` Artem Bityutskiy
2015-06-24 16:04                         ` Artem Bityutskiy
2015-06-25  9:55                       ` Dongsheng Yang
2015-06-25  9:55                         ` Dongsheng Yang
2015-06-25 10:08                         ` Artem Bityutskiy
2015-06-25 10:08                           ` Artem Bityutskiy
2015-06-25 10:10                           ` Dongsheng Yang
2015-06-25 10:10                             ` Dongsheng Yang
2015-06-25 11:28                             ` Artem Bityutskiy
2015-06-25 11:28                               ` Artem Bityutskiy
2015-06-26  1:17                               ` Dongsheng Yang
2015-06-26  1:17                                 ` Dongsheng Yang
2015-06-26  7:01                                 ` Artem Bityutskiy
2015-06-26  7:01                                   ` Artem Bityutskiy
2015-06-26  7:13                                   ` Dongsheng Yang
2015-06-26  7:13                                     ` Dongsheng Yang
2015-06-26  7:43                                     ` Artem Bityutskiy
2015-06-26  7:43                                       ` Artem Bityutskiy
2015-06-26  7:52                                       ` Dongsheng Yang
2015-06-26  7:52                                         ` Dongsheng Yang
2015-06-26  8:19                                         ` Artem Bityutskiy
2015-06-26  8:19                                           ` Artem Bityutskiy
2015-06-26  8:22                                           ` Dongsheng Yang
2015-06-26  8:22                                             ` Dongsheng Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55892D18.3020203@cn.fujitsu.com \
    --to=yangds.fnst@cn.fujitsu.com \
    --cc=adrian.hunter@intel.com \
    --cc=dedekind1@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.