lkml.org 
[lkml]   [2002]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch, 2.5] __vmalloc allocates spurious page?
    Hi,

    I think __vmalloc allocates an unnecessary page. While the virtual
    address space should have a one-page hole in it, that is taken care of
    by get_vm_area. All other routines (particularly map_vm_area)
    subtract PAGE_SIZE from area->size before usage, so the last page
    table entry isn't even set up.

    The unnecessary page is allocated only if size is initially a multiple
    of PAGE_SIZE, which sounds like a common case.

    Marcus

    diff -Naurd --exclude-from=/home/maalanen/linux/base/diff_exclude linus-2.5.42/mm/vmalloc.c msa-2.5.42/mm/vmalloc.c
    --- linus-2.5.42/mm/vmalloc.c Sat Oct 12 16:42:57 2002
    +++ msa-2.5.42/mm/vmalloc.c Tue Oct 15 21:53:10 2002
    @@ -387,7 +387,7 @@
    if (!area)
    return NULL;

    - nr_pages = (size+PAGE_SIZE) >> PAGE_SHIFT;
    + nr_pages = (size+PAGE_SIZE-1) >> PAGE_SHIFT;
    array_size = (nr_pages * sizeof(struct page *));

    area->nr_pages = nr_pages;
    --
    Marcus Alanen * Software Construction Laboratory *
    marcus.alanen@abo.fi * http://www.tucs.fi/Research/labs/softcons.php *

    -
    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: 2005-03-22 13:30    [W:0.035 / U:68.320 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site