From: Jens Axboe <jens.axboe@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: liml@rtr.ca, lkml@rtr.ca, matthew@wil.cx,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-mm@kvack.org,
Mel Gorman <mel@csn.ul.ie>
Subject: Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
Date: Thu, 13 Dec 2007 23:17:39 +0100 [thread overview]
Message-ID: <20071213221738.GE19673@kernel.dk> (raw)
In-Reply-To: <20071213140207.111f94e2.akpm@linux-foundation.org>
On Thu, Dec 13 2007, Andrew Morton wrote:
> On Thu, 13 Dec 2007 21:09:59 +0100
> Jens Axboe <jens.axboe@oracle.com> wrote:
>
> >
> > OK, it's a vm issue,
>
> cc linux-mm and probable culprit.
>
> > I have tens of thousand "backward" pages after a
> > boot - IOW, bvec->bv_page is the page before bvprv->bv_page, not
> > reverse. So it looks like that bug got reintroduced.
>
> Bill Irwin fixed this a couple of years back: changed the page allocator so
> that it mostly hands out pages in ascending physical-address order.
>
> I guess we broke that, quite possibly in Mel's page allocator rework.
>
> It would help if you could provide us with a simple recipe for
> demonstrating this problem, please.
Basically anything involving IO :-). A boot here showed a handful of
good merges, and probably in the order of 100,000 descending
allocations. A kernel make is a fine test as well.
Something like the below should work fine - if you see oodles of these
basicaly doing any type of IO, then you are screwed.
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index e30b1a4..8ce3fcc 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1349,6 +1349,10 @@ new_segment:
sg = sg_next(sg);
}
+ if (bvprv) {
+ if (page_address(bvec->bv_page) + PAGE_SIZE == page_address(bvprv->bv_page) && printk_ratelimit())
+ printk("page alloc order backwards\n");
+ }
sg_set_page(sg, bvec->bv_page, nbytes, bvec->bv_offset);
nsegs++;
}
--
Jens Axboe
WARNING: multiple messages have this Message-ID (diff)
From: Jens Axboe <jens.axboe@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: liml@rtr.ca, lkml@rtr.ca, matthew@wil.cx,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-mm@kvack.org,
Mel Gorman <mel@csn.ul.ie>
Subject: Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
Date: Thu, 13 Dec 2007 23:17:39 +0100 [thread overview]
Message-ID: <20071213221738.GE19673@kernel.dk> (raw)
In-Reply-To: <20071213140207.111f94e2.akpm@linux-foundation.org>
On Thu, Dec 13 2007, Andrew Morton wrote:
> On Thu, 13 Dec 2007 21:09:59 +0100
> Jens Axboe <jens.axboe@oracle.com> wrote:
>
> >
> > OK, it's a vm issue,
>
> cc linux-mm and probable culprit.
>
> > I have tens of thousand "backward" pages after a
> > boot - IOW, bvec->bv_page is the page before bvprv->bv_page, not
> > reverse. So it looks like that bug got reintroduced.
>
> Bill Irwin fixed this a couple of years back: changed the page allocator so
> that it mostly hands out pages in ascending physical-address order.
>
> I guess we broke that, quite possibly in Mel's page allocator rework.
>
> It would help if you could provide us with a simple recipe for
> demonstrating this problem, please.
Basically anything involving IO :-). A boot here showed a handful of
good merges, and probably in the order of 100,000 descending
allocations. A kernel make is a fine test as well.
Something like the below should work fine - if you see oodles of these
basicaly doing any type of IO, then you are screwed.
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index e30b1a4..8ce3fcc 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1349,6 +1349,10 @@ new_segment:
sg = sg_next(sg);
}
+ if (bvprv) {
+ if (page_address(bvec->bv_page) + PAGE_SIZE == page_address(bvprv->bv_page) && printk_ratelimit())
+ printk("page alloc order backwards\n");
+ }
sg_set_page(sg, bvec->bv_page, nbytes, bvec->bv_offset);
nsegs++;
}
--
Jens Axboe
--
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:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-12-13 22:17 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-13 18:36 QUEUE_FLAG_CLUSTER: not working in 2.6.24 ? Mark Lord
2007-12-13 18:37 ` Mark Lord
2007-12-13 18:42 ` Matthew Wilcox
2007-12-13 18:46 ` James Bottomley
2007-12-13 18:48 ` Mark Lord
2007-12-13 18:53 ` Matthew Wilcox
2007-12-13 19:03 ` Mark Lord
2007-12-13 19:26 ` Jens Axboe
2007-12-13 19:30 ` Mark Lord
2007-12-13 19:32 ` Mark Lord
2007-12-13 19:39 ` Jens Axboe
2007-12-13 19:42 ` Mark Lord
2007-12-13 19:53 ` Jens Axboe
2007-12-13 19:59 ` Mark Lord
2007-12-13 20:05 ` Jens Axboe
2007-12-13 20:02 ` Jens Axboe
2007-12-13 20:06 ` Mark Lord
2007-12-13 20:09 ` Jens Axboe
2007-12-13 20:14 ` Mark Lord
2007-12-13 20:18 ` Mark Lord
2007-12-13 20:21 ` Jens Axboe
2007-12-13 22:02 ` Andrew Morton
2007-12-13 22:02 ` Andrew Morton
2007-12-13 22:15 ` James Bottomley
2007-12-13 22:15 ` James Bottomley
2007-12-13 22:29 ` Andrew Morton
2007-12-13 22:29 ` Andrew Morton
2007-12-13 22:33 ` Mark Lord
2007-12-13 22:33 ` Mark Lord
2007-12-13 23:13 ` Mark Lord
2007-12-13 23:13 ` Mark Lord
2007-12-14 0:05 ` Mark Lord
2007-12-14 0:05 ` Mark Lord
2007-12-14 0:30 ` Mark Lord
2007-12-14 0:30 ` Mark Lord
2007-12-14 0:37 ` Andrew Morton
2007-12-14 0:37 ` Andrew Morton
2007-12-14 0:42 ` Mark Lord
2007-12-14 0:42 ` Mark Lord
2007-12-14 0:46 ` [PATCH] fix page_alloc for larger I/O segments (improved) Mark Lord
2007-12-14 0:46 ` Mark Lord
2007-12-14 0:57 ` James Bottomley
2007-12-14 0:57 ` James Bottomley
2007-12-14 1:11 ` Andrew Morton
2007-12-14 1:11 ` Andrew Morton
2007-12-14 2:23 ` Mark Lord
2007-12-14 2:23 ` Mark Lord
2007-12-14 2:23 ` Mark Lord
2007-12-14 17:42 ` Mel Gorman
2007-12-14 17:42 ` Mel Gorman
2007-12-14 18:07 ` Mark Lord
2007-12-14 18:07 ` Mark Lord
2007-12-16 21:56 ` Mel Gorman
2007-12-16 21:56 ` Mel Gorman
2007-12-14 18:13 ` Matthew Wilcox
2007-12-14 18:13 ` Matthew Wilcox
2007-12-14 18:30 ` Mark Lord
2007-12-14 18:30 ` Mark Lord
2007-12-20 22:37 ` Matthew Wilcox
2007-12-20 22:37 ` Matthew Wilcox
2007-12-14 0:47 ` QUEUE_FLAG_CLUSTER: not working in 2.6.24 ? Mark Lord
2007-12-14 0:47 ` Mark Lord
2007-12-14 11:50 ` Mel Gorman
2007-12-14 11:50 ` Mel Gorman
2007-12-14 13:57 ` Mark Lord
2007-12-14 13:57 ` Mark Lord
2007-12-14 0:40 ` [PATCH] fix page_alloc for larger I/O segments Mark Lord
2007-12-14 0:40 ` Mark Lord
2007-12-14 1:03 ` Andrew Morton
2007-12-14 1:03 ` Andrew Morton
2007-12-14 4:00 ` Matthew Wilcox
2007-12-14 4:00 ` Matthew Wilcox
2007-12-15 1:09 ` QUEUE_FLAG_CLUSTER: not working in 2.6.24 ? Mel Gorman
2007-12-15 1:09 ` Mel Gorman
2007-12-15 2:02 ` Andrew Morton
2007-12-15 2:02 ` Andrew Morton
2007-12-15 5:55 ` Matt Mackall
2007-12-15 5:55 ` Matt Mackall
2007-12-16 21:55 ` Mel Gorman
2007-12-16 21:55 ` Mel Gorman
2007-12-17 19:24 ` Randy Dunlap
2007-12-17 19:24 ` Randy Dunlap
2007-12-18 2:42 ` Matt Mackall
2007-12-18 2:42 ` Matt Mackall
2007-12-13 22:17 ` Jens Axboe [this message]
2007-12-13 22:17 ` Jens Axboe
2007-12-13 22:02 ` VM allocates pages in reverse order again Matthew Wilcox
2007-12-13 22:02 ` Matthew Wilcox
2007-12-13 19:37 ` QUEUE_FLAG_CLUSTER: not working in 2.6.24 ? Jens Axboe
2007-12-13 19:53 ` Mark Lord
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=20071213221738.GE19673@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=liml@rtr.ca \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lkml@rtr.ca \
--cc=matthew@wil.cx \
--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.