direct-io.hg

changeset 7984:6d9ea03c1baa

Merge.

Signed-off-by: Steven Smith, sos22@cam.ac.uk
author sos22@douglas.cl.cam.ac.uk
date Wed Nov 23 13:38:34 2005 +0100 (2005-11-23)
parents 9cc161c08b59 1d754a4ad350
children 944cf29d126d
files
line diff
     1.1 --- a/tools/python/xen/xm/main.py	Wed Nov 23 13:35:50 2005 +0100
     1.2 +++ b/tools/python/xen/xm/main.py	Wed Nov 23 13:38:34 2005 +0100
     1.3 @@ -847,7 +847,8 @@ def deprecated(old,new):
     1.4  
     1.5  def usage(cmd=None):
     1.6      if cmd == 'create':
     1.7 -        xm_subcommand("create", "--help")
     1.8 +        mycmd = xm_lookup_cmd(cmd)
     1.9 +        mycmd( ['--help'] )
    1.10          sys.exit(1)
    1.11      if help.has_key(cmd):
    1.12          print "   " + help[cmd]
     2.1 --- a/tools/xm-test/configure.ac	Wed Nov 23 13:35:50 2005 +0100
     2.2 +++ b/tools/xm-test/configure.ac	Wed Nov 23 13:38:34 2005 +0100
     2.3 @@ -50,6 +50,7 @@ AC_CONFIG_FILES([
     2.4      tests/memmax/Makefile
     2.5      tests/memset/Makefile
     2.6      tests/migrate/Makefile
     2.7 +    tests/network-attach/Makefile
     2.8      tests/pause/Makefile
     2.9      tests/reboot/Makefile
    2.10      tests/restore/Makefile
     3.1 --- a/tools/xm-test/lib/XmTestLib/Test.py	Wed Nov 23 13:35:50 2005 +0100
     3.2 +++ b/tools/xm-test/lib/XmTestLib/Test.py	Wed Nov 23 13:38:34 2005 +0100
     3.3 @@ -161,6 +161,29 @@ def timeStamp():
     3.4      print "*** Test %s started at %s %s" % (name, t,
     3.5                                              time.tzname[time.daylight])
     3.6  
     3.7 +#
     3.8 +# Try to start a domain and attach a console to it to see if
     3.9 +# the console system is working
    3.10 +#
    3.11 +def isConsoleDead():
    3.12 +
    3.13 +    from XmTestLib import XmTestDomain, DomainError, XmConsole, ConsoleError
    3.14 +
    3.15 +    domain = XmTestDomain()
    3.16 +
    3.17 +    try:
    3.18 +        domain.start()
    3.19 +        console = XmConsole(domain.getName())
    3.20 +    except DomainError, e:
    3.21 +        return True
    3.22 +    except ConsoleError, e:
    3.23 +        return True
    3.24 +
    3.25 +    domain.destroy()
    3.26 +
    3.27 +    return False
    3.28 +    
    3.29 +
    3.30  if __name__ == "__main__":
    3.31  
    3.32      timeStamp()
     4.1 --- a/tools/xm-test/tests/Makefile.am	Wed Nov 23 13:35:50 2005 +0100
     4.2 +++ b/tools/xm-test/tests/Makefile.am	Wed Nov 23 13:38:34 2005 +0100
     4.3 @@ -13,6 +13,7 @@ SUBDIRS = 	               	\
     4.4  		list		\
     4.5  		memmax		\
     4.6  		memset		\
     4.7 +		network-attach	\
     4.8  		pause		\
     4.9  		reboot 		\
    4.10  		sedf		\
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py	Wed Nov 23 13:38:34 2005 +0100
     5.3 @@ -0,0 +1,32 @@
     5.4 +#!/usr/bin/python
     5.5 +
     5.6 +# Copyright (C) International Business Machines Corp., 2005
     5.7 +# Author: Dan Smith <danms@us.ibm.com>
     5.8 +
     5.9 +from XmTestLib import *
    5.10 +
    5.11 +# Mount /dev/ram0
    5.12 +
    5.13 +s, o = traceCommand("mkfs /dev/ram0")
    5.14 +if s != 0:
    5.15 +    FAIL("Unable to mkfs /dev/ram0")
    5.16 +
    5.17 +s, o = traceCommand("mkdir -p mnt");
    5.18 +if s != 0:
    5.19 +    FAIL("Unable to create ./mnt")
    5.20 +
    5.21 +s, o = traceCommand("mount /dev/ram0 mnt -o rw")
    5.22 +if s != 0:
    5.23 +    FAIL("Unable to mount /dev/ram0 on ./mnt")
    5.24 +
    5.25 +# Now try to start a DomU with write access to /dev/ram0
    5.26 +
    5.27 +domain = XmTestDomain();
    5.28 +domain.configAddDisk("phy:/dev/ram0", "hda1", "w")
    5.29 +
    5.30 +try:
    5.31 +    domain.start()
    5.32 +    s, o = traceCommand("umount mnt")
    5.33 +    FAIL("Bug #331: Started a DomU with write access to a rw mounted block device")
    5.34 +except DomainError, e:
    5.35 +    s, o = traceCommand("umount mnt")
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py	Wed Nov 23 13:38:34 2005 +0100
     6.3 @@ -0,0 +1,24 @@
     6.4 +#!/usr/bin/python
     6.5 +
     6.6 +# Copyright (C) International Business Machines Corp., 2005
     6.7 +# Author: Dan Smith <danms@us.ibm.com>
     6.8 +
     6.9 +from XmTestLib import *
    6.10 +
    6.11 +dom1 = XmTestDomain()
    6.12 +dom2 = XmTestDomain(dom1.getName() + "-2")
    6.13 +
    6.14 +dom1.configAddDisk("phy:/dev/ram0", "hda1", "w")
    6.15 +dom2.configAddDisk("phy:/dev/ram0", "hda1", "w")
    6.16 +
    6.17 +try:
    6.18 +    dom1.start()
    6.19 +except DomainError, e:
    6.20 +    FAIL("Unable to start domain")
    6.21 +
    6.22 +try:
    6.23 +    dom2.start()
    6.24 +    FAIL("Bug #331: Started a DomU with write access to an in-use block device")
    6.25 +except DomainError, e:
    6.26 +    pass
    6.27 +    
     7.1 --- a/tools/xm-test/tests/block-create/Makefile.am	Wed Nov 23 13:35:50 2005 +0100
     7.2 +++ b/tools/xm-test/tests/block-create/Makefile.am	Wed Nov 23 13:38:34 2005 +0100
     7.3 @@ -8,7 +8,9 @@ TESTS = 01_block_attach_device_pos.test 
     7.4  	06_block_attach_baddomain_neg.test \
     7.5  	07_block_attach_baddevice_neg.test \
     7.6  	08_block_attach_bad_filedevice_neg.test \
     7.7 -	09_block_attach_and_dettach_device_check_data_pos.test
     7.8 +	09_block_attach_and_dettach_device_check_data_pos.test \
     7.9 +	11_block_attach_shared_dom0.test \
    7.10 +	12_block_attach_shared_domU.test
    7.11  
    7.12  DISABLED = 
    7.13  
     8.1 --- a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py	Wed Nov 23 13:35:50 2005 +0100
     8.2 +++ b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py	Wed Nov 23 13:38:34 2005 +0100
     8.3 @@ -30,7 +30,7 @@ if status != 0:
     8.4      FAIL("xm mem-set %s %i returned invalid %i != 0" %
     8.5           (domain.getName(), domain.minSafeMem(), status))
     8.6  
     8.7 -console.setLimit(8192)
     8.8 +console.setLimit(65536)
     8.9  
    8.10  try:
    8.11      # See if this hits the byte limit
    8.12 @@ -39,13 +39,15 @@ except ConsoleError, e:
    8.13      if e.reason == RUNAWAY:
    8.14          # Need to stop the domain before we restart the console daemon
    8.15          domain.destroy()
    8.16 -        if verbose:
    8.17 +        if isConsoleDead():
    8.18              print "*** Attempting restart of xenconsoled"
    8.19              s, o = traceCommand("killall xenconsoled")
    8.20              s, o = traceCommand("xenconsoled")
    8.21              if s != 0:
    8.22                  print "*** Starting xenconsoled failed: %i" % s
    8.23 -        FAIL("Bug #380: I crashed the console system")
    8.24 +            FAIL("Bug #380: I crashed the console system")
    8.25 +        else:
    8.26 +            FAIL("Bug #145: Ballooning DomU too low caused run-away")
    8.27      else:
    8.28          FAIL(str(e))
    8.29  
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/tools/xm-test/tests/network-attach/01_network_attach_pos.py	Wed Nov 23 13:38:34 2005 +0100
     9.3 @@ -0,0 +1,48 @@
     9.4 +#!/usr/bin/python
     9.5 +
     9.6 +# Copyright (C) International Business Machines Corp., 2005
     9.7 +# Author: Murillo F. Bernardes <mfb@br.ibm.com>
     9.8 +
     9.9 +import sys
    9.10 +
    9.11 +from XmTestLib import *
    9.12 +from network_utils import *
    9.13 +
    9.14 +# Create a domain (default XmTestDomain, with our ramdisk)
    9.15 +domain = XmTestDomain()
    9.16 +
    9.17 +try:
    9.18 +    domain.start()
    9.19 +except DomainError, e:
    9.20 +    if verbose:
    9.21 +        print "Failed to create test domain because:"
    9.22 +        print e.extra
    9.23 +    FAIL(str(e))
    9.24 +
    9.25 +# Attach a console to it
    9.26 +try:
    9.27 +    console = XmConsole(domain.getName(), historySaveCmds=True)
    9.28 +except ConsoleError, e:
    9.29 +    FAIL(str(e))
    9.30 +
    9.31 +try:
    9.32 +    # Activate the console
    9.33 +    console.sendInput("input")
    9.34 +    # Run 'ls'
    9.35 +    run = console.runCmd("ls")
    9.36 +except ConsoleError, e:
    9.37 +    saveLog(console.getHistory())
    9.38 +    FAIL(str(e))
    9.39 +    
    9.40 +## Real test
    9.41 +status, msg = network_attach(domain.getName(), console)
    9.42 +if status:
    9.43 +    FAIL(msg)
    9.44 +
    9.45 +
    9.46 +##
    9.47 +# Close the console
    9.48 +console.closeConsole()
    9.49 +
    9.50 +# Stop the domain (nice shutdown)
    9.51 +domain.stop()
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py	Wed Nov 23 13:38:34 2005 +0100
    10.3 @@ -0,0 +1,54 @@
    10.4 +#!/usr/bin/python
    10.5 +
    10.6 +# Copyright (C) International Business Machines Corp., 2005
    10.7 +# Author: Murillo F. Bernardes <mfb@br.ibm.com>
    10.8 +
    10.9 +import sys
   10.10 +import re
   10.11 +import time
   10.12 +
   10.13 +from XmTestLib import *
   10.14 +from network_utils import *
   10.15 +
   10.16 +# Create a domain (default XmTestDomain, with our ramdisk)
   10.17 +domain = XmTestDomain()
   10.18 +
   10.19 +try:
   10.20 +    domain.start()
   10.21 +except DomainError, e:
   10.22 +    if verbose:
   10.23 +        print "Failed to create test domain because:"
   10.24 +        print e.extra
   10.25 +    FAIL(str(e))
   10.26 +
   10.27 +# Attach a console to it
   10.28 +try:
   10.29 +    console = XmConsole(domain.getName(), historySaveCmds=True)
   10.30 +except ConsoleError, e:
   10.31 +    FAIL(str(e))
   10.32 +
   10.33 +try:
   10.34 +    # Activate the console
   10.35 +    console.sendInput("input")
   10.36 +    # Run 'ls'
   10.37 +    run = console.runCmd("ls")
   10.38 +except ConsoleError, e:
   10.39 +    saveLog(console.getHistory())
   10.40 +    FAIL(str(e))
   10.41 +
   10.42 +## Real test - attach and detach
   10.43 +status, msg = network_attach(domain.getName(), console)
   10.44 +if status:
   10.45 +    FAIL(msg)
   10.46 +
   10.47 +status, msg = network_detach(domain.getName(), console)
   10.48 +if status:
   10.49 +    FAIL(msg)
   10.50 +
   10.51 +
   10.52 +
   10.53 +# Close the console
   10.54 +console.closeConsole()
   10.55 +
   10.56 +# Stop the domain (nice shutdown)
   10.57 +domain.stop()
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py	Wed Nov 23 13:38:34 2005 +0100
    11.3 @@ -0,0 +1,54 @@
    11.4 +#!/usr/bin/python
    11.5 +
    11.6 +# Copyright (C) International Business Machines Corp., 2005
    11.7 +# Author: Murillo F. Bernardes <mfb@br.ibm.com>
    11.8 +
    11.9 +import sys
   11.10 +import re
   11.11 +import time
   11.12 +
   11.13 +from XmTestLib import *
   11.14 +from network_utils import *
   11.15 +
   11.16 +# Create a domain (default XmTestDomain, with our ramdisk)
   11.17 +domain = XmTestDomain()
   11.18 +
   11.19 +try:
   11.20 +    domain.start()
   11.21 +except DomainError, e:
   11.22 +    if verbose:
   11.23 +        print "Failed to create test domain because:"
   11.24 +        print e.extra
   11.25 +    FAIL(str(e))
   11.26 +
   11.27 +# Attach a console to it
   11.28 +try:
   11.29 +    console = XmConsole(domain.getName(), historySaveCmds=True)
   11.30 +except ConsoleError, e:
   11.31 +    FAIL(str(e))
   11.32 +
   11.33 +try:
   11.34 +    # Activate the console
   11.35 +    console.sendInput("input")
   11.36 +    # Run 'ls'
   11.37 +    run = console.runCmd("ls")
   11.38 +except ConsoleError, e:
   11.39 +    saveLog(console.getHistory())
   11.40 +    FAIL(str(e))
   11.41 +    
   11.42 +for i in range(10):
   11.43 +    print "Attaching %d device" % i 
   11.44 +    status, msg = network_attach(domain.getName(), console)
   11.45 +    if status:
   11.46 +        FAIL(msg)
   11.47 +    
   11.48 +    print "Detaching %d device" % i 
   11.49 +    status, msg = network_detach(domain.getName(), console, i)
   11.50 +    if status:
   11.51 +        FAIL(msg)
   11.52 +
   11.53 +# Close the console
   11.54 +console.closeConsole()
   11.55 +
   11.56 +# Stop the domain (nice shutdown)
   11.57 +domain.stop()
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/tools/xm-test/tests/network-attach/04_network_attach_baddomain_neg.py	Wed Nov 23 13:38:34 2005 +0100
    12.3 @@ -0,0 +1,17 @@
    12.4 +#!/usr/bin/python
    12.5 +
    12.6 +# Copyright (C) International Business Machines Corp., 2005
    12.7 +# Author: Murillo F. Bernardes <mfb@br.ibm.com>
    12.8 +
    12.9 +from XmTestLib import *
   12.10 +
   12.11 +status, output = traceCommand("xm network-attach NOT-EXIST")
   12.12 +
   12.13 +eyecatcher = "Error"
   12.14 +where = output.find(eyecatcher)
   12.15 +if status == 0:
   12.16 +	FAIL("xm block-attach returned bad status, expected non 0, status is: %i" % status )
   12.17 +elif where == -1:
   12.18 +	FAIL("xm block-attach returned bad output, expected Error, output is: %s" % output )
   12.19 +	
   12.20 +
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/tools/xm-test/tests/network-attach/Makefile.am	Wed Nov 23 13:38:34 2005 +0100
    13.3 @@ -0,0 +1,24 @@
    13.4 +
    13.5 +SUBDIRS =
    13.6 +
    13.7 +TESTS = 01_network_attach_pos.test \
    13.8 +	02_network_attach_detach_pos.test \
    13.9 +	03_network_attach_detach_multiple_pos.test  \
   13.10 +	04_network_attach_baddomain_neg.test
   13.11 +
   13.12 +DISABLED = 
   13.13 +
   13.14 +EXTRA_DIST = $(TESTS) $(XFAIL_TESTS) network_utils.py
   13.15 +
   13.16 +TESTS_ENVIRONMENT=@TENV@
   13.17 +
   13.18 +%.test: %.py
   13.19 +	cp $< $@
   13.20 +	chmod +x $@
   13.21 +
   13.22 +clean-local: am_config_clean-local
   13.23 +
   13.24 +am_config_clean-local:
   13.25 +	rm -f *test
   13.26 +	rm -f *log
   13.27 +	rm -f *~
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/tools/xm-test/tests/network-attach/network_utils.py	Wed Nov 23 13:38:34 2005 +0100
    14.3 @@ -0,0 +1,37 @@
    14.4 +#!/usr/bin/python
    14.5 +
    14.6 +# Copyright (C) International Business Machines Corp., 2005
    14.7 +# Author: Murillo F. Bernardes <mfb@br.ibm.com>
    14.8 +
    14.9 +from XmTestLib import *
   14.10 +
   14.11 +def count_eth(console):
   14.12 +    try:
   14.13 +        run = console.runCmd("ifconfig -a | grep eth")
   14.14 +    except ConsoleError, e:
   14.15 +        FAIL(str(e))
   14.16 +    return = len(run['output'].splitlines())
   14.17 +
   14.18 +def network_attach(domain_name, console):
   14.19 +    eths_before = count_eth(console)
   14.20 +    status, output = traceCommand("xm network-attach %s" % domain_name)
   14.21 +    if status != 0:
   14.22 +        return -1, "xm network-attach returned invalid %i != 0" % status
   14.23 +
   14.24 +    eths_after = count_eth(console)
   14.25 +    if (eths_after != (eths_before+1)):
   14.26 +        return -2, "Network device is not actually connected to domU"
   14.27 +
   14.28 +    return 0, None 
   14.29 +
   14.30 +def network_detach(domain_name, console, num=0):
   14.31 +    eths_before = count_eth(console)
   14.32 +    status, output = traceCommand("xm network-detach %s %d" % (domain_name, num))
   14.33 +    if status != 0:
   14.34 +        return -1, "xm network-attach returned invalid %i != 0" % status
   14.35 +
   14.36 +    eths_after = count_eth(console)
   14.37 +    if eths_after != (eths_before-1):
   14.38 +    	return -2, "Network device was not actually disconnected from domU"
   14.39 +
   14.40 +    return 0, None
    15.1 --- a/xen/arch/x86/acpi/boot.c	Wed Nov 23 13:35:50 2005 +0100
    15.2 +++ b/xen/arch/x86/acpi/boot.c	Wed Nov 23 13:38:34 2005 +0100
    15.3 @@ -602,7 +602,8 @@ acpi_process_madt(void)
    15.4  		error = acpi_parse_madt_lapic_entries();
    15.5  		if (!error) {
    15.6  			acpi_lapic = 1;
    15.7 -
    15.8 +			generic_bigsmp_probe();
    15.9 + 
   15.10  			/*
   15.11  			 * Parse MADT IO-APIC entries
   15.12  			 */
    16.1 --- a/xen/arch/x86/genapic/bigsmp.c	Wed Nov 23 13:35:50 2005 +0100
    16.2 +++ b/xen/arch/x86/genapic/bigsmp.c	Wed Nov 23 13:38:34 2005 +0100
    16.3 @@ -45,7 +45,10 @@ static struct dmi_system_id __initdata b
    16.4  
    16.5  static __init int probe_bigsmp(void)
    16.6  { 
    16.7 -	dmi_check_system(bigsmp_dmi_table);
    16.8 +	if (def_to_bigsmp)
    16.9 +		dmi_bigsmp = 1;
   16.10 +	else
   16.11 +		dmi_check_system(bigsmp_dmi_table);
   16.12  	return dmi_bigsmp; 
   16.13  } 
   16.14  
    17.1 --- a/xen/arch/x86/genapic/probe.c	Wed Nov 23 13:35:50 2005 +0100
    17.2 +++ b/xen/arch/x86/genapic/probe.c	Wed Nov 23 13:38:34 2005 +0100
    17.3 @@ -29,6 +29,25 @@ struct genapic *apic_probe[] __initdata 
    17.4  	NULL,
    17.5  };
    17.6  
    17.7 +static int cmdline_apic;
    17.8 +
    17.9 +void __init generic_bigsmp_probe(void)
   17.10 +{
   17.11 +	/*
   17.12 +	 * This routine is used to switch to bigsmp mode when
   17.13 +	 * - There is no apic= option specified by the user
   17.14 +	 * - generic_apic_probe() has choosen apic_default as the sub_arch
   17.15 +	 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
   17.16 +	 */
   17.17 +
   17.18 +	if (!cmdline_apic && genapic == &apic_default)
   17.19 +		if (apic_bigsmp.probe()) {
   17.20 +			genapic = &apic_bigsmp;
   17.21 +			printk(KERN_INFO "Overriding APIC driver with %s\n",
   17.22 +			       genapic->name);
   17.23 +		}
   17.24 +}
   17.25 +
   17.26  static void __init genapic_apic_force(char *str)
   17.27  {
   17.28  	int i;
   17.29 @@ -41,7 +60,7 @@ custom_param("apic", genapic_apic_force)
   17.30  void __init generic_apic_probe(void) 
   17.31  { 
   17.32  	int i;
   17.33 -	int changed = (genapic != NULL);
   17.34 +	int changed = cmdline_apic = (genapic != NULL);
   17.35  
   17.36  	for (i = 0; !changed && apic_probe[i]; i++) { 
   17.37  		if (apic_probe[i]->probe()) {
    18.1 --- a/xen/arch/x86/mpparse.c	Wed Nov 23 13:35:50 2005 +0100
    18.2 +++ b/xen/arch/x86/mpparse.c	Wed Nov 23 13:38:34 2005 +0100
    18.3 @@ -63,6 +63,8 @@ int nr_ioapics;
    18.4  int pic_mode;
    18.5  unsigned long mp_lapic_addr;
    18.6  
    18.7 +unsigned int def_to_bigsmp;
    18.8 +
    18.9  /* Processor that is doing the boot up */
   18.10  unsigned int boot_cpu_physical_apicid = -1U;
   18.11  unsigned int boot_cpu_logical_apicid = -1U;
   18.12 @@ -213,6 +215,13 @@ void __init MP_processor_info (struct mp
   18.13  		ver = 0x10;
   18.14  	}
   18.15  	apic_version[m->mpc_apicid] = ver;
   18.16 +	if ((num_processors > 8) &&
   18.17 +	    APIC_XAPIC(ver) &&
   18.18 +	    (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
   18.19 +		def_to_bigsmp = 1;
   18.20 +	else
   18.21 +		def_to_bigsmp = 0;
   18.22 +
   18.23  	bios_cpu_apicid[num_processors - 1] = m->mpc_apicid;
   18.24  }
   18.25  
    19.1 --- a/xen/common/xmalloc.c	Wed Nov 23 13:35:50 2005 +0100
    19.2 +++ b/xen/common/xmalloc.c	Wed Nov 23 13:38:34 2005 +0100
    19.3 @@ -111,9 +111,7 @@ void *_xmalloc(size_t size, size_t align
    19.4      unsigned long flags;
    19.5  
    19.6      /* We currently always return cacheline aligned. */
    19.7 -#ifndef __ia64__
    19.8      BUG_ON(align > SMP_CACHE_BYTES);
    19.9 -#endif
   19.10  
   19.11      /* Add room for header, pad to align next header. */
   19.12      size += sizeof(struct xmalloc_hdr);
    20.1 --- a/xen/include/asm-x86/apicdef.h	Wed Nov 23 13:35:50 2005 +0100
    20.2 +++ b/xen/include/asm-x86/apicdef.h	Wed Nov 23 13:38:34 2005 +0100
    20.3 @@ -16,6 +16,7 @@
    20.4  #define			GET_APIC_VERSION(x)	((x)&0xFF)
    20.5  #define			GET_APIC_MAXLVT(x)	(((x)>>16)&0xFF)
    20.6  #define			APIC_INTEGRATED(x)	((x)&0xF0)
    20.7 +#define			APIC_XAPIC(x)		((x) >= 0x14)
    20.8  #define		APIC_TASKPRI	0x80
    20.9  #define			APIC_TPRI_MASK		0xFF
   20.10  #define		APIC_ARBPRI	0x90
    21.1 --- a/xen/include/asm-x86/mach-generic/mach_apic.h	Wed Nov 23 13:35:50 2005 +0100
    21.2 +++ b/xen/include/asm-x86/mach-generic/mach_apic.h	Wed Nov 23 13:38:34 2005 +0100
    21.3 @@ -28,4 +28,6 @@
    21.4  #define enable_apic_mode (genapic->enable_apic_mode)
    21.5  #define phys_pkg_id (genapic->phys_pkg_id)
    21.6  
    21.7 +extern void generic_bigsmp_probe(void);
    21.8 +
    21.9  #endif /* __ASM_MACH_APIC_H */
    22.1 --- a/xen/include/asm-x86/mpspec.h	Wed Nov 23 13:35:50 2005 +0100
    22.2 +++ b/xen/include/asm-x86/mpspec.h	Wed Nov 23 13:38:34 2005 +0100
    22.3 @@ -11,6 +11,7 @@ extern int mp_bus_id_to_local [MAX_MP_BU
    22.4  extern int quad_local_to_mp_bus_id [NR_CPUS/4][4];
    22.5  extern int mp_bus_id_to_pci_bus [MAX_MP_BUSSES];
    22.6  
    22.7 +extern unsigned int def_to_bigsmp;
    22.8  extern unsigned int boot_cpu_physical_apicid;
    22.9  extern int smp_found_config;
   22.10  extern void find_smp_config (void);