The patch titled mm: fix page allocation for larger I/O segments has been removed from the -mm tree. Its filename was mm-fix-page-allocation-for-larger-i-o-segments.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: mm: fix page allocation for larger I/O segments From: Mel Gorman <mel@xxxxxxxxx> In some cases the IO subsystem is able to merge requests if the pages are adjacent in physical memory. This was achieved in the allocator by having expand() return pages in physically contiguous order in situations were a large buddy was split. However, list-based anti-fragmentation changed the order pages were returned in to avoid searching in buffered_rmqueue() for a page of the appropriate migrate type. This patch restores behaviour of rmqueue_bulk() preserving the physical order of pages returned by the allocator without incurring increased search costs for anti-fragmentation. Signed-off-by: Mel Gorman <mel@xxxxxxxxx> Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxx> Cc: Jens Axboe <jens.axboe@xxxxxxxxxx> Cc: Mark Lord <mlord@xxxxxxxxx Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/page_alloc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff -puN mm/page_alloc.c~mm-fix-page-allocation-for-larger-i-o-segments mm/page_alloc.c --- a/mm/page_alloc.c~mm-fix-page-allocation-for-larger-i-o-segments +++ a/mm/page_alloc.c @@ -847,8 +847,19 @@ static int rmqueue_bulk(struct zone *zon struct page *page = __rmqueue(zone, order, migratetype); if (unlikely(page == NULL)) break; + + /* + * Split buddy pages returned by expand() are received here + * in physical page order. The page is added to the callers and + * list and the list head then moves forward. From the callers + * perspective, the linked list is ordered by page number in + * some conditions. This is useful for IO devices that can + * merge IO requests if the physical pages are ordered + * properly. + */ list_add(&page->lru, list); set_page_private(page, migratetype); + list = &page->lru; } spin_unlock(&zone->lock); return i; _ Patches currently in -mm which might be from mel@xxxxxxxxx are origin.patch fix-crash-with-flat_memory-and-arch_pfn_offset-=-0.patch memory-hotplug-add-removable-to-sysfs-to-show-memblock-removability.patch page-allocator-clean-up-pcp-draining-functions.patch page-allocator-get-rid-of-the-list-of-cold-pages.patch page-allocator-get-rid-of-the-list-of-cold-pages-fix.patch memcgroup-tidy-up-mem_cgroup_charge_common.patch memcgroup-fix-hang-with-shmem-tmpfs.patch page-owner-tracking-leak-detector.patch add-debugging-aid-for-memory-initialisation-problems.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html