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>,
	Dave Chinner <david@fromorbit.com>,
	adrian.hunter@intel.com, linux-mtd@lists.infradead.org
Subject: Re: [PATCH RESEND] ubifs: Introduce a mount option of force_atime.
Date: Thu, 25 Jun 2015 18:10:56 +0800	[thread overview]
Message-ID: <558BD3B0.8080209@cn.fujitsu.com> (raw)
In-Reply-To: <1435226918.9627.14.camel@sauron.fi.intel.com>

On 06/25/2015 06:08 PM, Artem Bityutskiy wrote:
>
>
> On Thu, 2015-06-25 at 17:55 +0800, Dongsheng Yang wrote:
>> On 06/24/2015 08:33 AM, Dave Chinner wrote:
>>> On Tue, Jun 23, 2015 at 01:44:00PM +0300, Artem Bityutskiy wrote:
>>>> On Tue, 2015-06-23 at 17:55 +0800, Dongsheng Yang wrote:
>>>>> In short, I think force_atime to ubifs is the choice from my opinion.
>>>>
>>>> So will we end up with this:
>>>>
>>>> -o - no atime support
>>>> -o atime - no atime support
>>>> -o noatime - same, no atime support
>>>> -o force_atime - full atime support
>>>> -o relatime - relative atime support
>>>> -o lazyatime - lazy atime support
>>>
>>>> IOW, atime/noatime mount options have no effect on UBIFS. To have full
>>>> atime support - people have to use "force_atime". And then the rest of
>>>> the standard options are supported.
>>>
>>> That's the exact semantics of the standard -o strictatime option.
>>> See the mount(8) man page:
>>>
>>>          strictatime
>>> 	      Allows  to  explicitly requesting full atime updates.
>>> 	      This makes it possible for kernel to defaults to
>>> 	      relatime or noatime but still allow userspace to
>>> 	      override it. For more details about the default system
>>> 	      mount options see /proc/mounts.
>>>
>>> It's passed down to the kernel via the MS_STRICTATIME flag. All
>>> you need to do is make ubifs aware of this flag...
>>
>> Hi Dave, thanx for your suggestiong, but sorry, it's a little confusing
>> to me :(.
>
> I do not know the history, but IIUC, this is what Dave's hint translates
> to for UBIFS:
>
> -o - default behavior (no atime)
> -o atime - default behavior (no atime)
> -o noatime - default behavior (no atime)
>
> -o strictatime - full atime support
> -o relatime - relative atime support
> -o lazyatime - lazy atime support
>
> Is this logical from user's perspective? No, but this is a standard
> "hack", not an UBIFS-only "hack", so we are fine.
>
> "force_atime" that you are suggesting would be UBIFS-only hack, which is
> not as fine as a standard and documented "hack".
>
> IOW, atime/noatime are the "don't use" options, they are ignored and
> every file-system is free to use its own defaults, be that noatime or
> relatime or strictatime. If you want to tell the FS what to do, use
> strictatime/relatime/lazyatime.

Ha, okey, I believe there was some misunderstanding between us.
Yes, this is what we want:

 > -o - default behavior (no atime)
 > -o atime - default behavior (no atime)
 > -o noatime - default behavior (no atime)
 >
 > -o strictatime - full atime support
 > -o relatime - relative atime support
 > -o lazyatime - lazy atime support

That's great!! But there is a problem to implement it.
Because we can not distinguish the cases below:
 > -o - default behavior (no atime)
 > -o relatime - relative atime support

We would find both of them are MS_RELATIME set. But we
want to do different thing in these cases. So I introduced
the force_atime. Then:

-o - no atime support
-o atime - no atime support
-o noatime - same, no atime support
-o force_atime - default behavior (relatime currently)
-o force_atime,relatime - relative atime support
-o force_atime,strictatime - strict atime support
-o force_atime,lazyatime - lazy atime support

But I agree that introducing a UBIFS_ATIME_SUPPORT as you suggested.

Yang

>
> Does it make sense?
>
> .
>

WARNING: multiple messages have this Message-ID (diff)
From: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
To: <dedekind1@gmail.com>
Cc: Dave Chinner <david@fromorbit.com>,
	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: Thu, 25 Jun 2015 18:10:56 +0800	[thread overview]
Message-ID: <558BD3B0.8080209@cn.fujitsu.com> (raw)
In-Reply-To: <1435226918.9627.14.camel@sauron.fi.intel.com>

On 06/25/2015 06:08 PM, Artem Bityutskiy wrote:
>
>
> On Thu, 2015-06-25 at 17:55 +0800, Dongsheng Yang wrote:
>> On 06/24/2015 08:33 AM, Dave Chinner wrote:
>>> On Tue, Jun 23, 2015 at 01:44:00PM +0300, Artem Bityutskiy wrote:
>>>> On Tue, 2015-06-23 at 17:55 +0800, Dongsheng Yang wrote:
>>>>> In short, I think force_atime to ubifs is the choice from my opinion.
>>>>
>>>> So will we end up with this:
>>>>
>>>> -o - no atime support
>>>> -o atime - no atime support
>>>> -o noatime - same, no atime support
>>>> -o force_atime - full atime support
>>>> -o relatime - relative atime support
>>>> -o lazyatime - lazy atime support
>>>
>>>> IOW, atime/noatime mount options have no effect on UBIFS. To have full
>>>> atime support - people have to use "force_atime". And then the rest of
>>>> the standard options are supported.
>>>
>>> That's the exact semantics of the standard -o strictatime option.
>>> See the mount(8) man page:
>>>
>>>          strictatime
>>> 	      Allows  to  explicitly requesting full atime updates.
>>> 	      This makes it possible for kernel to defaults to
>>> 	      relatime or noatime but still allow userspace to
>>> 	      override it. For more details about the default system
>>> 	      mount options see /proc/mounts.
>>>
>>> It's passed down to the kernel via the MS_STRICTATIME flag. All
>>> you need to do is make ubifs aware of this flag...
>>
>> Hi Dave, thanx for your suggestiong, but sorry, it's a little confusing
>> to me :(.
>
> I do not know the history, but IIUC, this is what Dave's hint translates
> to for UBIFS:
>
> -o - default behavior (no atime)
> -o atime - default behavior (no atime)
> -o noatime - default behavior (no atime)
>
> -o strictatime - full atime support
> -o relatime - relative atime support
> -o lazyatime - lazy atime support
>
> Is this logical from user's perspective? No, but this is a standard
> "hack", not an UBIFS-only "hack", so we are fine.
>
> "force_atime" that you are suggesting would be UBIFS-only hack, which is
> not as fine as a standard and documented "hack".
>
> IOW, atime/noatime are the "don't use" options, they are ignored and
> every file-system is free to use its own defaults, be that noatime or
> relatime or strictatime. If you want to tell the FS what to do, use
> strictatime/relatime/lazyatime.

Ha, okey, I believe there was some misunderstanding between us.
Yes, this is what we want:

 > -o - default behavior (no atime)
 > -o atime - default behavior (no atime)
 > -o noatime - default behavior (no atime)
 >
 > -o strictatime - full atime support
 > -o relatime - relative atime support
 > -o lazyatime - lazy atime support

That's great!! But there is a problem to implement it.
Because we can not distinguish the cases below:
 > -o - default behavior (no atime)
 > -o relatime - relative atime support

We would find both of them are MS_RELATIME set. But we
want to do different thing in these cases. So I introduced
the force_atime. Then:

-o - no atime support
-o atime - no atime support
-o noatime - same, no atime support
-o force_atime - default behavior (relatime currently)
-o force_atime,relatime - relative atime support
-o force_atime,strictatime - strict atime support
-o force_atime,lazyatime - lazy atime support

But I agree that introducing a UBIFS_ATIME_SUPPORT as you suggested.

Yang

>
> Does it make sense?
>
> .
>


  reply	other threads:[~2015-06-25 10:16 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
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 [this message]
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=558BD3B0.8080209@cn.fujitsu.com \
    --to=yangds.fnst@cn.fujitsu.com \
    --cc=adrian.hunter@intel.com \
    --cc=david@fromorbit.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.