Messages in this thread | | | Date | Sat, 4 Feb 2006 17:54:11 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH 2/5] cpuset memory spread page cache implementation and hooks |
| |
Paul Jackson <pj@sgi.com> wrote: > > But I am not sure what you mean by "uninline for certain Kconfig > combinations."
This function:
static inline struct page *page_cache_alloc(struct address_space *x) { if (cpuset_mem_spread_check()) { int n = cpuset_mem_spread_node(); return alloc_pages_node(n, mapping_gfp_mask(x), 0); } return alloc_pages(mapping_gfp_mask(x), 0); }
Really has two forms, depending upon Kconfig.
1:
static inline struct page *page_cache_alloc(struct address_space *x) { return alloc_pages(mapping_gfp_mask(x), 0); }
That should be inlined.
2:
static inline struct page *page_cache_alloc(struct address_space *x) { if (cpuset_mem_spread_check()) { int n = cpuset_mem_spread_node(); return alloc_pages_node(n, mapping_gfp_mask(x), 0); } return alloc_pages(mapping_gfp_mask(x), 0); }
That shouldn't be inlined.
That's all. One would have to fiddle a bit, work out how many callsites there are, gauge the impact on text size, etc. page_cache_alloc() seems to have a single callsite, and page_cache_alloc_cold() four, so it's a quite minor issue. - 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/
| |