WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [IA64] MAX_VIRT_CPUS and NR_CPUS

# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 8e0b9f31cf3f8bc8a4646a1eb42596e0e9b0a880
# Parent  71e0c2ed44478fddb4773fa347ceab365292e004
[IA64] MAX_VIRT_CPUS and NR_CPUS

Increase MAX_VIRT_CPUS and NR_CPUS to 64.
Check maxcpus < MAX_VIRT_CPUS.
Check size of shared_info (<= PAGE_SIZE).

Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>

diff -r 71e0c2ed4447 -r 8e0b9f31cf3f xen/arch/ia64/asm-offsets.c
--- a/xen/arch/ia64/asm-offsets.c       Fri Apr 07 11:35:29 2006 -0600
+++ b/xen/arch/ia64/asm-offsets.c       Fri Apr 07 11:40:33 2006 -0600
@@ -30,6 +30,7 @@ void foo(void)
        DEFINE(IA64_SWITCH_STACK_SIZE, sizeof (struct switch_stack));
        DEFINE(IA64_CPU_SIZE, sizeof (struct cpuinfo_ia64));
        DEFINE(UNW_FRAME_INFO_SIZE, sizeof (struct unw_frame_info));
+       DEFINE(SHARED_INFO_SIZE, sizeof (struct shared_info));
 
        BLANK();
 #ifdef   VTI_DEBUG
diff -r 71e0c2ed4447 -r 8e0b9f31cf3f xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Fri Apr 07 11:35:29 2006 -0600
+++ b/xen/arch/ia64/xen/xensetup.c      Fri Apr 07 11:40:33 2006 -0600
@@ -24,6 +24,12 @@
 #include <asm/vmx.h>
 #include <linux/efi.h>
 
+/* Be sure the struct shared_info fits on a page because it is mapped in
+   domain. */
+#if SHARED_INFO_SIZE > PAGE_SIZE
+ #error "struct shared_info does not not fit in PAGE_SIZE"
+#endif
+
 unsigned long xenheap_phys_end;
 
 char saved_command_line[COMMAND_LINE_SIZE];
@@ -321,7 +327,13 @@ printk("About to call timer_init()\n");
         //boot_cpu_data.x86_num_cores = 1;
     }
 
+    /* A vcpu is created for the idle domain on every physical cpu.
+       Limit the number of cpus to the maximum number of vcpus.  */
+    if (max_cpus > MAX_VIRT_CPUS)
+        max_cpus = MAX_VIRT_CPUS;
+
     smp_prepare_cpus(max_cpus);
+
     /* We aren't hotplug-capable yet. */
     for_each_cpu ( i )
         cpu_set(i, cpu_present_map);
diff -r 71e0c2ed4447 -r 8e0b9f31cf3f xen/include/asm-ia64/config.h
--- a/xen/include/asm-ia64/config.h     Fri Apr 07 11:35:29 2006 -0600
+++ b/xen/include/asm-ia64/config.h     Fri Apr 07 11:40:33 2006 -0600
@@ -25,17 +25,12 @@
 
 #ifdef CONFIG_XEN_SMP
 #define CONFIG_SMP 1
-#define NR_CPUS 8
-#define CONFIG_NR_CPUS 8
+#define NR_CPUS 64
 #else
 #undef CONFIG_SMP
 #define NR_CPUS 1
-#define CONFIG_NR_CPUS 1
-#endif
-//#define NR_CPUS 16
-//#define CONFIG_NR_CPUS 16
-//leave SMP for a later time
-//#undef CONFIG_SMP
+#endif
+#define CONFIG_NR_CPUS NR_CPUS
 
 #define supervisor_mode_kernel (0)
 
@@ -121,9 +116,6 @@ extern char _end[]; /* standard ELF symb
 #define CMPXCHG_BUGCHECK_DECL
 
 // from include/asm-ia64/smp.h
-#ifdef CONFIG_SMP
-//#warning "Lots of things to fix to enable CONFIG_SMP!"
-#endif
 #define        get_cpu()       smp_processor_id()
 #define put_cpu()      do {} while(0)
 
@@ -284,13 +276,6 @@ extern int ht_per_core;
 #endif /* __ASSEMBLY__ */
 #endif /* __XEN_IA64_CONFIG_H__ */
 
-// needed for include/xen/smp.h
-//#ifdef CONFIG_SMP
-//#define raw_smp_processor_id()       current->processor
-//#else
-//#define raw_smp_processor_id()       0
-//#endif
-
 #ifndef __ASSEMBLY__
 #include <linux/linkage.h>
 #define FORCE_CRASH()  asm("break.m 0;;");
diff -r 71e0c2ed4447 -r 8e0b9f31cf3f xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h    Fri Apr 07 11:35:29 2006 -0600
+++ b/xen/include/public/arch-ia64.h    Fri Apr 07 11:40:33 2006 -0600
@@ -31,7 +31,7 @@ DEFINE_GUEST_HANDLE(void);
 
 /* Maximum number of virtual CPUs in multi-processor guests. */
 /* WARNING: before changing this, check that shared_info fits on a page */
-#define MAX_VIRT_CPUS 4
+#define MAX_VIRT_CPUS 64
 
 #ifndef __ASSEMBLY__
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] MAX_VIRT_CPUS and NR_CPUS, Xen patchbot -unstable <=