WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

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

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Merge xen-2.0-testing "sync w/ unstable" changes.
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Thu, 28 Apr 2005 20:47:24 +0000
Delivery-date: Thu, 28 Apr 2005 22:03:10 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>