From: Andrea Arcangeli <aarcange@redhat.com>
To: Mel Gorman <mel@csn.ul.ie>
Cc: Arthur Marsh <arthur.marsh@internode.on.net>,
Clemens Ladisch <cladisch@googlemail.com>,
alsa-user@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [Alsa-user] new source of MIDI playback slow-down identified - 5a03b051ed87e72b959f32a86054e1142ac4cf55 thp: use compaction in kswapd for GFP_ATOMIC order > 0
Date: Wed, 23 Feb 2011 18:27:34 +0100 [thread overview]
Message-ID: <20110223172734.GR31195@random.random> (raw)
In-Reply-To: <20110223171047.GL15652@csn.ul.ie>
On Wed, Feb 23, 2011 at 05:10:47PM +0000, Mel Gorman wrote:
> On Wed, Feb 23, 2011 at 05:24:32PM +0100, Andrea Arcangeli wrote:
> > On Wed, Feb 23, 2011 at 04:17:44AM +1030, Arthur Marsh wrote:
> > > OK, these patches applied together against upstream didn't cause a crash
> > > but I did observe:
> > >
> > > significant slowdowns of MIDI playback (moreso than in previous cases,
> > > and with less than 20 Meg of swap file in use);
> > >
> > > kswapd0 sharing equal top place in CPU usage at times (e.g. 20 percent).
> > >
> > > If I should try only one of the patches or something else entirely,
> > > please let me know.
> >
> > Yes, with irq off, schedule won't run and need_resched won't get set.
> >
>
> Stepping back a little, how did you determine that isolate_migrate was the
> major problem? In my initial tests using the irqsoff tracer (sampled for
> the duration fo the test every few seconds and resetting the max latency
> each time), compaction_alloc() was a far worse source of problems and
> isolate_migratepage didn't even register. It might be that I'm not testing
> on large enough machines though.
I think you're right compaction_alloc is a bigger problem. Your patch
to isolate_freepages is a must have and in the right direction.
However I think having large areas set as PageBuddy may be common too,
the irq latency source in isolated_migratepages I think needs fixing
too. We must be guaranteed to release irqs after max N pages (where N
is SWAP_CLUSTER_MAX in my last two patches).
> In another mail, I posted a patch that dealt with compaction_alloc after
> finding that IRQs were being disabled for millisecond lengths of time.
> That length of time for IRQs being disabled could account for the performance
> loss on the network load. Can test the network load with it applied?
kswapd was also running at 100% on all CPUs in that test.
The z1 that doesn't fix the latency source in compaction but that
removes compaction from kswapd (a light/hackish version of
compaction-no-kswapd-3 that I just posted) fixes the problem
completely for the network load too.
So clearly it's not only a problem we can fix in compaction, the irq
latency will improve for sure, but we still get an overload from
kswapd which is not ok I think.
What I am planning to test on the network load is
high-wmark+compaction_alloc_lowlat+compaction-kswapd-3 vs
high-wmark+compaction_alloc_lowlat+compaction-no-kswapd-2.
Is this ok? If you want I can test also
high-wmark+compaction_alloc_lowlat without
compaction-kswapd-3/compaction-no-kswapd-2 but I think the irq-latency
source in isolate_migratepages in presence of large PageBuddy regions
(after any large application started at boot quits) isn't ok. Also I
think having kswapd at 100% cpu load isn't ok. So I doubt we should
stop at compaction_alloc_lowlat.
next prev parent reply other threads:[~2011-02-23 17:28 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <g0ia38-jj6.ln1@ppp121-45-136-118.lns11.adl6.internode.on.net>
2011-02-22 7:37 ` [Alsa-user] new source of MIDI playback slow-down identified - 5a03b051ed87e72b959f32a86054e1142ac4cf55 thp: use compaction in kswapd for GFP_ATOMIC order > 0 Clemens Ladisch
2011-02-22 7:46 ` Arthur Marsh
2011-02-22 13:40 ` Andrea Arcangeli
2011-02-22 16:15 ` Andrea Arcangeli
2011-02-22 16:59 ` Mel Gorman
2011-02-22 17:08 ` Andrea Arcangeli
2011-02-22 17:37 ` Mel Gorman
2011-02-22 17:47 ` Arthur Marsh
2011-02-22 19:43 ` Andrea Arcangeli
2011-02-23 9:15 ` Mel Gorman
2011-02-23 11:41 ` Arthur Marsh
2011-02-23 13:50 ` Clemens Ladisch
2011-02-23 17:01 ` Mel Gorman
2011-02-23 17:40 ` Andrea Arcangeli
2011-02-23 16:24 ` Andrea Arcangeli
2011-02-23 16:36 ` Andrea Arcangeli
2011-02-23 16:40 ` Andrea Arcangeli
2011-02-23 16:47 ` Andrea Arcangeli
2011-02-23 16:55 ` Andrea Arcangeli
2011-02-23 20:07 ` Arthur Marsh
2011-02-23 21:25 ` Andrea Arcangeli
2011-02-23 21:55 ` Arthur Marsh
2011-02-23 23:59 ` Andrea Arcangeli
2011-02-24 1:40 ` Arthur Marsh
2011-02-24 1:54 ` Andrea Arcangeli
2011-02-26 6:43 ` Andrea Arcangeli
2011-02-27 8:48 ` Arthur Marsh
2011-02-23 17:10 ` Mel Gorman
2011-02-23 17:27 ` Andrea Arcangeli [this message]
2011-02-23 17:44 ` Mel Gorman
2011-02-23 18:14 ` Andrea Arcangeli
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=20110223172734.GR31195@random.random \
--to=aarcange@redhat.com \
--cc=alsa-user@lists.sourceforge.net \
--cc=arthur.marsh@internode.on.net \
--cc=cladisch@googlemail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mel@csn.ul.ie \
/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.