[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Merge xen-2.0-testing "sync w/ unstable" changes.



ChangeSet 1.1392.1.1, 2005/04/28 21:47:24+01:00, cl349@xxxxxxxxxxxxxxxxxxxx

        Merge xen-2.0-testing "sync w/ unstable" changes.



 arch/xen/i386/Kconfig                     |   87 ++--
 arch/xen/i386/kernel/ldt.c                |    5 
 arch/xen/i386/mm/fault.c                  |    9 
 arch/xen/i386/mm/init.c                   |   15 
 arch/xen/i386/mm/pgtable.c                |  183 ++++++----
 arch/xen/kernel/Makefile                  |    6 
 arch/xen/kernel/reboot.c                  |   30 +
 include/asm-xen/asm-i386/desc.h           |    5 
 include/asm-xen/asm-i386/fixmap.h         |    3 
 include/asm-xen/asm-i386/pgtable-2level.h |   25 -
 include/asm-xen/asm-i386/pgtable.h        |   56 +--
 include/asm-xen/asm-i386/system.h         |   77 ++--
 include/asm-xen/asm-i386/tlbflush.h       |    9 
 include/asm-xen/evtchn.h                  |    8 
 include/asm-xen/hypervisor.h              |  536 ++----------------------------
 15 files changed, 325 insertions(+), 729 deletions(-)


diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig 
b/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig     2005-04-28 18:03:34 
-04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig     2005-04-28 18:03:34 
-04:00
@@ -9,6 +9,10 @@
        string
        default i386
 
+config X86
+       bool
+       default y
+
 config MMU
        bool
        default y
@@ -335,36 +339,33 @@
        def_bool HPET_TIMER && RTC=y
 
 config SMP
-       bool
-       default n
-#config SMP
-#      bool "Symmetric multi-processing support"
-#      ---help---
-#        This enables support for systems with more than one CPU. If you have
-#        a system with only one CPU, like most personal computers, say N. If
-#        you have a system with more than one CPU, say Y.
-#
-#        If you say N here, the kernel will run on single and multiprocessor
-#        machines, but will use only one CPU of a multiprocessor machine. If
-#        you say Y here, the kernel will run on many, but not all,
-#        singleprocessor machines. On a singleprocessor machine, the kernel
-#        will run faster if you say N here.
-#
-#        Note that if you say Y here and choose architecture "586" or
-#        "Pentium" under "Processor family", the kernel will not work on 486
-#        architectures. Similarly, multiprocessor kernels for the "PPro"
-#        architecture may not work on all Pentium based boards.
-#
-#        People using multiprocessor machines who say Y here should also say
-#        Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
-#        Management" code will be disabled if you say Y here.
-#
-#        See also the <file:Documentation/smp.txt>,
-#        <file:Documentation/i386/IO-APIC.txt>,
-#        <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
-#        <http://www.tldp.org/docs.html#howto>.
-#
-#        If you don't know what to do here, say N.
+       bool "Symmetric multi-processing support"
+       ---help---
+         This enables support for systems with more than one CPU. If you have
+         a system with only one CPU, like most personal computers, say N. If
+         you have a system with more than one CPU, say Y.
+
+         If you say N here, the kernel will run on single and multiprocessor
+         machines, but will use only one CPU of a multiprocessor machine. If
+         you say Y here, the kernel will run on many, but not all,
+         singleprocessor machines. On a singleprocessor machine, the kernel
+         will run faster if you say N here.
+
+         Note that if you say Y here and choose architecture "586" or
+         "Pentium" under "Processor family", the kernel will not work on 486
+         architectures. Similarly, multiprocessor kernels for the "PPro"
+         architecture may not work on all Pentium based boards.
+
+         People using multiprocessor machines who say Y here should also say
+         Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
+         Management" code will be disabled if you say Y here.
+
+         See also the <file:Documentation/smp.txt>,
+         <file:Documentation/i386/IO-APIC.txt>,
+         <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
+         <http://www.tldp.org/docs.html#howto>.
+
+         If you don't know what to do here, say N.
 
 config NR_CPUS
        int "Maximum number of CPUs (2-255)"
@@ -662,6 +663,11 @@
        -mregparm=3 is used.
 
 
+config X86_LOCAL_APIC
+       bool
+       depends on (X86_VISWS || SMP) && !X86_VOYAGER
+       default n
+
 if XEN_PHYSDEV_ACCESS
 
 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
@@ -671,15 +677,10 @@
        depends on X86_VISWS
        default y
 
-config X86_LOCAL_APIC
-       bool
-       depends on (X86_VISWS || SMP) && !X86_VOYAGER
-       default y
-
-config X86_IO_APIC
-       bool
-       depends on SMP && !(X86_VISWS || X86_VOYAGER)
-       default y
+#config X86_IO_APIC
+#      bool
+#      depends on SMP && !(X86_VISWS || X86_VOYAGER)
+#      default y
 
 config PCI
        bool "PCI support" if !X86_VISWS
@@ -951,10 +952,10 @@
        depends on SMP && !X86_VOYAGER
        default y
 
-config X86_HT
-       bool
-       depends on SMP && !(X86_VISWS || X86_VOYAGER)
-       default y
+#config X86_HT
+#      bool
+#      depends on SMP && !(X86_VISWS || X86_VOYAGER)
+#      default y
 
 config X86_BIOS_REBOOT
        bool
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c 
b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c        2005-04-28 
18:03:34 -04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c        2005-04-28 
18:03:34 -04:00
@@ -72,7 +72,6 @@
        if (oldsize) {
                make_pages_writable(oldldt, (oldsize * LDT_ENTRY_SIZE) /
                        PAGE_SIZE);
-               flush_page_update_queue();
                if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE)
                        vfree(oldldt);
                else
@@ -89,7 +88,6 @@
        memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE);
        make_pages_readonly(new->ldt, (new->size * LDT_ENTRY_SIZE) /
                            PAGE_SIZE);
-       flush_page_update_queue();
        return 0;
 }
 
@@ -102,8 +100,8 @@
        struct mm_struct * old_mm;
        int retval = 0;
 
+       memset(&mm->context, 0, sizeof(mm->context));
        init_MUTEX(&mm->context.sem);
-       mm->context.size = 0;
        old_mm = current->mm;
        if (old_mm && old_mm->context.size > 0) {
                down(&old_mm->context.sem);
@@ -124,7 +122,6 @@
                make_pages_writable(mm->context.ldt, 
                                    (mm->context.size * LDT_ENTRY_SIZE) /
                                    PAGE_SIZE);
-               flush_page_update_queue();
                if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE)
                        vfree(mm->context.ldt);
                else
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c 
b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c  2005-04-28 18:03:34 
-04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c  2005-04-28 18:03:34 
-04:00
@@ -21,6 +21,7 @@
 #include <linux/vt_kern.h>             /* For unblank_screen() */
 #include <linux/highmem.h>
 #include <linux/module.h>
+#include <linux/percpu.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
@@ -29,7 +30,7 @@
 
 extern void die(const char *,struct pt_regs *,long);
 
-pgd_t *cur_pgd;                        /* XXXsmp */
+DEFINE_PER_CPU(pgd_t *, cur_pgd);
 
 /*
  * Unlock any spinlocks which will prevent us from getting the
@@ -453,7 +454,8 @@
        printk(" at virtual address %08lx\n",address);
        printk(KERN_ALERT " printing eip:\n");
        printk("%08lx\n", regs->eip);
-       page = ((unsigned long *) cur_pgd)[address >> 22];
+       page = ((unsigned long *) per_cpu(cur_pgd, smp_processor_id()))
+           [address >> 22];
        printk(KERN_ALERT "*pde = ma %08lx pa %08lx\n", page,
               machine_to_phys(page));
        /*
@@ -529,7 +531,7 @@
                pmd_t *pmd, *pmd_k;
                pte_t *pte_k;
 
-               pgd = index + cur_pgd;
+               pgd = index + per_cpu(cur_pgd, smp_processor_id());
                pgd_k = init_mm.pgd + index;
 
                if (!pgd_present(*pgd_k))
@@ -551,7 +553,6 @@
                if (!pmd_present(*pmd_k))
                        goto no_context;
                set_pmd(pmd, *pmd_k);
-               xen_flush_page_update_queue(); /* flush PMD update */
 
                pte_k = pte_offset_kernel(pmd_k, address);
                if (!pte_present(*pte_k))
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c 
b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c   2005-04-28 18:03:34 
-04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c   2005-04-28 18:03:34 
-04:00
@@ -192,7 +192,6 @@
                                }
                                pte_ofs = 0;
                        }
-                       flush_page_update_queue();
                }
                pmd_idx = 0;
        }
@@ -356,9 +355,9 @@
         */
        memcpy(pgd_base, old_pgd, PTRS_PER_PGD_NO_HV*sizeof(pgd_t));
        make_page_readonly(pgd_base);
-       queue_pgd_pin(__pa(pgd_base));
+       xen_pgd_pin(__pa(pgd_base));
        load_cr3(pgd_base);
-       queue_pgd_unpin(__pa(old_pgd));
+       xen_pgd_unpin(__pa(old_pgd));
        make_page_writable(old_pgd);
        __flush_tlb_all();
        free_bootmem(__pa(old_pgd), PAGE_SIZE);
@@ -563,7 +562,6 @@
        zone_sizes_init();
 
        /* Switch to the real shared_info page, and clear the dummy page. */
-       flush_page_update_queue();
        set_fixmap_ma(FIX_SHARED_INFO, xen_start_info.shared_info);
        HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO);
        memset(empty_zero_page, 0, sizeof(empty_zero_page));
@@ -712,18 +710,9 @@
 
 kmem_cache_t *pgd_cache;
 kmem_cache_t *pmd_cache;
-kmem_cache_t *pte_cache;
 
 void __init pgtable_cache_init(void)
 {
-       pte_cache = kmem_cache_create("pte",
-                               PTRS_PER_PTE*sizeof(pte_t),

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.