[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Merge.
# HG changeset patch # User emellor@ewan # Node ID 41b1f86628a043fe273fbe62203fc679a5014bdc # Parent 82e8a1d7230fbbbd3128880e0914aef11658a432 # Parent b20219e27f92473589263d89576e1b045f3d1f6a Merge. diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Fri Sep 30 09:50:19 2005 @@ -129,6 +129,7 @@ * race between pending interrupts and restoration of handler. */ #ifdef CONFIG_SMP + local_irq_enable(); /* XXX Needed for smp_resume(). Clean me up. */ smp_resume(); #endif cpu_set(smp_processor_id(), cpu_online_map); diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Fri Sep 30 09:50:19 2005 @@ -446,27 +446,6 @@ static int cpucount; - -static irqreturn_t ldebug_interrupt( - int irq, void *dev_id, struct pt_regs *regs) -{ - return IRQ_HANDLED; -} - -static DEFINE_PER_CPU(int, ldebug_irq); -static char ldebug_name[NR_CPUS][15]; - -void ldebug_setup(void) -{ - int cpu = smp_processor_id(); - - per_cpu(ldebug_irq, cpu) = bind_virq_to_irq(VIRQ_DEBUG); - sprintf(ldebug_name[cpu], "ldebug%d", cpu); - BUG_ON(request_irq(per_cpu(ldebug_irq, cpu), ldebug_interrupt, - SA_INTERRUPT, ldebug_name[cpu], NULL)); -} - - extern void local_setup_timer(void); /* @@ -484,7 +463,6 @@ while (!cpu_isset(smp_processor_id(), smp_commenced_mask)) rep_nop(); local_setup_timer(); - ldebug_setup(); smp_intr_init(); local_irq_enable(); /* diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/arch/xen/kernel/reboot.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Fri Sep 30 09:50:19 2005 @@ -95,6 +95,8 @@ return -EOPNOTSUPP; } #endif + + xenbus_suspend(); preempt_disable(); #ifdef CONFIG_SMP @@ -140,8 +142,6 @@ } #endif - xenbus_suspend(); - gnttab_suspend(); #ifdef __i386__ @@ -187,10 +187,6 @@ irq_resume(); - xencons_resume(); - - xenbus_resume(); - time_resume(); #ifdef CONFIG_SMP @@ -199,6 +195,10 @@ #endif __sti(); + + xencons_resume(); + + xenbus_resume(); #ifdef CONFIG_SMP out_reenable_cpus: diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Fri Sep 30 09:50:19 2005 @@ -771,11 +771,14 @@ virt_to_mfn(&phys_to_machine_mapping[i]); } HYPERVISOR_shared_info->arch.max_pfn = max_pfn; - - - - - + } + + if ( ! (xen_start_info->flags & SIF_INITDOMAIN)) + { + acpi_disabled = 1; +#ifdef CONFIG_ACPI_BOOT + acpi_ht = 0; +#endif } #endif diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Fri Sep 30 09:50:19 2005 @@ -445,25 +445,6 @@ } #ifdef CONFIG_XEN -static irqreturn_t ldebug_interrupt( - int irq, void *dev_id, struct pt_regs *regs) -{ - return IRQ_HANDLED; -} - -static DEFINE_PER_CPU(int, ldebug_irq); -static char ldebug_name[NR_CPUS][15]; - -void ldebug_setup(void) -{ - int cpu = smp_processor_id(); - - per_cpu(ldebug_irq, cpu) = bind_virq_to_irq(VIRQ_DEBUG); - sprintf(ldebug_name[cpu], "ldebug%d", cpu); - BUG_ON(request_irq(per_cpu(ldebug_irq, cpu), ldebug_interrupt, - SA_INTERRUPT, ldebug_name[cpu], NULL)); -} - extern void local_setup_timer(void); #endif @@ -498,7 +479,6 @@ enable_APIC_timer(); #else local_setup_timer(); - ldebug_setup(); smp_intr_init(); local_irq_enable(); #endif diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c --- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c Fri Sep 30 09:50:19 2005 @@ -293,9 +293,9 @@ tp->tx = NULL; } - if (tpm->irq) + if (tp->irq) unbind_evtchn_from_irqhandler(tp->irq, NULL); - tp->evtchn = tpm->irq = 0; + tp->evtchn = tp->irq = 0; } diff -r 82e8a1d7230f -r 41b1f86628a0 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Sep 30 09:48:49 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Sep 30 09:50:19 2005 @@ -650,7 +650,6 @@ int err = 0; /* Initialize xenstore comms unless already done. */ - printk("store_evtchn = %i\n", xen_start_info->store_evtchn); err = xs_init(); if (err) { printk("XENBUS: Error initializing xenstore comms:" diff -r 82e8a1d7230f -r 41b1f86628a0 tools/debugger/gdb/README --- a/tools/debugger/gdb/README Fri Sep 30 09:48:49 2005 +++ b/tools/debugger/gdb/README Fri Sep 30 09:50:19 2005 @@ -20,10 +20,18 @@ To debug a running guest: 1. Use 'xm list' to discover its domain id ($domid). - 2. Run 'gdbserver-xen 127.0.0.1:9999 --attach $domid' - 3. Run 'gdb /path/to/vmlinux-syms-2.6.xx-xenU' + 2. Run 'gdbserver-xen 127.0.0.1:9999 --attach $domid'. + 3. Run 'gdb /path/to/vmlinux-syms-2.6.xx-xenU'. 4. From within the gdb client session: # directory /path/to/linux-2.6.xx-xenU [*] # target remote 127.0.0.1:9999 # bt # disass + +To debug a crashed guest: + 1. Add '(enable-dump yes)' to /etc/xen/xend-config.sxp before + starting xend. + 2. When the domain crashes, a core file is written to + '/var/xen/dump/<domain-name>.<domain-id>.core'. + 3. Run 'gdbserver-xen 127.0.0.1:9999 --file <core-file>'. + 4. Connect to the server as for a running guest. diff -r 82e8a1d7230f -r 41b1f86628a0 xen/arch/x86/shadow32.c --- a/xen/arch/x86/shadow32.c Fri Sep 30 09:48:49 2005 +++ b/xen/arch/x86/shadow32.c Fri Sep 30 09:50:19 2005 @@ -1836,7 +1836,7 @@ } #endif - FSH_LOG("%s(gpfn=%lx, mfn=%lx) c=%08x t=%08x", __func__, + FSH_LOG("%s(gpfn=%lx, mfn=%lx) c=%08x t=%08lx", __func__, gpfn, mfn, page->count_info, page->u.inuse.type_info); // XXX this will require some more thought... Cross-domain sharing and @@ -3017,7 +3017,7 @@ l1_pgentry_t guest_pte = *p_guest_pte; l1_pgentry_t shadow_pte = *p_shadow_pte; l1_pgentry_t snapshot_pte = p_snapshot_pte ? *p_snapshot_pte : l1e_empty(); - l1_pgentry_t eff_guest_pte; + l1_pgentry_t eff_guest_pte = l1e_empty(); unsigned long mask, eff_guest_pfn, eff_guest_mfn, shadow_mfn; int errors = 0, guest_writable; int page_table_page; @@ -3074,7 +3074,7 @@ if ( (l1e_get_flags(shadow_pte) & _PAGE_RW ) && !guest_writable ) { - printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=0x%08x page_table_page=%d\n", + printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=%lx page_table_page=%d\n", eff_guest_pfn, eff_guest_mfn, shadow_mfn, frame_table[eff_guest_mfn].u.inuse.type_info, page_table_page); @@ -3085,7 +3085,7 @@ (l1e_get_flags(shadow_pte) & _PAGE_RW ) && !(guest_writable && (l1e_get_flags(eff_guest_pte) & _PAGE_DIRTY)) ) { - printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=0x%08x page_table_page=%d\n", + printk("eff_guest_pfn=%lx eff_guest_mfn=%lx shadow_mfn=%lx t=%lx page_table_page=%d\n", eff_guest_pfn, eff_guest_mfn, shadow_mfn, frame_table[eff_guest_mfn].u.inuse.type_info, page_table_page); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |