Re: [PATCH v3] mm: compaction: handle incorrect Unmovable type pageblocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 26, 2012 at 02:52:56PM -0400, Rik van Riel wrote:
> >Instead of COMPACT_ASYNC_PARTIAL and COMPACT_ASYNC_FULL should we have
> >COMPACT_ASYNC_MOVABLE and COMPACT_ASYNC_UNMOVABLE? The first pass from
> >the page allocator (COMPACT_ASYNC_MOVABLE) would only consider MOVABLE
> >blocks as migration targets. The second pass (COMPACT_ASYNC_UNMOVABLE)
> >would examine UNMOVABLE blocks, rescue them and use what blocks it
> >rescues as migration targets. The third pass (COMPACT_SYNC) would work
> >as it does currently. kswapd would only ever use COMPACT_ASYNC_MOVABLE.
> >
> >That would avoid rescanning the movable blocks uselessly on the second
> >pass but should still work for Bartlomiej's workload.
> >
> >What do you think?
> 
> This makes sense.
> 
> >>In other words, could it be better to always try to
> >>rescue the unmovable blocks?
> >
> >I do not think we should always scan within unmovable blocks on the
> >first pass. I strongly suspect it would lead to excessive amounts of CPU
> >time spent in mm/compaction.c.
> 
> Maybe my systems are not typical.  I have not seen
> more than about 10% of the memory blocks marked as
> unmovable in my system.

I see even less than 10% on my systems but I do not consider them to be
typical and there will be systems where there are more unmovable pageblocks
for whatever reason (lots of page table pages, anon_vmas and vmas for
example). Hence I'd rather not assume that the number is typically low.

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]