[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] reboot.c, init.c, hypervisor.h, evtchn.h, tlbflush.h, pgtable-2level.h:
ChangeSet 1.1841, 2005/04/28 16:08:57+01:00, cl349@xxxxxxxxxxxxxxxxxxxx reboot.c, init.c, hypervisor.h, evtchn.h, tlbflush.h, pgtable-2level.h: sync w/ unstable. system.h: Fix typo. pgtable.h, fixup.c, irq.c, direct.c, timer_tsc.c, pci-dma.c, init.c, fault.c: Cleanup whitespace. page.h: Turn __pte and __pgd into #define's like the original definitions. Add casts to unsigned long for phys_to_machine_mapping and machine_to_phys_mapping. fixmap.h, Makefile: gnttab is not used in 2.0. .del-gnttab.c~4461d10e936c37ab: Delete: linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c .del-gnttab.h~974eaf5d22418ecd: Delete: linux-2.6.11-xen-sparse/include/asm-xen/gnttab.h setup.c: Add panic notification handler. Change phys_to_machine_mapping from unsigned long * to unsigned int *. Whitespace cleanups. page.h: Change phys_to_machine_mapping from unsigned long * to unsigned int *. process.c: UTSNAME -> system_utsname.release as in plain Linux. Disable preemption before reading smp_processor_id. head.S: sync w/ unstable for maintenance -- backport SMP-guest support bits. Break __xen_guest definition up in several lines. ldt.c, desc.h, common.c: Move queue flush into load_LDT(). common.c: g/c unused code. Kconfig: Fix whitespace for microcode option. b/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig | 26 - b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c | 14 b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S | 32 + b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c | 5 b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c | 41 +- b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c | 5 b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c | 38 +- b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c | 4 b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c | 8 b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c | 23 - b/linux-2.6.11-xen-sparse/arch/xen/i386/pci/direct.c | 8 b/linux-2.6.11-xen-sparse/arch/xen/i386/pci/irq.c | 2 b/linux-2.6.11-xen-sparse/arch/xen/kernel/Makefile | 2 b/linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c | 3 b/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c | 8 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/desc.h | 1 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/fixmap.h | 1 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h | 20 - b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h | 2 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable.h | 1 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/system.h | 2 b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h | 5 b/linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h | 3 b/linux-2.6.11-xen-sparse/include/asm-xen/hypervisor.h | 6 linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c | 163 ---------- linux-2.6.11-xen-sparse/include/asm-xen/gnttab.h | 35 -- 26 files changed, 135 insertions(+), 323 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:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig 2005-04-28 18:05:50 -04:00 @@ -456,22 +456,22 @@ # enters thermal throttling. config MICROCODE - tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" + tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" depends on XEN_PRIVILEGED_GUEST - ---help--- - If you say Y here and also to "/dev file system support" in the - 'File systems' section, you will be able to update the microcode on - Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II, - Pentium III, Pentium 4, Xeon etc. You will obviously need the - actual microcode binary data itself which is not shipped with the - Linux kernel. + ---help--- + If you say Y here and also to "/dev file system support" in the + 'File systems' section, you will be able to update the microcode on + Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II, + Pentium III, Pentium 4, Xeon etc. You will obviously need the + actual microcode binary data itself which is not shipped with the + Linux kernel. - For latest news and information on obtaining all the required - ingredients for this driver, check: - <http://www.urbanmyth.org/microcode/>. + For latest news and information on obtaining all the required + ingredients for this driver, check: + <http://www.urbanmyth.org/microcode/>. - To compile this driver as a module, choose M here: the - module will be called microcode. + To compile this driver as a module, choose M here: the + module will be called microcode. #config X86_MSR # tristate "/dev/cpu/*/msr - Model-specific register support" diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c 2005-04-28 18:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c 2005-04-28 18:05:50 -04:00 @@ -598,21 +598,10 @@ } /* - * Initialize the per-CPU GDT with the boot GDT, - * and set up the GDT descriptor: - */ - if (cpu) { - cpu_gdt_descr[cpu].size = GDT_SIZE; - cpu_gdt_descr[cpu].address = 0; /* XXXcl alloc page */ - BUG(); /* XXXcl SMP */ - memcpy((void *)cpu_gdt_descr[cpu].address, - (void *)cpu_gdt_descr[0].address, GDT_SIZE); - } - /* * Set up the per-thread TLS descriptor cache: */ memcpy(thread->tls_array, &get_cpu_gdt_table(cpu)[GDT_ENTRY_TLS_MIN], - GDT_ENTRY_TLS_ENTRIES * 8); + GDT_ENTRY_TLS_ENTRIES * 8); cpu_gdt_init(&cpu_gdt_descr[cpu]); @@ -633,7 +622,6 @@ load_esp0(t, thread); load_LDT(&init_mm.context); - flush_page_update_queue(); /* Clear %fs and %gs. */ asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs"); diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S 2005-04-28 18:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S 2005-04-28 18:05:50 -04:00 @@ -2,7 +2,9 @@ #include <linux/config.h> .section __xen_guest - .ascii "GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=2.0,VIRT_BASE=0xC0000000" + .ascii "GUEST_OS=linux,GUEST_VER=2.6" + .ascii ",XEN_VER=2.0" + .ascii ",VIRT_BASE=0xC0000000" .ascii ",LOADER=generic" .ascii ",PT_MODE_WRITABLE" .byte 0 @@ -31,14 +33,19 @@ ENTRY(startup_32) cld - /* Set up the stack pointer */ - lss stack_start,%esp - /* Copy the necessary stuff from xen_start_info structure. */ mov $xen_start_info_union,%edi mov $128,%ecx rep movsl +#ifdef CONFIG_SMP +ENTRY(startup_32_smp) + cld +#endif /* CONFIG_SMP */ + + /* Set up the stack pointer */ + lss stack_start,%esp + checkCPUtype: /* get vendor info */ @@ -61,11 +68,22 @@ movb %cl,X86_MASK movl %edx,X86_CAPABILITY - xorl %eax,%eax # Clear FS/GS and LDT + incb ready + + xorl %eax,%eax # Clear FS/GS and LDT movl %eax,%fs movl %eax,%gs - cld # gcc2 wants the direction flag cleared at all times + cld # gcc2 wants the direction flag cleared at all times +#ifdef CONFIG_SMP + movb ready, %cl + cmpb $1,%cl + je 1f # the first CPU calls start_kernel + # all other CPUs call initialize_secondary + call initialize_secondary + jmp L6 +1: +#endif /* CONFIG_SMP */ call start_kernel L6: jmp L6 # main should never return here, but @@ -87,6 +105,8 @@ ENTRY(stack_start) .long init_thread_union+THREAD_SIZE .long __BOOT_DS + +ready: .byte 0 .globl idt_descr .globl cpu_gdt_descr 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:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c 2005-04-28 18:05:50 -04:00 @@ -22,10 +22,8 @@ #ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ static void flush_ldt(void *null) { - if (current->active_mm) { + if (current->active_mm) load_LDT(¤t->active_mm->context); - flush_page_update_queue(); - } } #endif @@ -64,7 +62,6 @@ make_pages_readonly(pc->ldt, (pc->size * LDT_ENTRY_SIZE) / PAGE_SIZE); load_LDT(pc); - flush_page_update_queue(); #ifdef CONFIG_SMP mask = cpumask_of_cpu(smp_processor_id()); if (!cpus_equal(current->mm->cpu_vm_mask, mask)) diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c 2005-04-28 18:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c 2005-04-28 18:05:50 -04:00 @@ -49,11 +49,11 @@ /* 1. Zap current PTEs, giving away the underlying pages. */ for (i = 0; i < (1<<order); i++) { - pgd = pgd_offset_k( (vstart + (i*PAGE_SIZE))); - pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE))); - pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); - pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); - pfn = pte->pte_low >> PAGE_SHIFT; + pgd = pgd_offset_k(vstart + (i*PAGE_SIZE)); + pud = pud_offset(pgd, vstart + (i*PAGE_SIZE)); + pmd = pmd_offset(pud, vstart + (i*PAGE_SIZE)); + pte = pte_offset_kernel(pmd, vstart + (i*PAGE_SIZE)); + pfn = pte_val_ma(*pte) >> PAGE_SHIFT; queue_l1_entry_update(pte, 0); phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = INVALID_P2M_ENTRY; @@ -66,21 +66,19 @@ &pfn, 1, order) != 1) BUG(); /* 3. Map the new extent in place of old pages. */ for (i = 0; i < (1<<order); i++) { - pgd = pgd_offset_k( (vstart + (i*PAGE_SIZE))); - pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE))); - pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); - pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); - queue_l1_entry_update( - pte, ((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL); - queue_machphys_update( - pfn+i, (__pa(vstart)>>PAGE_SHIFT)+i); - phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = - pfn+i; + pgd = pgd_offset_k(vstart + (i*PAGE_SIZE)); + pud = pud_offset(pgd, vstart + (i*PAGE_SIZE)); + pmd = pmd_offset(pud, vstart + (i*PAGE_SIZE)); + pte = pte_offset_kernel(pmd, vstart + (i*PAGE_SIZE)); + queue_l1_entry_update(pte, + ((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL); + queue_machphys_update(pfn+i, (__pa(vstart)>>PAGE_SHIFT)+i); + phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = pfn+i; } /* Flush updates through and flush the TLB. */ xen_tlb_flush(); - balloon_unlock(flags); + balloon_unlock(flags); } #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) @@ -125,14 +123,13 @@ vstart = __get_free_pages(gfp, order); ret = (void *)vstart; - if (ret == NULL) - return ret; - - xen_contig_memory(vstart, order); - memset(ret, 0, size); - *dma_handle = virt_to_bus(ret); + if (ret != NULL) { + xen_contig_memory(vstart, order); + memset(ret, 0, size); + *dma_handle = virt_to_bus(ret); + } return ret; } diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c 2005-04-28 18:05:50 -04:00 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c 2005-04-28 18:05:50 -04:00 @@ -94,10 +94,11 @@ extern int set_timeout_timer(void); void xen_idle(void) { - int cpu = smp_processor_id(); + int cpu; local_irq_disable(); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |