re isolated but the check
still fails and I missed that this fix was not picked up before RC1. This
same problem has been identified in 3.7-RC1 by Tony Prisk and should be
addressed by the following patch.
Signed-off-by: Mel Gorman
Tested-by: Tony Prisk
---
mm/compaction.c |2 +-
1 file c
On Tue, Sep 25, 2012 at 01:03:52PM -0700, Andrew Morton wrote:
> On Tue, 25 Sep 2012 10:12:07 +0100
> Mel Gorman wrote:
>
> > First, we'd introduce a variant of get_pageblock_migratetype() that returns
> > all the bits for the pageblock flags and then hel
On Wed, Sep 26, 2012 at 09:49:30AM +0900, Minchan Kim wrote:
> On Tue, Sep 25, 2012 at 10:12:07AM +0100, Mel Gorman wrote:
> > On Mon, Sep 24, 2012 at 02:26:44PM -0700, Andrew Morton wrote:
> > > On Mon, 24 Sep 2012 10:39:38 +0100
> > > Mel Gorman wrote:
> > >
The clearing of PG_migrate_skip potentially takes a long time if the
zone is massive. Be safe and check if it needs to reschedule.
This is a fix for
mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated.patch
Signed-off-by: Mel Gorman
---
mm/compaction.c |3 +++
1 file
n
this case.
I think the comment saying that lru_lock is required is misleading. How
about this?
* Check TransHuge without lock and skip the whole
* pageblock if it's either a transhuge or hugetlbfs page
* as calling compound_order without preventing THP
* splitting the page underneath us may return
* surprising results.
--
Mel Gorman
SUSE Labs
On Mon, Sep 24, 2012 at 02:26:44PM -0700, Andrew Morton wrote:
> On Mon, 24 Sep 2012 10:39:38 +0100
> Mel Gorman wrote:
>
> > On Fri, Sep 21, 2012 at 02:36:56PM -0700, Andrew Morton wrote:
> >
> > > Also, what has to be done to avoid the polling altogether?
On Tue, Sep 25, 2012 at 04:05:17PM +0900, Minchan Kim wrote:
> Hi Mel,
>
> I have a question below.
>
> On Fri, Sep 21, 2012 at 11:46:19AM +0100, Mel Gorman wrote:
> > Compactions migrate scanner acquires the zone->lru_lock when scanning a
> > range
> > of pa
On Fri, Sep 21, 2012 at 02:36:56PM -0700, Andrew Morton wrote:
> On Fri, 21 Sep 2012 11:46:22 +0100
> Mel Gorman wrote:
>
> > When compaction was implemented it was known that scanning could potentially
> > be excessive. The ideal was that a counter be maintained for e
On Fri, Sep 21, 2012 at 02:35:57PM -0700, Andrew Morton wrote:
> On Fri, 21 Sep 2012 11:46:20 +0100
> Mel Gorman wrote:
>
> > Compactions free scanner acquires the zone->lock when checking for PageBuddy
> > pages and isolating them. It does this even if there are no Pa
the lock will not be
acquired at all which reduces contention on zone->lock.
Signed-off-by: Mel Gorman
Acked-by: Rik van Riel
---
mm/compaction.c | 141 ++-
1 file changed, 78 insertions(+), 63 deletions(-)
diff --git a/mm/compaction.
ut
the implementation is complex and tricky to understand. A later patch
will cache what pageblocks should be skipped and reimplements the
concept of compact_cached_free_pfn on top for both migration and
free scanners.
Signed-off-by: Mel Gorman
Acked-by: Rik van Riel
---
include/linux/mmzone.h |4 -
Hi Andrew,
Richard Davies and Shaohua Li have both reported lock contention
problems in compaction on the zone and LRU locks as well as
significant amounts of time being spent in compaction. This series
aims to reduce lock contention and scanning rates to reduce that CPU
usage. Richard reported at
all
which reduces contention on zone->lru_lock.
Signed-off-by: Mel Gorman
Acked-by: Rik van Riel
---
mm/compaction.c | 63 +--
1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/mm/compaction.c b/mm/compaction.c
index 6b55491..a
This reverts
mm-compaction-check-lock-contention-first-before-taking-lock.patch as it
is replaced by a later patch in the series.
Signed-off-by: Mel Gorman
---
mm/compaction.c |5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mm/compaction.c b/mm/compaction.c
index
d-off-by: Mel Gorman
Acked-by: Rik van Riel
---
include/linux/mmzone.h |4
mm/compaction.c| 54
mm/internal.h |4
3 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/include/linux/mmzone.h b/inclu
This reverts
mm-compaction-abort-compaction-loop-if-lock-is-contended-or-run-too-long.patch
as it is replaced by a later patch in the series.
Signed-off-by: Mel Gorman
---
mm/compaction.c | 12 +---
mm/internal.h |2 +-
2 files changed, 6 insertions(+), 8 deletions(-)
diff
ption is not obvious.
Signed-off-by: Mel Gorman
Acked-by: Rik van Riel
---
include/linux/mmzone.h |3 ++
include/linux/pageblock-flags.h | 19 +++-
mm/compaction.c | 93 +--
mm/internal.h |
tback pages isolated for migration if aborting]
[a...@linux-foundation.org: compact_zone_order requires non-NULL arg contended]
Signed-off-by: Andrea Arcangeli
Signed-off-by: Shaohua Li
Signed-off-by: Mel Gorman
Acked-by: Rik van Riel
---
mm/compaction.c | 17 -
mm/internal.h |
This reverts
mm-compaction-abort-compaction-loop-if-lock-is-contended-or-run-too-long-fix
as it is replaced by a later patch in the series.
Signed-off-by: Mel Gorman
---
mm/compaction.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/compaction.c b/mm/compaction.c
> __alloc_pages_nodemask
> | | | | |
> alloc_pages_vma
> | | | | |
> do_huge_pmd_anonymous_page
This whole section is interesting simply because it shows the per-cpu
draining cost. It's low enough that I'm not going to put much thought
into it but it's not often the per-cpu allocator sticks out like this.
Thanks Richard.
--
Mel Gorman
SUSE Labs
vcpu_run
>
>
Were the boot times acceptable even when these slightly worse figures
were recorded?
> I will follow up with the detailed traces for these three tests.
>
> Thank you!
>
Thank you for the detailed reporting and the testing, it's much
appreciated. I've already rebased the patches to Andrew's tree and tested
them overnight and the figures look good on my side. I'll update the
changelog and push them shortly.
--
Mel Gorman
SUSE Labs
the lock will not be
acquired at all which reduces contention on zone->lock.
Signed-off-by: Mel Gorman
---
mm/compaction.c | 141 +--
1 file changed, 75 insertions(+), 66 deletions(-)
diff --git a/mm/compaction.c b/mm/compaction.c
index 6
tback pages isolated for migration if aborting]
[a...@linux-foundation.org: compact_zone_order requires non-NULL arg contended]
Signed-off-by: Andrea Arcangeli
Signed-off-by: Shaohua Li
Signed-off-by: Mel Gorman
---
mm/compaction.c | 17 -
mm/internal.h |2 +-
2 files
ut
the implementation is complex and tricky to understand. A later patch
will cache what pageblocks should be skipped and reimplements the
concept of compact_cached_free_pfn on top for both migration and
free scanners.
Signed-off-by: Mel Gorman
---
include/linux/mmzone.h |4 ---
mm/compaction.c
ption is not obvious.
Signed-off-by: Mel Gorman
---
include/linux/mmzone.h |3 ++
include/linux/pageblock-flags.h | 19 +++-
mm/compaction.c | 93 +--
mm/internal.h |1 +
mm/page_alloc.c
d-off-by: Mel Gorman
---
include/linux/mmzone.h |4
mm/compaction.c| 54
mm/internal.h |4
3 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index
all
which reduces contention on zone->lru_lock.
Signed-off-by: Mel Gorman
---
mm/compaction.c | 63 +--
1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/mm/compaction.c b/mm/compaction.c
index a8de20d..6450c3e 100644
--
Hi Richard,
This series is following up from your mail at
http://www.spinics.net/lists/kvm/msg80080.html . I am pleased the lock
contention is now reduced but acknowledge that the scanning rates are
stupidly high. Fortunately, I am reasonably confident I know what is
going wrong. If all goes accor
k for
as long as possible. In the event there are no free pages in the pageblock
then the lock will not be acquired at all.
Signed-off-by: Mel Gorman
---
mm/compaction.c | 80 ---
1 file changed, 47 insertions(+), 33 deletions(-)
diff --git a
s the amount of
contention. I'm running a test at the moment with an additional patch
to record the pageblock being scanned by either the free or migrate page
scanner. This should be enough to both calculate the scanning efficiency
and how many useless blocks are scanned to determine if your "skip"
patches are behaving as expected and from there decide if the migrate
scanner needs similar logic.
--
Mel Gorman
SUSE Labs
his reduces the number of times it unnnecessarily
disables and reenables IRQs. The second is that it defers acquiring the
LRU lock for as long as possible. In cases where transparent hugepages
are encountered the LRU lock will not be acquired at all.
Signed-off-by: Mel Gorman
---
mm/compaction.c
On Wed, Sep 12, 2012 at 05:46:15PM +0100, Richard Davies wrote:
> Hi Mel - thanks for replying to my underhand bcc!
>
> Mel Gorman wrote:
> > I see that this is an old-ish bug but I did not read the full history.
> > Is it now booting faster than 3.5.0 was? I'm asking
n't
efficient. If the lock is truly contented, a lock/unlock pair will
increase the lock contention. We'd better check if the lock is contended
first. compact_trylock_irqsave perfectly meets the requirement.
Signed-off-by: Shaohua Li
Acked-by: Mel Gorman
Acked-by: Minchan Kim
Signed
33 matches
Mail list logo