From: Dave Chinner <david@fromorbit.com>
To: Mikulas Patocka <mpatocka@redhat.com>
Cc: Jens Axboe <jens.axboe@oracle.com>,
device-mapper development <dm-devel@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
ak@linux.intel.com, "MASON, CHRISTOPHER" <CHRIS.MASON@oracle.com>
Subject: Re: [dm-devel] Barriers still not passing on simple dm devices...
Date: Thu, 9 Apr 2009 09:44:08 +1000 [thread overview]
Message-ID: <20090408234408.GA16929@discord.disaster> (raw)
In-Reply-To: <Pine.LNX.4.64.0904080855340.28196@hs20-bc2-1.build.redhat.com>
On Wed, Apr 08, 2009 at 09:37:56AM -0400, Mikulas Patocka wrote:
> The used trick is basically to take a lock that prevents filesystem-wide
> updates, submit remaining writes (don't wait), submit the barrier that
> causes transition to new generation (don't wait) and release the lock. The
> lock is held for minimum time, no IO is waited for inside the lock. This
> trick can't be done without barriers, without barriers you'd have to wait
> inside the lock.
Woo! You just described the technique XFS uses to guarantee
ordering of metadata and log IO (i.e. asynchronous barriers). ;)
> AFAIK this is the only piece of code that uses barriers to improve
> performance. All the other filesystems use barriers just as a way to flush
> cache and don't overlap barrier request with any other requests.
The problem is, disks often slow down when you issue barriers. It
doesn't matter what purpose you are using barriers for, they change
the order in which the disk would retire the I/O and hence that
changes performance. Issue enough barriers and performance will
drop noticably.
In the case of XFS, we need to guarantee ordering of every single
log write w.r.t. metadata writeback. Hence barriers are issued
relatively frequently (several a second) and so disks operate at
spindle speed rather than cache speed. It is the frequency of
barrier IO that slows XFS down, not the way they are implemented.
Your technique will show exactly the same behaviour if you issue
barriers frequently enough.
Cheers,
Dave.
--
Dave Chinner
dgc@evostor.com
next prev parent reply other threads:[~2009-04-09 0:00 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-23 19:04 Barriers still not passing on simple dm devices Eric Sandeen
2009-03-23 19:10 ` Eric Sandeen
2009-03-24 14:02 ` [dm-devel] " Mikulas Patocka
2009-03-24 14:05 ` Jens Axboe
2009-03-24 14:26 ` Mikulas Patocka
2009-03-24 14:30 ` Jens Axboe
2009-03-24 14:45 ` Mikulas Patocka
2009-03-24 15:05 ` Jens Axboe
2009-03-25 15:15 ` Mikulas Patocka
2009-03-25 15:27 ` Jens Axboe
2009-03-25 22:39 ` Mikulas Patocka
2009-03-26 8:42 ` Jens Axboe
2009-03-31 3:39 ` Mikulas Patocka
2009-03-31 10:49 ` Jens Axboe
2009-04-02 23:40 ` Mikulas Patocka
2009-04-03 8:11 ` Jens Axboe
2009-04-04 15:20 ` Ric Wheeler
2009-04-05 1:28 ` Theodore Tso
2009-04-05 11:54 ` Ric Wheeler
2009-04-06 1:14 ` Lee Revell
2009-04-06 1:24 ` Ric Wheeler
2009-04-08 12:44 ` Mikulas Patocka
2009-04-08 15:16 ` Henrique de Moraes Holschuh
2009-04-09 4:22 ` Eric Sandeen
2009-04-08 12:36 ` Mikulas Patocka
2009-04-08 12:54 ` Mikulas Patocka
2009-04-09 10:48 ` Ric Wheeler
2009-04-08 13:37 ` Mikulas Patocka
2009-04-08 14:06 ` Jens Axboe
2009-04-08 23:44 ` Dave Chinner [this message]
2009-04-09 1:27 ` Chris Mason
2009-04-09 10:28 ` Alasdair G Kergon
2009-03-26 12:55 ` Chris Mason
[not found] <ciXHh-39c-37@gated-at.bofh.it>
[not found] ` <cjfuL-6vJ-43@gated-at.bofh.it>
[not found] ` <cjfEl-6J2-45@gated-at.bofh.it>
[not found] ` <cjfNX-6Wh-27@gated-at.bofh.it>
2009-03-26 13:05 ` Bodo Eggert
[not found] ` <cjfXx-78D-9@gated-at.bofh.it>
[not found] ` <cjg7h-7lM-29@gated-at.bofh.it>
[not found] ` <cjgqC-80G-21@gated-at.bofh.it>
[not found] ` <cjD3I-22U-7@gated-at.bofh.it>
[not found] ` <cjDdE-2g3-31@gated-at.bofh.it>
[not found] ` <cjJVv-4vp-13@gated-at.bofh.it>
[not found] ` <cjXlS-uM-1@gated-at.bofh.it>
2009-03-26 15:26 ` Bodo Eggert
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=20090408234408.GA16929@discord.disaster \
--to=david@fromorbit.com \
--cc=CHRIS.MASON@oracle.com \
--cc=ak@linux.intel.com \
--cc=dm-devel@redhat.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
/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