From: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
To: Indan Zupancic <indan-1J6HnF7K7zE@public.gmane.org>
Cc: Greg KH <greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>,
Jonathan Nieder
<jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
Sage Weil <sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org>,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"Aneesh Kumar K. V"
<aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org,
hch-jcswGhMUV9g@public.gmane.org, l@jasper.es
Subject: Re: [PATCH v3] introduce sys_syncfs to sync a single file system
Date: Mon, 14 Mar 2011 13:10:42 -0700 [thread overview]
Message-ID: <20110314131042.5a7fb32f.akpm@linux-foundation.org> (raw)
In-Reply-To: <1e597aedd3d7825dcc0630b1cf2399fa.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
On Mon, 14 Mar 2011 02:56:52 +0100 (CET)
"Indan Zupancic" <indan-1J6HnF7K7zE@public.gmane.org> wrote:
> On Sat, March 12, 2011 18:32, Greg KH wrote:
> > On Fri, Mar 11, 2011 at 08:10:01PM -0600, Jonathan Nieder wrote:
> >> Indan Zupancic wrote:
> >>
> >> > I'm not pushing for any official convention, just what seems good taste.
> >>
> >> In cases like this, conventions (consistency and best practices) are
> >> very important.
> >>
> >> > Less code added, less bloat. Architecture independent, no need to update
> >> > all system call tables everywhere (all archs, libc versions and strace).
> >> > Two files changed, instead of 7 (which only hooks up x86).
> >>
> >> Thanks for explaining. Those do seem like good reasons to use a ioctl
> >> instead of a new syscall.
> >
> > No, make it a syscall, it's more obvious and will be documented much
> > better.
>
> There is no such guarantee. Everyone seems to want to add this new syncfs,
> but it's not even defined what it does. "Same as sync, but only on one fs"
> is IMHO not good enough, because sync's behaviour is pretty badly documented,
> and that's a system call. The sync_file_range argument effects are quite
> well defined, on the other hand, unlike sync behaviour. You're right for
> ioctls though.
I think the semantics of sync are easily enough defined, even if
they're not well-defined in the documentation: all data which was dirty
at the time sync() was called will be written back and accessible when
the sync() returns.
I do agree that this should be a standalone syscall, not grafted into
sync_file_range() or into an ioctl.
That being said, we have two similar-looking-but-quite-different "sync"
concepts in the kernel. One is "sync for data integrity" and the other
is "sync to reduce the dirty memory load". The latter is not a data
integrity thing - it is a resource management thing.
There might one day be a requirement to be able to initiate a
resource-management-style writeback against a whole filesystem. When
that happens, we'll regret not having added a "mode" argument to
sys_syncfs().
Or maybe not - given that we're syncing the entire fs and that
sync_filesystem() does the two-pass "write for data cleaning then write
for data integrity" thing, it could be that a syncfs-for-data-cleaning
operation has little performance benefit over a
syncfs-for-data-integrity operation.
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: "Indan Zupancic" <indan@nul.nu>
Cc: "Greg KH" <greg@kroah.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Arnd Bergmann" <arnd@arndb.de>, "Sage Weil" <sage@newdream.net>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
"Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>,
linux-api@vger.kernel.org, mtk.manpages@gmail.com,
viro@zeniv.linux.org.uk, hch@lst.de, l@jasper.es
Subject: Re: [PATCH v3] introduce sys_syncfs to sync a single file system
Date: Mon, 14 Mar 2011 13:10:42 -0700 [thread overview]
Message-ID: <20110314131042.5a7fb32f.akpm@linux-foundation.org> (raw)
In-Reply-To: <1e597aedd3d7825dcc0630b1cf2399fa.squirrel@webmail.greenhost.nl>
On Mon, 14 Mar 2011 02:56:52 +0100 (CET)
"Indan Zupancic" <indan@nul.nu> wrote:
> On Sat, March 12, 2011 18:32, Greg KH wrote:
> > On Fri, Mar 11, 2011 at 08:10:01PM -0600, Jonathan Nieder wrote:
> >> Indan Zupancic wrote:
> >>
> >> > I'm not pushing for any official convention, just what seems good taste.
> >>
> >> In cases like this, conventions (consistency and best practices) are
> >> very important.
> >>
> >> > Less code added, less bloat. Architecture independent, no need to update
> >> > all system call tables everywhere (all archs, libc versions and strace).
> >> > Two files changed, instead of 7 (which only hooks up x86).
> >>
> >> Thanks for explaining. Those do seem like good reasons to use a ioctl
> >> instead of a new syscall.
> >
> > No, make it a syscall, it's more obvious and will be documented much
> > better.
>
> There is no such guarantee. Everyone seems to want to add this new syncfs,
> but it's not even defined what it does. "Same as sync, but only on one fs"
> is IMHO not good enough, because sync's behaviour is pretty badly documented,
> and that's a system call. The sync_file_range argument effects are quite
> well defined, on the other hand, unlike sync behaviour. You're right for
> ioctls though.
I think the semantics of sync are easily enough defined, even if
they're not well-defined in the documentation: all data which was dirty
at the time sync() was called will be written back and accessible when
the sync() returns.
I do agree that this should be a standalone syscall, not grafted into
sync_file_range() or into an ioctl.
That being said, we have two similar-looking-but-quite-different "sync"
concepts in the kernel. One is "sync for data integrity" and the other
is "sync to reduce the dirty memory load". The latter is not a data
integrity thing - it is a resource management thing.
There might one day be a requirement to be able to initiate a
resource-management-style writeback against a whole filesystem. When
that happens, we'll regret not having added a "mode" argument to
sys_syncfs().
Or maybe not - given that we're syncing the entire fs and that
sync_filesystem() does the two-pass "write for data cleaning then write
for data integrity" thing, it could be that a syncfs-for-data-cleaning
operation has little performance benefit over a
syncfs-for-data-integrity operation.
next prev parent reply other threads:[~2011-03-14 20:10 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-03 6:35 [RFC] introduce sys_syncat to sync a single file system Sage Weil
[not found] ` <Pine.LNX.4.64.1102171035220.13904-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-03 7:22 ` Jonathan Nieder
2011-03-03 7:22 ` Jonathan Nieder
2011-03-03 8:54 ` Aneesh Kumar K. V
2011-03-03 8:54 ` Aneesh Kumar K. V
[not found] ` <87bp1sziqn.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-03-07 23:17 ` [RFC] introduce sys_syncfs to sync a single file system (v2) Sage Weil
2011-03-07 23:17 ` Sage Weil
[not found] ` <Pine.LNX.4.64.1103071515070.11152-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-08 5:27 ` Aneesh Kumar K. V
2011-03-08 5:27 ` Aneesh Kumar K. V
[not found] ` <8762ruchcr.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-03-10 14:56 ` Arnd Bergmann
2011-03-10 14:56 ` Arnd Bergmann
[not found] ` <201103101556.44698.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-10 19:28 ` Sage Weil
2011-03-10 19:28 ` Sage Weil
2011-03-10 19:31 ` [PATCH v3] introduce sys_syncfs to sync a single file system Sage Weil
2011-03-10 22:08 ` Arnd Bergmann
[not found] ` <Pine.LNX.4.64.1103101125150.4190-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-11 4:44 ` Aneesh Kumar K. V
2011-03-11 4:44 ` Aneesh Kumar K. V
2011-03-11 11:01 ` Indan Zupancic
[not found] ` <edfa4cf081249734807e582c14253fca.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-11 11:55 ` Arnd Bergmann
2011-03-11 11:55 ` Arnd Bergmann
[not found] ` <201103111255.44979.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-11 23:45 ` Indan Zupancic
2011-03-11 23:45 ` Indan Zupancic
2011-03-11 23:56 ` Jonathan Nieder
2011-03-12 1:53 ` Indan Zupancic
2011-03-12 1:53 ` Indan Zupancic
[not found] ` <9446ab1a2315c0d2476c30f8315a0503.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 2:10 ` Jonathan Nieder
2011-03-12 2:10 ` Jonathan Nieder
2011-03-12 4:22 ` Indan Zupancic
2011-03-12 4:22 ` Indan Zupancic
2011-03-12 17:32 ` Greg KH
[not found] ` <20110312173217.GA24981-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2011-03-14 1:56 ` Indan Zupancic
2011-03-14 1:56 ` Indan Zupancic
[not found] ` <1e597aedd3d7825dcc0630b1cf2399fa.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-14 4:29 ` Sage Weil
2011-03-14 4:29 ` Sage Weil
2011-03-14 9:27 ` Indan Zupancic
2011-03-14 10:22 ` Theodore Tso
[not found] ` <Pine.LNX.4.64.1103132114380.5145-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-15 10:11 ` Dave Chinner
2011-03-15 10:11 ` Dave Chinner
2011-03-15 13:00 ` Sage Weil
2011-03-15 15:56 ` Andreas Dilger
2011-03-15 16:08 ` Sage Weil
2011-03-15 20:18 ` Andrew Morton
2011-03-14 20:10 ` Andrew Morton [this message]
2011-03-14 20:10 ` Andrew Morton
2011-03-14 20:29 ` Artem Bityutskiy
2011-03-14 20:29 ` Artem Bityutskiy
2011-03-14 21:11 ` Ted Ts'o
2011-03-14 21:20 ` Andrew Morton
[not found] ` <20110314142032.b9523309.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-03-14 23:17 ` Ted Ts'o
2011-03-14 23:17 ` Ted Ts'o
2011-03-14 21:22 ` Arnd Bergmann
2011-03-12 0:40 ` Ric Wheeler
[not found] ` <4D7AC0FE.8070806-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-03-12 1:33 ` Indan Zupancic
2011-03-12 1:33 ` Indan Zupancic
[not found] ` <1d4d1b7ae64da97f44cad0e2bda4f832.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 2:52 ` Ric Wheeler
2011-03-12 2:52 ` Ric Wheeler
[not found] ` <4D7ADFDD.9080108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-03-12 3:50 ` Indan Zupancic
2011-03-12 3:50 ` Indan Zupancic
2011-03-12 12:41 ` Ric Wheeler
[not found] ` <e118a1458c29e4f44bf71c7095e4bce8.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 18:31 ` Jeff Garzik
2011-03-12 18:31 ` Jeff Garzik
2011-03-14 1:31 ` Indan Zupancic
2011-03-14 1:37 ` Theodore Tso
2011-03-14 1:47 ` Indan Zupancic
2011-03-14 1:45 ` Jeff Garzik
[not found] ` <4D7D7325.2040708-o2qLIJkoznsdnm+yROfE0A@public.gmane.org>
2011-03-14 1:59 ` Indan Zupancic
2011-03-14 1:59 ` Indan Zupancic
2011-03-12 19:28 ` Artem Bityutskiy
2011-03-12 19:28 ` Artem Bityutskiy
2011-03-12 19:22 ` Artem Bityutskiy
2011-03-12 19:22 ` Artem Bityutskiy
2011-03-14 1:38 ` Indan Zupancic
2011-03-14 1:38 ` Indan Zupancic
[not found] ` <3cc2c5c6fa6b3bd384017ae95a4241ab.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-14 5:52 ` Artem Bityutskiy
2011-03-14 5:52 ` Artem Bityutskiy
2011-03-13 20:59 ` Christoph Hellwig
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=20110314131042.5a7fb32f.akpm@linux-foundation.org \
--to=akpm-de/tnxtf+jlsfhdxvbkv3wd2fqjk+8+b@public.gmane.org \
--cc=aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org \
--cc=hch-jcswGhMUV9g@public.gmane.org \
--cc=indan-1J6HnF7K7zE@public.gmane.org \
--cc=jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=l@jasper.es \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org \
--cc=viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org \
/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.