[lkml]   [2009]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 11/20] Inline get_page_from_freelist() in the fast-path
    On Monday 23 February 2009 10:17:20 Mel Gorman wrote:
    > In the best-case scenario, use an inlined version of
    > get_page_from_freelist(). This increases the size of the text but avoids
    > time spent pushing arguments onto the stack.

    I'm quite fond of inlining ;) But it can increase register pressure as
    well as icache footprint as well. x86-64 isn't spilling a lot more
    registers to stack after these changes, is it?


    > @@ -1780,8 +1791,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int
    > order, if (!preferred_zone)
    > return NULL;
    > - /* First allocation attempt */
    > - page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
    > + /* First allocation attempt. Fastpath uses inlined version */
    > + page = __get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
    > zonelist, high_zoneidx, ALLOC_WMARK_LOW|ALLOC_CPUSET,
    > preferred_zone, migratetype);
    > if (unlikely(!page))

    I think in a common case where there is background reclaim going on,
    it will be quite common to fail this, won't it? (I haven't run
    statistics though).

    In which case you will get extra icache footprint. What speedup does
    it give in the cache-hot microbenchmark case?

     \ /
      Last update: 2009-02-23 16:35    [W:0.039 / U:25.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site