[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


 


Rackspace

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