lkml.org 
[lkml]   [2004]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH][2.6-mm] setup_identity_mappings depends on zone init.
    On Mon, 15 Mar 2004, Andrew Morton wrote:

    > Calling page_address_init() earlier isn't the fix though - pmd pages aren't
    > in highmem so we should never have got that far. Looks like the pgd or the
    > pmd page contains garbage. Did you try it without CONFIG_DEBUG_SLAB?
    >
    > Nick was seeing slab 0x6b patterns on the NUMAQ, inside the pmd, so there's
    > some consistency there. We do have one early setup fix from Manfred, but
    > it's unlikely to cure this.
    >
    > I'll have a play with your .config, see if I can reproduce it. If not I'll
    > squeeze off -mm3 and would ask you to retest on that if poss.

    I spent a bit of time on this today, and the problem appears to be that we haven't
    done mem_map or zone initialisation, so mem_map[pfn]->flags is also wrong
    (e.g. PG_highmem tests). This is still triple faulting on 2.6.5-rc3-mm4 on my
    boxes. CONFIG_HIGHMEM and any setup without 4MB pages should do it. The
    following patch got an approving nod from Bill.

    Index: linux-2.6.5-rc3-mm4/arch/i386/mm/init.c
    ===================================================================
    RCS file: /home/cvsroot/linux-2.6.5-rc3-mm4/arch/i386/mm/init.c,v
    retrieving revision 1.1.1.1
    diff -u -p -B -r1.1.1.1 init.c
    --- linux-2.6.5-rc3-mm4/arch/i386/mm/init.c 2 Apr 2004 03:55:20 -0000 1.1.1.1
    +++ linux-2.6.5-rc3-mm4/arch/i386/mm/init.c 4 Apr 2004 09:04:48 -0000
    @@ -206,7 +206,7 @@ void setup_identity_mappings(pgd_t *pgd_
    if (!pmd_present(*pmd))
    pte_base = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
    else
    - pte_base = (pte_t *) page_address(pmd_page(*pmd));
    + pte_base = (pte_t *) pmd_page_kernel(*pmd);
    pte = pte_base;
    for (k = 0; k < PTRS_PER_PTE; pte++, k++) {
    vaddr = i*PGDIR_SIZE + j*PMD_SIZE + k*PAGE_SIZE;
    -
    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 14:02    [W:0.023 / U:0.820 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site