linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/6] Compound Page Enhancements
@ 2007-05-25  5:17 clameter
  2007-05-25  5:17 ` [patch 1/6] Compound page handling enhancements clameter
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: clameter @ 2007-05-25  5:17 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, Mel Gorman, KAMEZAWA Hiroyuki, William Lee Irwin III

This patch enhances the handling of compound pages in the VM. It may also
be important also for the antifrag patches that need to manage a set of
higher order free pages and also for other uses of compound pages.

For now it simplifies accounting for SLUB pages but the groundwork here is
important for the large block size patches and for allowing to page migration
of larger pages. With this framework we may be able to get to a point where
compound pages keep their flags while they are free and Mel may avoid having
special functions for determining the page order of higher order freed pages.
If we can avoid the setup and teardown of higher order pages then allocation
and release of compound pages will be faster.

Looking at the handling of compound pages we see that the fact that a page
is part of a higher order page is not that interesting. The differentiation
is mainly for head pages and tail pages of higher order pages. Head pages
usually need special handling to accomodate the larger size. It is usually
an error if tail pages are encountered. Or else they need to be treated
like PAGE_SIZE pages. So a compound flag in the page flags is not what we
need. Instead we introduce a flag for the head page and another for the tail
page. The PageCompound test is preserved for backward compatibility and
will test if either PageTail or PageHead has been set.

After this patchset the uses of CompoundPage() will be reduced significantly
in the core VM. The I/O layer will still use CompoundPage() for direct I/O.
However, if we at some point convert direct I/O to also support compound
pages as a single unit then CompoundPage() there may become unecessary as
well as the leftover check in mm/swap.c. We may end up mostly with checks
for PageTail and PageHead.

-- 

--
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>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2007-05-25 18:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-25  5:17 [patch 0/6] Compound Page Enhancements clameter
2007-05-25  5:17 ` [patch 1/6] Compound page handling enhancements clameter
2007-05-25  5:17 ` [patch 2/6] compound pages: Add new support functions clameter
2007-05-25  5:17 ` [patch 3/6] compound pages: vmstat support clameter
2007-05-25  5:17 ` [patch 4/6] compound pages: Use new compound vmstat functions in SLUB clameter
2007-05-25  5:17 ` [patch 5/6] compound pages: Allow use of get_page_unless_zero with compound pages clameter
2007-05-25  5:17 ` [patch 6/6] compound pages: Allow freeing of compound pages via pagevec clameter
2007-05-25  6:00 ` [patch 0/6] Compound Page Enhancements Andrew Morton
2007-05-25 13:54   ` Christoph Lameter
2007-05-25 14:03   ` Christoph Lameter
2007-05-25 17:14     ` Andrew Morton
2007-05-25 18:56       ` Christoph Lameter
2007-05-25  8:05 ` KAMEZAWA Hiroyuki
2007-05-25 13:42   ` Christoph Lameter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox