From: "Aneesh Kumar K. V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Jonathan Nieder
<jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Sage Weil <sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org>
Cc: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC] introduce sys_syncat to sync a single file system
Date: Thu, 03 Mar 2011 14:24:56 +0530 [thread overview]
Message-ID: <87bp1sziqn.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110303072223.GA28133@elie>
On Thu, 3 Mar 2011 01:22:24 -0600, Jonathan Nieder <jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Hi,
>
> Sage Weil wrote:
>
> > - On machines with many of mounts, it is not at all uncommon for some of
> > them to hang (e.g. unresponsive NFS server). sync(2) will get stuck on
> > those and may never get to the one you do care about (e.g., /).
>
> Fun to see this again.
>
> > - Some applications (Ceph, dpkg) write lots of data to the file system and
> > then want to make sure it is flushed to disk. Calling fsync(2) on each
> > file introduces unnecessary ordering constraints that result in a large
> > amount of sub-optimal writeback/flush/commit behavior by the file
> > system.
This would be useful for 9p server in qemu
http://article.gmane.org/gmane.comp.emulators.qemu/95497
>
> FWIW dpkg uses sync_file_range(2) and only syncs the files it needs to
> nowadays. Other apps in the same position should probably do the
> same.[1][2]
>
> > This patch introduces a new system call syncat(2) that mimics the existing
> > *at() interfaces by taking an fd and/or path. The fd can be either an
> > open file descriptor or AT_FDCWD, and the pathname can be either a path or
> > (unlike the usual *at() style interface) NULL. Only the file system for
> > the referenced file is synced.
>
> Sounds like overengineering. The openat(2) family of calls are meant
> to add flexibility to familiar calls that perform an operation with a
> path relative to the cwd. To maintain familiarity, they include some
> complication (AT_FDCWD, taking a relative path, and so on).
With some of the proposed changes for VFS [1] some of the *at calls also allows to
specify "" names. So i guess having syncat is useful because now we can
call sync with either an fd or with a name.
ie
syncat(fd, "");
or
syncat(AT_FDCWD, "a");
[1] http://article.gmane.org/gmane.linux.file-systems/50773
>
> Since sync_one_filesystem(2) is new, why not just take a file or
> directory fd (and perhaps flags for future expansion)? I can use
> open(".", O_NONBLOCK) to get a file descriptor for the cwd.
>
> > Is this a reasonable approach? (Patch below is compile tested only. :)
>
> Sounds reasonably sane.
>
> As for the patch: without the pathname arg it becomes much simpler.
> To my inexpert eyes, aside from that it looks good.
>
-aneesh
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
To: Jonathan Nieder <jrnieder@gmail.com>, Sage Weil <sage@newdream.net>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, linux-api@vger.kernel.org
Subject: Re: [RFC] introduce sys_syncat to sync a single file system
Date: Thu, 03 Mar 2011 14:24:56 +0530 [thread overview]
Message-ID: <87bp1sziqn.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110303072223.GA28133@elie>
On Thu, 3 Mar 2011 01:22:24 -0600, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Hi,
>
> Sage Weil wrote:
>
> > - On machines with many of mounts, it is not at all uncommon for some of
> > them to hang (e.g. unresponsive NFS server). sync(2) will get stuck on
> > those and may never get to the one you do care about (e.g., /).
>
> Fun to see this again.
>
> > - Some applications (Ceph, dpkg) write lots of data to the file system and
> > then want to make sure it is flushed to disk. Calling fsync(2) on each
> > file introduces unnecessary ordering constraints that result in a large
> > amount of sub-optimal writeback/flush/commit behavior by the file
> > system.
This would be useful for 9p server in qemu
http://article.gmane.org/gmane.comp.emulators.qemu/95497
>
> FWIW dpkg uses sync_file_range(2) and only syncs the files it needs to
> nowadays. Other apps in the same position should probably do the
> same.[1][2]
>
> > This patch introduces a new system call syncat(2) that mimics the existing
> > *at() interfaces by taking an fd and/or path. The fd can be either an
> > open file descriptor or AT_FDCWD, and the pathname can be either a path or
> > (unlike the usual *at() style interface) NULL. Only the file system for
> > the referenced file is synced.
>
> Sounds like overengineering. The openat(2) family of calls are meant
> to add flexibility to familiar calls that perform an operation with a
> path relative to the cwd. To maintain familiarity, they include some
> complication (AT_FDCWD, taking a relative path, and so on).
With some of the proposed changes for VFS [1] some of the *at calls also allows to
specify "" names. So i guess having syncat is useful because now we can
call sync with either an fd or with a name.
ie
syncat(fd, "");
or
syncat(AT_FDCWD, "a");
[1] http://article.gmane.org/gmane.linux.file-systems/50773
>
> Since sync_one_filesystem(2) is new, why not just take a file or
> directory fd (and perhaps flags for future expansion)? I can use
> open(".", O_NONBLOCK) to get a file descriptor for the cwd.
>
> > Is this a reasonable approach? (Patch below is compile tested only. :)
>
> Sounds reasonably sane.
>
> As for the patch: without the pathname arg it becomes much simpler.
> To my inexpert eyes, aside from that it looks good.
>
-aneesh
next prev parent reply other threads:[~2011-03-03 8:54 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 [this message]
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
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=87bp1sziqn.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sage-BnTBU8nroG7k1uMJSBkQmQ@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.