[lkml]   [2004]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
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
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
+++ 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);
- 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
More majordomo info at
Please read the FAQ at
 \ /
  Last update: 2005-03-22 14:02    [W:0.080 / U:7.560 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site