debuggers.hg
changeset 3344:d263200ffdc3
bitkeeper revision 1.1159.1.494 (41c82fd4CRiE0gO721lqFijHEAIIxA)
Merge scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
Merge scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
author | kaf24@scramble.cl.cam.ac.uk |
---|---|
date | Tue Dec 21 14:14:44 2004 +0000 (2004-12-21) |
parents | a7f99d7a4027 85cbf3821127 |
children | 2bcd45440fd9 |
files | xen/arch/x86/boot/x86_32.S xen/arch/x86/shadow.c xen/arch/x86/x86_32/mm.c |
line diff
1.1 --- a/xen/arch/x86/boot/x86_32.S Tue Dec 21 09:51:09 2004 +0000 1.2 +++ b/xen/arch/x86/boot/x86_32.S Tue Dec 21 14:14:44 2004 +0000 1.3 @@ -102,15 +102,15 @@ 1: lss stack_start-__PAGE_OFFSE 1.4 1.5 /* Initialize low and high mappings of all memory with 4MB pages */ 1.6 mov $idle_pg_table-__PAGE_OFFSET,%edi 1.7 - mov $0x1e3,%eax /* PRESENT+RW+A+D+4MB+GLOBAL */ 1.8 + mov $0xe3,%eax /* PRESENT+RW+A+D+4MB */ 1.9 1: mov %eax,__PAGE_OFFSET>>20(%edi) /* high mapping */ 1.10 stosl /* low mapping */ 1.11 add $(1<<L2_PAGETABLE_SHIFT),%eax 1.12 - cmp $DIRECTMAP_PHYS_END+0x1e3,%eax 1.13 + cmp $DIRECTMAP_PHYS_END+0xe3,%eax 1.14 jne 1b 1.15 1: stosl /* low mappings cover as much physmem as possible */ 1.16 add $(1<<L2_PAGETABLE_SHIFT),%eax 1.17 - cmp $__HYPERVISOR_VIRT_START+0x1e3,%eax 1.18 + cmp $__HYPERVISOR_VIRT_START+0xe3,%eax 1.19 jne 1b 1.20 1.21 /* Initialise IDT with simple error defaults. */
2.1 --- a/xen/arch/x86/shadow.c Tue Dec 21 09:51:09 2004 +0000 2.2 +++ b/xen/arch/x86/shadow.c Tue Dec 21 14:14:44 2004 +0000 2.3 @@ -539,10 +539,10 @@ static void shadow_map_l1_into_current_l 2.4 __shadow_set_pl2e(m, va, spl2e); 2.5 2.6 gpl1e = (unsigned long *) &(linear_pg_table[ 2.7 - (va>>PAGE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]); 2.8 + (va>>L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE-1)]); 2.9 2.10 - spl1e = (unsigned long *) &shadow_linear_pg_table[ 2.11 - (va>>PAGE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]; 2.12 + spl1e = (unsigned long *) &(shadow_linear_pg_table[ 2.13 + (va>>L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE-1)]); 2.14 2.15 for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) 2.16 l1pte_propagate_from_guest(m, &gpl1e[i], &spl1e[i]);
3.1 --- a/xen/arch/x86/x86_32/mm.c Tue Dec 21 09:51:09 2004 +0000 3.2 +++ b/xen/arch/x86/x86_32/mm.c Tue Dec 21 14:14:44 2004 +0000 3.3 @@ -59,11 +59,13 @@ void __init paging_init(void) 3.4 void *ioremap_pt; 3.5 int i; 3.6 3.7 - /* Idle page table 1:1 maps the first part of physical memory. */ 3.8 - for ( i = 0; i < DOMAIN_ENTRIES_PER_L2_PAGETABLE; i++ ) 3.9 - idle_pg_table[i] = 3.10 - mk_l2_pgentry((i << L2_PAGETABLE_SHIFT) | 3.11 - __PAGE_HYPERVISOR | _PAGE_PSE); 3.12 + /* Xen heap mappings can be GLOBAL. */ 3.13 + if ( cpu_has_pge ) 3.14 + { 3.15 + for ( i = 0; i < DIRECTMAP_PHYS_END; i++ ) 3.16 + ((unsigned long *)idle_pg_table) 3.17 + [(i + PAGE_OFFSET) >> L2_PAGETABLE_SHIFT] |= _PAGE_GLOBAL; 3.18 + } 3.19 3.20 /* Create page table for ioremap(). */ 3.21 ioremap_pt = (void *)alloc_xenheap_page(); 3.22 @@ -86,7 +88,6 @@ void __init paging_init(void) 3.23 /* Set up linear page table mapping. */ 3.24 idle_pg_table[LINEAR_PT_VIRT_START >> L2_PAGETABLE_SHIFT] = 3.25 mk_l2_pgentry(__pa(idle_pg_table) | __PAGE_HYPERVISOR); 3.26 - 3.27 } 3.28 3.29 void __init zap_low_mappings(void)