[PATCH] 0/2 Buddy allocator with placement policy + prezeroing

From: Mel Gorman
Date: Sun Feb 27 2005 - 08:43:34 EST


Hi,

In the two following emails are the latest version of the placement policy
for the binary buddy allocator to reduce fragmentation and the prezeroing
patch. The changelogs are with the patches although the most significant change
to the placement policy is a fix for a bug in the usemap size calculation
(pointed out by Mike Kravetz).

The placement policy is Even Better than previous versions and can allocate
over 100 2**10 blocks of pages under loads in excess of 30 so I still
consider it ready for inclusion to the mainline. The prezeroing patches
main contribution is a handy accounting scheme for the scrubbing daemon. The
patch records how many times blocks were zeroed and what size they were. I
found that order-0 is the most common size to zero because of the per-cpu
cache. For example, after the usual stress test completed, /proc/buddyinfo
reported the following;

Zeroblock count 1775307 7696 2048 1046 2577 871 164 17 18
8 39

That means that the majority of zeroing calls was for order-0 pages. What is
of greater concern is that the prezeroing patch seriously regresses how well
fragmentation is handled making it perform almost as badly as the standard
allocator.

The patches were developed and tested heavily on 2.6.11-rc4 but are known
to patch cleanly and pass a stress test on 2.6.11-rc5.

--
Mel Gorman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/