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);