lkml.org 
[lkml]   [2004]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch] VM accounting change
    I apologize for not having more first hand info on this problem.

    I've been told that recent changes in vm accounting in mmap have
    caused some problems with our driver during mmap.

    the problem seems to stem from us oring vma->vm_flags w/ (VM_LOCKED
    | VM_IO). we do this for agp and pci pages that are mapped to push
    buffers. VM_LOCKED since we don't want the pages to move and VM_IO so
    they are not dumped during a core dump.

    I've been told that the new vm accounting changes call
    make_pages_present() for all pages in a vma range marked VM_LOCKED and
    that this causes problems with our driver. the attached patch modifies
    this to not call make_pages_present() if VM_IO is also set.

    what I'm unclear on is if this is a valid fix. should
    make_pages_present work for memory ranges that are already mapped and
    locked down (via PG_reserved)? are we wrong in using (VM_IO |
    VM_LOCKED) for our pages? is this fix correct?

    Thanks,
    Terence



    diff -ru linux-2.6.10-rc1-bk8/mm/mmap.c linux-2.6.10-rc1-bk8-2/mm/mmap.c
    --- linux-2.6.10-rc1-bk8/mm/mmap.c 2004-11-06 15:04:28.000000000 +0100
    +++ linux-2.6.10-rc1-bk8-2/mm/mmap.c 2004-11-06 15:39:47.000000000 +0100
    @@ -1011,7 +1011,8 @@
    __vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
    if (vm_flags & VM_LOCKED) {
    mm->locked_vm += len >> PAGE_SHIFT;
    - make_pages_present(addr, addr + len);
    + if (!(vm_flags & VM_IO))
    + make_pages_present(addr, addr + len);
    }
    if (flags & MAP_POPULATE) {
    up_write(&mm->mmap_sem);
    \
     
     \ /
      Last update: 2005-03-22 14:07    [W:0.020 / U:95.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site