lkml.org 
[lkml]   [2006]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: replace "memset(...,0,PAGE_SIZE)" calls with "clear_page()"?
    On Sat, Dec 30, 2006 at 06:04:14PM -0500, Robert P. J. Day wrote:
    > fair enough. *technically*, not every call of the form
    > "memset(ptr,0,PAGE_SIZE)" necessarily represents an address that's on
    > a page boundary. but, *realistically*, i'm guessing most of them do.
    > just grabbing a random example from some grep output:
    >
    > arch/sh/mm/init.c:
    > ...
    > /* clear the zero-page */
    > memset(empty_zero_page, 0, PAGE_SIZE);
    > ...
    >
    The problem with random grepping is that it doesn't give you any context.
    clear_page() isn't available in this case since we have a couple of
    different ways of implementing it, and the optimal approach is selected
    later on. There are also additional assumptions regarding alignment that
    don't allow clear_page() to be used directly as replacement for the
    memset() callsites (as has already been pointed out for some of the other
    architectures). While the empty_zero_page in this case sits on a full page
    boundary, others do not.

    You might find some places in drivers that do this where you might be
    able to optimize things slightly with a clear_page() (or copy_page() in
    the memcpy() case), but it's going to need a lot of manual auditing
    rather than a find and replace. Any sort of wins you get out of this
    would be marginal at best, anyways.

    The more interesting case would be page clustering/bulk page clearing
    with offload engines, and there's certainly room to build on the SGI
    patches for this.
    -
    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/

    \
     
     \ /
      Last update: 2006-12-31 19:43    [W:0.030 / U:30.384 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site