ia64/xen-unstable
changeset 7148:41b1f86628a0
Merge.
author | emellor@ewan |
---|---|
date | Fri Sep 30 10:50:19 2005 +0100 (2005-09-30) |
parents | 82e8a1d7230f b20219e27f92 |
children | 345e517bab57 |
files |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Fri Sep 30 10:48:49 2005 +0100 1.2 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Fri Sep 30 10:50:19 2005 +0100 1.3 @@ -129,6 +129,7 @@ static inline void play_dead(void) 1.4 * race between pending interrupts and restoration of handler. 1.5 */ 1.6 #ifdef CONFIG_SMP 1.7 + local_irq_enable(); /* XXX Needed for smp_resume(). Clean me up. */ 1.8 smp_resume(); 1.9 #endif 1.10 cpu_set(smp_processor_id(), cpu_online_map);
2.1 --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Fri Sep 30 10:48:49 2005 +0100 2.2 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Fri Sep 30 10:50:19 2005 +0100 2.3 @@ -446,27 +446,6 @@ static void __init smp_callin(void) 2.4 2.5 static int cpucount; 2.6 2.7 - 2.8 -static irqreturn_t ldebug_interrupt( 2.9 - int irq, void *dev_id, struct pt_regs *regs) 2.10 -{ 2.11 - return IRQ_HANDLED; 2.12 -} 2.13 - 2.14 -static DEFINE_PER_CPU(int, ldebug_irq); 2.15 -static char ldebug_name[NR_CPUS][15]; 2.16 - 2.17 -void ldebug_setup(void) 2.18 -{ 2.19 - int cpu = smp_processor_id(); 2.20 - 2.21 - per_cpu(ldebug_irq, cpu) = bind_virq_to_irq(VIRQ_DEBUG); 2.22 - sprintf(ldebug_name[cpu], "ldebug%d", cpu); 2.23 - BUG_ON(request_irq(per_cpu(ldebug_irq, cpu), ldebug_interrupt, 2.24 - SA_INTERRUPT, ldebug_name[cpu], NULL)); 2.25 -} 2.26 - 2.27 - 2.28 extern void local_setup_timer(void); 2.29 2.30 /* 2.31 @@ -484,7 +463,6 @@ static void __init start_secondary(void 2.32 while (!cpu_isset(smp_processor_id(), smp_commenced_mask)) 2.33 rep_nop(); 2.34 local_setup_timer(); 2.35 - ldebug_setup(); 2.36 smp_intr_init(); 2.37 local_irq_enable(); 2.38 /*
3.1 --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Fri Sep 30 10:48:49 2005 +0100 3.2 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Fri Sep 30 10:50:19 2005 +0100 3.3 @@ -96,6 +96,8 @@ static int __do_suspend(void *ignore) 3.4 } 3.5 #endif 3.6 3.7 + xenbus_suspend(); 3.8 + 3.9 preempt_disable(); 3.10 #ifdef CONFIG_SMP 3.11 /* Take all of the other cpus offline. We need to be careful not 3.12 @@ -140,8 +142,6 @@ static int __do_suspend(void *ignore) 3.13 } 3.14 #endif 3.15 3.16 - xenbus_suspend(); 3.17 - 3.18 gnttab_suspend(); 3.19 3.20 #ifdef __i386__ 3.21 @@ -187,10 +187,6 @@ static int __do_suspend(void *ignore) 3.22 3.23 irq_resume(); 3.24 3.25 - xencons_resume(); 3.26 - 3.27 - xenbus_resume(); 3.28 - 3.29 time_resume(); 3.30 3.31 #ifdef CONFIG_SMP 3.32 @@ -200,6 +196,10 @@ static int __do_suspend(void *ignore) 3.33 3.34 __sti(); 3.35 3.36 + xencons_resume(); 3.37 + 3.38 + xenbus_resume(); 3.39 + 3.40 #ifdef CONFIG_SMP 3.41 out_reenable_cpus: 3.42 for_each_cpu_mask(i, prev_online_cpus) {
4.1 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Fri Sep 30 10:48:49 2005 +0100 4.2 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Fri Sep 30 10:50:19 2005 +0100 4.3 @@ -771,11 +771,14 @@ void __init setup_arch(char **cmdline_p) 4.4 virt_to_mfn(&phys_to_machine_mapping[i]); 4.5 } 4.6 HYPERVISOR_shared_info->arch.max_pfn = max_pfn; 4.7 - 4.8 - 4.9 + } 4.10 4.11 - 4.12 - 4.13 + if ( ! (xen_start_info->flags & SIF_INITDOMAIN)) 4.14 + { 4.15 + acpi_disabled = 1; 4.16 +#ifdef CONFIG_ACPI_BOOT 4.17 + acpi_ht = 0; 4.18 +#endif 4.19 } 4.20 #endif 4.21
5.1 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Fri Sep 30 10:48:49 2005 +0100 5.2 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Fri Sep 30 10:50:19 2005 +0100 5.3 @@ -445,25 +445,6 @@ void __cpuinit smp_callin(void) 5.4 } 5.5 5.6 #ifdef CONFIG_XEN 5.7 -static irqreturn_t ldebug_interrupt( 5.8 - int irq, void *dev_id, struct pt_regs *regs) 5.9 -{ 5.10 - return IRQ_HANDLED; 5.11 -} 5.12 - 5.13 -static DEFINE_PER_CPU(int, ldebug_irq); 5.14 -static char ldebug_name[NR_CPUS][15]; 5.15 - 5.16 -void ldebug_setup(void) 5.17 -{ 5.18 - int cpu = smp_processor_id(); 5.19 - 5.20 - per_cpu(ldebug_irq, cpu) = bind_virq_to_irq(VIRQ_DEBUG); 5.21 - sprintf(ldebug_name[cpu], "ldebug%d", cpu); 5.22 - BUG_ON(request_irq(per_cpu(ldebug_irq, cpu), ldebug_interrupt, 5.23 - SA_INTERRUPT, ldebug_name[cpu], NULL)); 5.24 -} 5.25 - 5.26 extern void local_setup_timer(void); 5.27 #endif 5.28 5.29 @@ -498,7 +479,6 @@ void __cpuinit start_secondary(void) 5.30 enable_APIC_timer(); 5.31 #else 5.32 local_setup_timer(); 5.33 - ldebug_setup(); 5.34 smp_intr_init(); 5.35 local_irq_enable(); 5.36 #endif
6.1 --- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c Fri Sep 30 10:48:49 2005 +0100 6.2 +++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c Fri Sep 30 10:50:19 2005 +0100 6.3 @@ -293,9 +293,9 @@ static void destroy_tpmring(struct tpmfr 6.4 tp->tx = NULL; 6.5 } 6.6 6.7 - if (tpm->irq) 6.8 + if (tp->irq) 6.9 unbind_evtchn_from_irqhandler(tp->irq, NULL); 6.10 - tp->evtchn = tpm->irq = 0; 6.11 + tp->evtchn = tp->irq = 0; 6.12 } 6.13 6.14
7.1 --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Sep 30 10:48:49 2005 +0100 7.2 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Sep 30 10:50:19 2005 +0100 7.3 @@ -650,7 +650,6 @@ int do_xenbus_probe(void *unused) 7.4 int err = 0; 7.5 7.6 /* Initialize xenstore comms unless already done. */ 7.7 - printk("store_evtchn = %i\n", xen_start_info->store_evtchn); 7.8 err = xs_init(); 7.9 if (err) { 7.10 printk("XENBUS: Error initializing xenstore comms:"
8.1 --- a/tools/debugger/gdb/README Fri Sep 30 10:48:49 2005 +0100 8.2 +++ b/tools/debugger/gdb/README Fri Sep 30 10:50:19 2005 +0100 8.3 @@ -20,10 +20,18 @@ To build a debuggable guest kernel image 8.4 8.5 To debug a running guest: 8.6 1. Use 'xm list' to discover its domain id ($domid). 8.7 - 2. Run 'gdbserver-xen 127.0.0.1:9999 --attach $domid' 8.8 - 3. Run 'gdb /path/to/vmlinux-syms-2.6.xx-xenU' 8.9 + 2. Run 'gdbserver-xen 127.0.0.1:9999 --attach $domid'. 8.10 + 3. Run 'gdb /path/to/vmlinux-syms-2.6.xx-xenU'. 8.11 4. From within the gdb client session: 8.12 # directory /path/to/linux-2.6.xx-xenU [*] 8.13 # target remote 127.0.0.1:9999 8.14 # bt 8.15 # disass 8.16 + 8.17 +To debug a crashed guest: 8.18 + 1. Add '(enable-dump yes)' to /etc/xen/xend-config.sxp before 8.19 + starting xend. 8.20 + 2. When the domain crashes, a core file is written to 8.21 + '/var/xen/dump/<domain-name>.<domain-id>.core'. 8.22 + 3. Run 'gdbserver-xen 127.0.0.1:9999 --file <core-file>'. 8.23 + 4. Connect to the server as for a running guest.
9.1 --- a/xen/arch/x86/shadow32.c Fri Sep 30 10:48:49 2005 +0100 9.2 +++ b/xen/arch/x86/shadow32.c Fri Sep 30 10:50:19 2005 +0100 9.3 @@ -1836,7 +1836,7 @@ shadow_mark_mfn_out_of_sync(struct vcpu 9.4 } 9.5 #endif 9.6 9.7 - FSH_LOG("%s(gpfn=%lx, mfn=%lx) c=%08x t=%08x", __func__, 9.8 + FSH_LOG("%s(gpfn=%lx, mfn=%lx) c=%08x t=%08lx", __func__, 9.9 gpfn, mfn, page->count_info, page->u.inuse.type_info); 9.10 9.11 // XXX this will require some more thought... Cross-domain sharing and 9.12 @@ -3017,7 +3017,7 @@ static int check_pte( 9.13 l1_pgentry_t guest_pte = *p_guest_pte; 9.14 l1_pgentry_t shadow_pte = *p_shadow_pte; 9.15 l1_pgentry_t snapshot_pte = p_snapshot_pte ? *p_snapshot_pte : l1e_empty(); 9.16 - l1_pgentry_t eff_guest_pte; 9.17 + l1_pgentry_t eff_guest_pte = l1e_empty(); 9.18 unsigned long mask, eff_guest_pfn, eff_guest_mfn, shadow_mfn; 9.19 int errors = 0, guest_writable; 9.20 int page_table_page; 9.21 @@ -3074,7 +3074,7 @@ static int check_pte( 9.22 9.23 if ( (l1e_get_flags(shadow_pte) & _PAGE_RW ) && !guest_writable ) 9.24 { 9.25 - printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=0x%08x page_table_page=%d\n", 9.26 + printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=%lx page_table_page=%d\n", 9.27 eff_guest_pfn, eff_guest_mfn, shadow_mfn, 9.28 frame_table[eff_guest_mfn].u.inuse.type_info, 9.29 page_table_page); 9.30 @@ -3085,7 +3085,7 @@ static int check_pte( 9.31 (l1e_get_flags(shadow_pte) & _PAGE_RW ) && 9.32 !(guest_writable && (l1e_get_flags(eff_guest_pte) & _PAGE_DIRTY)) ) 9.33 { 9.34 - printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=0x%08x page_table_page=%d\n", 9.35 + printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=%lx page_table_page=%d\n", 9.36 eff_guest_pfn, eff_guest_mfn, shadow_mfn, 9.37 frame_table[eff_guest_mfn].u.inuse.type_info, 9.38 page_table_page);