[lkml]   [2006]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    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
    More majordomo info at
    Please read the FAQ at

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