From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@osdl.org>
Cc: torvalds@osdl.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH 0/3] beat kswapd with the proverbial clue-bat
Date: Sun, 05 Sep 2004 16:26:01 +1000 [thread overview]
Message-ID: <413AB179.5030706@yahoo.com.au> (raw)
In-Reply-To: <20040904230939.03da8d2d.akpm@osdl.org>
Andrew Morton wrote:
> Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>>Apparently these (higher-order && !wait) come up mainly in networking
>>which is the thing I had in mind. *However* as I only have half of a
>>gigabit network (ie. 1 card), I haven't done any testing where it
>>really counts. I'm also seeing surprisingly few reports on lkml, so
>>perhaps it is me that needs the beating?
>
>
> There have been few reports, and I believe that networking is getting
> changed to reduce the amount of GFP_ATOMIC higher-order allocation
> attempts.
>
That is the ideal goal, I think. But while our allocator offers higher
order allocations, we *should* be a bit smarter about them.
> There have been multiple instances in the past year or so where we've made
> changes in there, the changes were not adequately tested and stuff broke in
> subtle ways. We need to raise the bar a bit - clearly demonstrate that we
> have a problem, and then demonstrate that the fix fixes it, then worry
> about side-effects.
>
Yep. As you see I've already corrected myself a couple of times :\
RFC only at this stage.
>
> I don't see anything in your code which directly prevents the following
> serious scenario:
>
> a) Some random 0-order allocation causes a 4-order page to be split up,
> taking the 4-order pool below threshold.
>
> b) kswapd goes berzerk reclaiming 9000 pages to replenish the 4-order
> pool even though we don't need it.
>
> You have arith in there which kinda-sorta prevents it, but I don't see any
> hard-and-fast protection. Or did I miss it?
>
Yep. Kswapd will not care about 4-order allocations unless someone does
a wake_kswapd(order 4);
We could get into a situation where kswapd free smore than required, but
if you've got someone regularly allocating 4-order pages, it probably
isn't *that* dumb to free one or two more.
If we complete an entire balance_pgdat round without freeing the required
pages, that kswapd_max_order gets reset to zero anyway...
WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@osdl.org>
Cc: torvalds@osdl.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH 0/3] beat kswapd with the proverbial clue-bat
Date: Sun, 05 Sep 2004 16:26:01 +1000 [thread overview]
Message-ID: <413AB179.5030706@yahoo.com.au> (raw)
In-Reply-To: <20040904230939.03da8d2d.akpm@osdl.org>
Andrew Morton wrote:
> Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>>Apparently these (higher-order && !wait) come up mainly in networking
>>which is the thing I had in mind. *However* as I only have half of a
>>gigabit network (ie. 1 card), I haven't done any testing where it
>>really counts. I'm also seeing surprisingly few reports on lkml, so
>>perhaps it is me that needs the beating?
>
>
> There have been few reports, and I believe that networking is getting
> changed to reduce the amount of GFP_ATOMIC higher-order allocation
> attempts.
>
That is the ideal goal, I think. But while our allocator offers higher
order allocations, we *should* be a bit smarter about them.
> There have been multiple instances in the past year or so where we've made
> changes in there, the changes were not adequately tested and stuff broke in
> subtle ways. We need to raise the bar a bit - clearly demonstrate that we
> have a problem, and then demonstrate that the fix fixes it, then worry
> about side-effects.
>
Yep. As you see I've already corrected myself a couple of times :\
RFC only at this stage.
>
> I don't see anything in your code which directly prevents the following
> serious scenario:
>
> a) Some random 0-order allocation causes a 4-order page to be split up,
> taking the 4-order pool below threshold.
>
> b) kswapd goes berzerk reclaiming 9000 pages to replenish the 4-order
> pool even though we don't need it.
>
> You have arith in there which kinda-sorta prevents it, but I don't see any
> hard-and-fast protection. Or did I miss it?
>
Yep. Kswapd will not care about 4-order allocations unless someone does
a wake_kswapd(order 4);
We could get into a situation where kswapd free smore than required, but
if you've got someone regularly allocating 4-order pages, it probably
isn't *that* dumb to free one or two more.
If we complete an entire balance_pgdat round without freeing the required
pages, that kswapd_max_order gets reset to zero anyway...
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
next prev parent reply other threads:[~2004-09-05 6:26 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-05 5:44 [RFC][PATCH 0/3] beat kswapd with the proverbial clue-bat Nick Piggin
2004-09-05 5:44 ` Nick Piggin
2004-09-05 5:45 ` [RFC][PATCH 1/3] account free buddy areas Nick Piggin
2004-09-05 5:46 ` [RFC][PATCH 2/3] alloc-order watermarks Nick Piggin
2004-09-05 5:47 ` [RFC][PATCH 3/3] teach kswapd about watermarks Nick Piggin
2004-09-05 6:04 ` David S. Miller
2004-09-05 6:04 ` David S. Miller
2004-09-05 6:20 ` Nick Piggin
2004-09-05 6:20 ` Nick Piggin
2004-09-05 5:50 ` [RFC][PATCH 2/3] alloc-order watermarks Nick Piggin
2004-09-05 5:50 ` Nick Piggin
2004-09-05 6:13 ` [RFC][PATCH 1/3] account free buddy areas Nick Piggin
2004-09-05 6:13 ` Nick Piggin
2004-09-05 6:02 ` [RFC][PATCH 0/3] beat kswapd with the proverbial clue-bat David S. Miller
2004-09-05 6:02 ` David S. Miller
2004-09-05 6:16 ` Nick Piggin
2004-09-05 6:16 ` Nick Piggin
2004-09-05 10:13 ` Nick Piggin
2004-09-05 10:13 ` Nick Piggin
2004-09-05 17:24 ` Linus Torvalds
2004-09-05 17:24 ` Linus Torvalds
2004-09-05 17:36 ` Martin J. Bligh
2004-09-05 17:36 ` Martin J. Bligh
2004-09-05 17:37 ` Arjan van de Ven
2004-09-05 17:58 ` Linus Torvalds
2004-09-05 17:58 ` Linus Torvalds
2004-09-05 18:41 ` Arjan van de Ven
2004-09-06 1:35 ` Nick Piggin
2004-09-06 1:35 ` Nick Piggin
2004-09-15 13:27 ` Jörn Engel
2004-09-15 13:27 ` Jörn Engel
2004-09-15 13:29 ` Arjan van de Ven
2004-09-15 13:34 ` Jörn Engel
2004-09-15 13:34 ` Jörn Engel
2004-09-15 13:39 ` Arjan van de Ven
2004-09-15 14:18 ` Jörn Engel
2004-09-15 14:18 ` Jörn Engel
2004-09-06 1:09 ` Nick Piggin
2004-09-06 1:09 ` Nick Piggin
2004-09-05 6:09 ` Andrew Morton
2004-09-05 6:09 ` Andrew Morton
2004-09-05 6:26 ` Nick Piggin [this message]
2004-09-05 6:26 ` Nick Piggin
2004-09-05 6:27 ` Anton Blanchard
2004-09-05 6:27 ` Anton Blanchard
2004-09-05 10:09 ` Nick Piggin
2004-09-05 10:09 ` Nick Piggin
2004-09-06 3:33 ` David S. Miller
2004-09-06 3:33 ` David S. Miller
2004-09-06 8:55 ` Nick Piggin
2004-09-06 8:55 ` Nick Piggin
2004-09-05 16:49 ` Linus Torvalds
2004-09-05 16:49 ` Linus Torvalds
2004-09-06 0:54 ` Nick Piggin
2004-09-06 0:54 ` Nick Piggin
2004-09-06 1:49 ` Nick Piggin
2004-09-06 1:49 ` Nick Piggin
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=413AB179.5030706@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@osdl.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.