From: Christoph Hellwig on 15 Jun 2010 06:50 On Mon, Jun 14, 2010 at 12:17:49PM +0100, Mel Gorman wrote: > /* > + * TODO: Try merging with migrations version of putback_lru_pages > + */ > +static noinline_for_stack void putback_lru_pages(struct zone *zone, > + struct zone_reclaim_stat *reclaim_stat, > + unsigned long nr_anon, unsigned long nr_file, > + struct list_head *page_list) > +{ I hate to nitpick on this, but with noinline_for_stack a prototype really is unreadbale unless the function identifier goes to the next line. Compare the one above with: static noinline_for_stack void putback_lru_pages(struct zone *zone, struct zone_reclaim_stat *reclaim_stat, unsigned long nr_anon, unsigned long nr_file, struct list_head *page_list) > -static unsigned long shrink_inactive_list(unsigned long nr_to_scan, > +static noinline_for_stack unsigned long shrink_inactive_list(unsigned long nr_to_scan, > struct zone *zone, struct scan_control *sc, > int priority, int file) Same here, just even worse due to the spill over ove 80 characters. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Andrew Morton on 16 Jun 2010 19:50 On Mon, 14 Jun 2010 12:17:49 +0100 Mel Gorman <mel(a)csn.ul.ie> wrote: > shrink_inactive_list() sets up a pagevec to release unfreeable pages. It > uses significant amounts of stack doing this. This patch splits > shrink_inactive_list() to take the stack usage out of the main path so > that callers to writepage() do not contain an unused pagevec on the > stack. You can get the entire pagevec off the stack - just make it a static-to-shrink_inactive_list() pagevec-per-cpu. Locking just requires pinning to a CPU. We could trivially co-opt shrink_inactive_list()'s spin_lock_irq() for that, but pagevec_release() can be relatively expensive so it'd be sad to move that inside spin_lock_irq(). It'd be better to slap a get_cpu()/put_cpu() around the whole thing. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: Your Webmail Quota Has Exceeded The Set Quota Next: acpi: Fix bogus preemption logic |