lkml.org 
[lkml]   [2008]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subjectearly fixmap causes kmap breakage
    Hi,

    I've debugged a problem where i386+pae systems with more than a few CPUs
    blow up at boot in the kmap_atomic code.

    The problem is that the kmap_atomic pte pages all need to be contiguous
    memory because the pte is calculated via the first kmap pte page + an
    offset (so as not to have to walk the page tables every time).

    The fixmap setup code crudely allocates contiguous pte pages, which is fine,
    but if it finds an already populated pmd entry, then it will not switch it
    to a new, contiguous pte page. So the early fixmap introduces a discontig
    page table right in the middle of the kmap atomic fixmaps.

    Commenting out the eaarly fixmap setup in head_32.S gets everything working
    properly. What would be the best way to fix this? Could we put the early
    fixmap page table in initdata, and then have the fixmap setup proper first
    clear its corresponding pmd entry?

    Thanks,
    Nick



    \
     
     \ /
      Last update: 2008-12-18 22:19    [W:0.021 / U:0.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site