Messages in this thread | | | Date | Wed, 12 Oct 2005 09:43:54 -0700 | From | mike kravetz <> | Subject | Re: [PATCH 5/8] Fragmentation Avoidance V17: 005_fallback |
| |
On Tue, Oct 11, 2005 at 04:12:47PM +0100, Mel Gorman wrote: > This patch implements fallback logic. In the event there is no 2^(MAX_ORDER-1) > blocks of pages left, this will help the system decide what list to use. The > highlights of the patch are; > > o Define a RCLM_FALLBACK type for fallbacks > o Use a percentage of each zone for fallbacks. When a reserved pool of pages > is depleted, it will try and use RCLM_FALLBACK before using anything else. > This greatly reduces the amount of fallbacks causing fragmentation without > needing complex balancing algorithms
I'm having a little trouble seeing how adding a new type (RCLM_FALLBACK) helps. Seems to me that pages put into the RCLM_FALLBACK area would have gone to the global free list and available to anyone. I must be missing something here.
> +int fallback_allocs[RCLM_TYPES][RCLM_TYPES+1] = { > + {RCLM_NORCLM, RCLM_FALLBACK, RCLM_KERN, RCLM_USER, RCLM_TYPES}, > + {RCLM_KERN, RCLM_FALLBACK, RCLM_NORCLM, RCLM_USER, RCLM_TYPES}, > + {RCLM_USER, RCLM_FALLBACK, RCLM_NORCLM, RCLM_KERN, RCLM_TYPES}, > + {RCLM_FALLBACK, RCLM_NORCLM, RCLM_KERN, RCLM_USER, RCLM_TYPES}
Do you really need that last line? Can an allocation of type RCLM_FALLBACK realy be made?
-- Mike - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |