2011-01-26 09:36:32

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

Hello,

On Tue, Jan 25, 2011 at 11:23:29PM -0800, Darrick J. Wong wrote:
> As part of migrating the FLUSH/FUA knob to the block layer, remove the support
> code for the barrier-related mount options and remove the conditionals around
> flushes in favor of always issuing the flush. The block layer will handle
> gracefully the situation where a FLUSH or FUA request is issued to a device
> that doesn't support it. Modify the option parsing code to print a warning if
> someone tries to use the old mount option.
>
> Note: The nobarrier bit in the default mount flags is now useless.

The option is something which users are already quite familiar with.
I think we'll just have to carry this around. What we can do, tho, is
moving the actual control mechanism to block layer -
ie. blkdev_skip_flush() or something like that which ignores flush
requests for the current exclusive opener.

Thanks.

--
tejun


2011-01-26 10:47:41

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

Hello,

On Wed 26-01-11 10:36:32, Tejun Heo wrote:
> On Tue, Jan 25, 2011 at 11:23:29PM -0800, Darrick J. Wong wrote:
> > As part of migrating the FLUSH/FUA knob to the block layer, remove the support
> > code for the barrier-related mount options and remove the conditionals around
> > flushes in favor of always issuing the flush. The block layer will handle
> > gracefully the situation where a FLUSH or FUA request is issued to a device
> > that doesn't support it. Modify the option parsing code to print a warning if
> > someone tries to use the old mount option.
> >
> > Note: The nobarrier bit in the default mount flags is now useless.
>
> The option is something which users are already quite familiar with.
> I think we'll just have to carry this around. What we can do, tho, is
> moving the actual control mechanism to block layer -
> ie. blkdev_skip_flush() or something like that which ignores flush
> requests for the current exclusive opener.
Ted should have a final word about this but I believe it's possible to
deprecate the mount options. Maybe with some transition period where
deprecation message is shown but the option actually still works. That
being said I'm not sure what we should do when someone has a disk with two
partitions and one partition is mounted with barriers and another one
without them - sure, one has to think hard to find a sane use case for this
(possibly if user does not care about data after a crash on one of the
partitions, in which case he should probably use nojournal mode) but it
should probably work.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2011-01-26 10:51:39

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

Hello,

On Wed, Jan 26, 2011 at 11:47:34AM +0100, Jan Kara wrote:
> Ted should have a final word about this but I believe it's possible to
> deprecate the mount options. Maybe with some transition period where
> deprecation message is shown but the option actually still works. That
> being said I'm not sure what we should do when someone has a disk with two
> partitions and one partition is mounted with barriers and another one
> without them - sure, one has to think hard to find a sane use case for this
> (possibly if user does not care about data after a crash on one of the
> partitions, in which case he should probably use nojournal mode) but it
> should probably work.

The policy can be made per-bdev (which maps to per-partition), so I
don't think that's a big problem.

Thanks.

--
tejun

2011-01-26 12:17:25

by Ric Wheeler

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

On 01/26/2011 05:47 AM, Jan Kara wrote:
> Hello,
>
> On Wed 26-01-11 10:36:32, Tejun Heo wrote:
>> On Tue, Jan 25, 2011 at 11:23:29PM -0800, Darrick J. Wong wrote:
>>> As part of migrating the FLUSH/FUA knob to the block layer, remove the support
>>> code for the barrier-related mount options and remove the conditionals around
>>> flushes in favor of always issuing the flush. The block layer will handle
>>> gracefully the situation where a FLUSH or FUA request is issued to a device
>>> that doesn't support it. Modify the option parsing code to print a warning if
>>> someone tries to use the old mount option.
>>>
>>> Note: The nobarrier bit in the default mount flags is now useless.
>> The option is something which users are already quite familiar with.
>> I think we'll just have to carry this around. What we can do, tho, is
>> moving the actual control mechanism to block layer -
>> ie. blkdev_skip_flush() or something like that which ignores flush
>> requests for the current exclusive opener.
> Ted should have a final word about this but I believe it's possible to
> deprecate the mount options. Maybe with some transition period where
> deprecation message is shown but the option actually still works. That
> being said I'm not sure what we should do when someone has a disk with two
> partitions and one partition is mounted with barriers and another one
> without them - sure, one has to think hard to find a sane use case for this
> (possibly if user does not care about data after a crash on one of the
> partitions, in which case he should probably use nojournal mode) but it
> should probably work.
>
> Honza

I would also like to suggest that mount is the right time to change a per file
system behaviour. We have well known paths (add the mount options to /etc/fstab)
and sys admins understand it.

If we have to poke a file, what is the suggested mechanism for doing this?
Another, new script or user space utility that needs to be run at mount time for
each file system?

If we did want to deprecate the "barrier" name, I would leave it in place and
replace it with something meaningful (at mount time!) to users like
"data_safety" and "no_data_safety" modes :)

Ric




2011-01-26 12:21:59

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

Hello,

On Wed, Jan 26, 2011 at 07:16:18AM -0500, Ric Wheeler wrote:
> I would also like to suggest that mount is the right time to change
> a per file system behaviour. We have well known paths (add the mount
> options to /etc/fstab) and sys admins understand it.
>
> If we have to poke a file, what is the suggested mechanism for doing
> this? Another, new script or user space utility that needs to be run
> at mount time for each file system?
>
> If we did want to deprecate the "barrier" name, I would leave it in
> place and replace it with something meaningful (at mount time!) to
> users like "data_safety" and "no_data_safety" modes :)

With barrier on by default these days, I don't think it's necessary to
fiddle with it too much. It's not as important as before. Let's
leave it as it is. Barrier, flush, it doesn't really matter how it's
called.

In the long run tho, I think filesystems should just always enable
flush/barrier and the fiddling belongs to the block layer.

Thanks.

--
tejun

2011-01-26 13:29:54

by torn5

[permalink] [raw]
Subject: Re: [PATCH 3/3] ext4: Deprecate barrier= and nobarrier mount options

On 01/26/2011 11:47 AM, Jan Kara wrote:
> Hello,
>
> On Wed 26-01-11 10:36:32, Tejun Heo wrote:
> Ted should have a final word about this but I believe it's possible to
> deprecate the mount options. Maybe with some transition period where
> deprecation message is shown but the option actually still works.

+1 for this from a user.

I'd like to see this moved to blockdev sysfs in the long term.

During the transition period there could be both the old barrier mount
option (with a deprecated warning upon use) and the sysfs knobs.

Flush and FUA would be delivered to disk only if both the barriers are
enabled in the mount options (which is also the default) and the sysfs
are at "noignore" value. Alternatively, the barrier mount option could
affect the sysfs knobs values upon mount. Eventually the barrier mount
option would be removed becoming always-on, leaving only the sysfs knobs.