Linux Overlay Filesystem development
 help / color / mirror / Atom feed
From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: Yafang Shao <laoar.shao@gmail.com>
Cc: miklos@szeredi.hu, amir73il@gmail.com,
	linux-unionfs@vger.kernel.org, fuweid89@gmail.com
Subject: Re: [PATCH] ovl: Allow changing default fsync_mode
Date: Tue, 23 Jun 2026 18:06:19 +0800	[thread overview]
Message-ID: <7985d6d1-a7ce-430a-9a06-9bbf95b1be2f@linux.alibaba.com> (raw)
In-Reply-To: <CALOAHbAY-3GAd=7DsA74W4ax7aPdXC7ecYt6b+tHoxFu754ZjA@mail.gmail.com>



On 2026/6/23 17:59, Yafang Shao wrote:
> On Tue, Jun 23, 2026 at 5:49 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>
>>
>>
>> On 2026/6/23 17:34, Yafang Shao wrote:
>>> On Tue, Jun 23, 2026 at 5:25 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>>>
>>>>
>>>>
>>>> On 2026/6/23 17:15, Yafang Shao wrote:
>>>>> On Tue, Jun 23, 2026 at 5:00 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 2026/6/23 16:43, Yafang Shao wrote:
>>>>>>> We have enabled "volatile" fsync_mode on our Kubernetes production
>>>>>>> environment to prevent container exit from being blocked when there
>>>>>>> are many dirty pages to flush. This has worked well without introducing
>>>>>>> any issues.
>>>>>>>
>>>>>>> However, on some of our production servers, upgrading the container
>>>>>>> runtime to support the "volatile" mount option is not straightforward [0].
>>>>>>> To address this, we want to enable it by default within the kernel.
>>>>>>
>>>>>> Just a side note: "upgrade the container runtime is not
>>>>>> straightforward", how? it seems that issue is already resolved and
>>>>>> there is no more discussion.
>>>>>
>>>>> We still have many production servers running Docker, while the
>>>>> "volatile" mount option is only supported by containerd. Upgrading
>>>>> from Docker to containerd is a difficult process.
>>>>
>>>> But docker can be patched too: if upgrading the userspace is
>>>> hard, why upgrading the linux kernel is easy?
>>>
>>> It is quite easy since the kernel can be livepatched without
>>> rebooting. My employer is a heavy livepatch user. [1]
>>>
>>> [1]. https://lore.kernel.org/live-patching/
>>
>> It's just a generic opinion, in general, docker can be live
>> upgraded without pausing the containers, and upgrading
>> userspace is easier / safer than patching the kernel.
> 
> Are you sure? How would one change an already mounted overlayfs that
> was not enabled with "volatile"?
> 
>>
>>>
>>>>
>>>>>
>>>>>>
>>>>>> Not quite sure applying a default volatile policy is quite feasible,
>>>>>> especially the issue documented in
>>>>>> https://github.com/containerd/containerd/pull/10274/files#diff-9239161e2af83fd84df5792f9fe64701c517fe4598eae60d4d245d039955f46cR33
>>>>>>
>>>>>> then userspace cannot drop `volatile` option as a somewhat
>>>>>> workaround now.
>>>>>
>>>>> OS vendors can still set "auto" as the default config, while customers
>>>>> can override it dynamically via sysfs. We have been running with
>>>>> "volatile" on many production servers across different workloads for
>>>>> over a year, and it has worked as expected without any issues.
>>>>
>>>> but sysfs setting still applies as system-wide, and there
>>>> are some edge cases that we cannot apply volatile as
>>>> default, that is my one concern.
>>>
>>> It is unclear whether there are mixed workloads on the same server
>>> that require both "volatile" and "strict" modes, but we have not
>>> encountered such use cases across our large fleet of servers.
>>
>> At least containerd needs to strip out `volatile` in some use cases,
>> again see:
>> https://github.com/containerd/containerd/pull/9555
>> https://github.com/containerd/containerd/pull/10274/files#diff-9239161e2af83fd84df5792f9fe64701c517fe4598eae60d4d245d039955f46cR33
>>
>> So set `volatile` as default will break userspace (containerd),
>> and containerd needs to add another mount option to avoid the
>> default `volatile` behavior, which is messy and makes the
>> userspace more harder.
> 
> However, our userspace is easier with it ;)

It depends on how you define "our", if your docker can be
upgraded, why bothering kernel?

As I said, common existing applications (like containerd) will
break since they already assume "OVL_FSYNC_AUTO" is the default
behavior, and explicitly use mount options to override the
default "OVL_FSYNC_AUTO" behavior.

But with the patch, it just breaks the application assumption
and userspace application needs to change again.

> 
>>
>>>
>>>>
>>>> The other concern is that since `volatile` omits fsync, so
>>>> it's a posix violation (even that makes sense for container
>>>> writable layers), not sure if we have to use it as the
>>>> system-wide default configuration too.
>>>
>>> We have use cases for setting this as a system-wide configuration. It
>>> is unclear whether others have similar needs.
>>
>> While I cannot speak out of overlayfs, but really it depends
>> on if the use cases is generic.
>>
>> Usually filesystems need to obey posix semantics as much as
>> possible, and using specific mount option to relax (violate)
>> some restriction, but it shouldn't be a system-wide stuff
>> since otherwise user applications cannot know if they really
>> live in the posix world.
> 
> AFAICS, the Linux kernel does not strictly follow POSIX in a number of areas.
> 
> BTW,
> 1. The "volatile" is not the default option.
> 2. Even when the system-wide default is set to "volatile", users can
> still change it per mount.

Here, I'm strongly against this, again: especially it
just breaks application which implies "OVL_FSYNC_AUTO" is
the default, and we shouldn't ask userspace to handle this
to deal with the fact that the "volatile" could become
the default again and again.

Thanks,
Gao Xiang

> 


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

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-23  8:43 [PATCH] ovl: Allow changing default fsync_mode Yafang Shao
2026-06-23  9:00 ` Gao Xiang
2026-06-23  9:15   ` Yafang Shao
2026-06-23  9:25     ` Gao Xiang
2026-06-23  9:34       ` Yafang Shao
2026-06-23  9:49         ` Gao Xiang
2026-06-23  9:59           ` Yafang Shao
2026-06-23 10:06             ` Gao Xiang [this message]
2026-06-23 10:12             ` Gao Xiang
2026-06-23 10:18               ` Yafang Shao
2026-06-23 10:25                 ` Gao Xiang
2026-06-23 11:38                   ` Yafang Shao
2026-06-23 11:59                     ` Gao Xiang
2026-06-23 12:47                       ` Yafang Shao
2026-06-23 13:11                         ` Gao Xiang
2026-06-23 13:19                           ` Yafang Shao
2026-06-23 13:35                             ` Gao Xiang
2026-06-23 13:39                               ` Yafang Shao
2026-06-23 13:42                               ` Christoph Hellwig
2026-06-23 13:46                                 ` Yafang Shao
2026-06-23 13:47                                 ` Gao Xiang
2026-06-23 14:52                                   ` Amir Goldstein
2026-06-24  2:09                                     ` Yafang Shao
2026-06-24  2:28                                       ` Gao Xiang
2026-06-24  2:30                                         ` Yafang Shao
2026-06-24  3:17                                           ` Gao Xiang
2026-06-24  3:28                                             ` Yafang Shao
2026-06-24  3:36                                               ` Gao Xiang
2026-06-24  3:41                                                 ` Yafang Shao
2026-06-23 13:03             ` Gao Xiang

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=7985d6d1-a7ce-430a-9a06-9bbf95b1be2f@linux.alibaba.com \
    --to=hsiangkao@linux.alibaba.com \
    --cc=amir73il@gmail.com \
    --cc=fuweid89@gmail.com \
    --cc=laoar.shao@gmail.com \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox