linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Neil Brown <neilb@suse.de>
To: Mikael Abrahamsson <swmike@swm.pp.se>
Cc: Christoph Hellwig <hch@infradead.org>,
	Dominik Brodowski <linux@dominikbrodowski.net>,
	Michael Monnerie <michael.monnerie@is.it-management.at>,
	linux-raid@vger.kernel.org, xfs@oss.sgi.com,
	linux-kernel@vger.kernel.org, dm-devel@redhat.com
Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs
Date: Thu, 5 Aug 2010 08:24:38 +1000	[thread overview]
Message-ID: <20100805082438.0b476adb@notabene> (raw)
In-Reply-To: <alpine.DEB.1.10.1008041351100.19930@uplift.swm.pp.se>

On Wed, 4 Aug 2010 13:53:03 +0200 (CEST)
Mikael Abrahamsson <swmike@swm.pp.se> wrote:

> On Wed, 4 Aug 2010, Christoph Hellwig wrote:
> 
> > The good news is that you have it tracked down, the bad news is that I 
> > know very little about dm-crypt.  Maybe the issue is the single threaded 
> > decryption in dm-crypt?  Can you check how much CPU time the dm crypt 
> > kernel thread uses?
> 
> I'm not sure it's that. I have a Core i5 with AES-NI and that didn't 
> significantly increase my overall performance, as it's not there the 
> bottleneck is (at least in my system).
> 
> I earlier sent out an email wondering if someone could shed some light on 
> how scheduling, block caching and read-ahead works together when one does 
> disks->md->crypto->lvm->fs, becase that's a lot of layers and potentially 
> a lot of unneeded buffering, readahead and scheduling magic?
> 

Both page-cache and read-ahead work at the filesystem level, so only the
device in the stack that the filesystem mounts from is relevant for these.
Any read-ahead setting on other devices are ignored.
Other levels only have a cache if they explicitly need one.  e.g. raid5 has a
stripe-cache to allow parity calculations across all blocks in a stripe.

Scheduling can potentially happen at every layer, but it takes very different
forms.  Crypto, lvm, raid0 etc don't do any scheduling - it is just
first-in-first-out.
RAID5 does some scheduling for writes (but not reads) to try to gather full
stripes.  If you write 2 of 3 blocks in a stripe, then 3 of 3 in another
stripe, the 3 of 3 will be processed immediately while the 2 of 3 might be
delayed a little in the hope that the third will arrive.

The sys/block/XXX/queue/scheduler setting only applies at the bottom of the
stack (though when you have dm-multipath it is actually one step above the
bottom).

Hope that helps,
NeilBrown

  parent reply	other threads:[~2010-08-04 22:24 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-04  7:35 How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Dominik Brodowski
2010-08-04  8:50 ` Christoph Hellwig
2010-08-04  9:13   ` Dominik Brodowski
2010-08-04  9:21     ` Christoph Hellwig
2010-08-04  9:16 ` Michael Monnerie
2010-08-04 10:25   ` Dominik Brodowski
2010-08-04 11:18     ` Christoph Hellwig
2010-08-04 11:24       ` Dominik Brodowski
2010-08-04 11:53       ` Mikael Abrahamsson
2010-08-04 12:56         ` Mike Snitzer
2010-08-04 22:24         ` Neil Brown [this message]
     [not found]     ` <20100804111803.GA32643__39273.3621680692$1280923964$gmane$org@infradead.org>
2010-08-04 17:43       ` Andi Kleen
2010-08-04 20:33     ` Valdis.Kletnieks
2010-08-05  9:31       ` direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Dominik Brodowski
2010-08-05 11:32         ` Chris Mason
2010-08-05 12:36           ` Josef Bacik
2010-08-05 15:35           ` Dominik Brodowski
2010-08-05 15:39             ` Chris Mason
2010-08-05 15:53               ` Dominik Brodowski
2010-08-05 16:35             ` Dominik Brodowski
2010-08-05 20:47               ` Performance impact of CONFIG_DEBUG? direct-io test case Dominik Brodowski
2010-08-05 20:54               ` Performance impact of CONFIG_SCHED_MC? " Dominik Brodowski
2010-08-05 18:58           ` direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Jeff Moyer
2010-08-05 19:01             ` Chris Mason

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=20100805082438.0b476adb@notabene \
    --to=neilb@suse.de \
    --cc=dm-devel@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=michael.monnerie@is.it-management.at \
    --cc=swmike@swm.pp.se \
    --cc=xfs@oss.sgi.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;
as well as URLs for NNTP newsgroup(s).