david ahern wrote:
In RHEL 5.1 <linux/notifier.h> defines:#define CPU_TASKS_FROZEN 0x0010 #define CPU_ONLINE_FROZEN (CPU_ONLINE | CPU_TASKS_FROZEN) #define CPU_DEAD_FROZEN (CPU_DEAD | CPU_TASKS_FROZEN) which means in kvm-51/kernel/external-module-compat.h the '#ifndef CPU_TASKS_FROZEN' needs to have a case. For my purposes, I just moved up the endif around what was defined.
I committed a change which renders this unnecessary. Will be part of kvm-52.
With that change, kvm-51 compiles. I am still seeing 32-bit SMP guests hang on boot for both 32-bit and 64-bit hosts (again running RHEL5.1).
I still don't. Can you test the attached patch? -- error compiling committee.c: too many arguments to function
diff --git a/kernel/external-module-compat.h b/kernel/external-module-compat.h index 2b005e9..29917e4 100644 --- a/kernel/external-module-compat.h +++ b/kernel/external-module-compat.h @@ -45,20 +45,25 @@ #include <linux/spinlock.h> #include <linux/smp.h> -static spinlock_t scfs_lock = SPIN_LOCK_UNLOCKED; -static int scfs_cpu; -static void (*scfs_func)(void *info); +struct scfs_thunk_info { + int cpu; + void (*func)(void *info); + void *info; +}; -static void scfs_thunk(void *info) +static inline void scfs_thunk(void *_thunk) { - if (raw_smp_processor_id() == scfs_cpu) - scfs_func(info); + struct scfs_thunk_info *thunk = _thunk; + + if (raw_smp_processor_id() == thunk->cpu) + thunk->func(thunk->info); } static inline int smp_call_function_single1(int cpu, void (*func)(void *info), void *info, int nonatomic, int wait) { int r, this_cpu; + struct scfs_thunk_info thunk; this_cpu = get_cpu(); if (cpu == this_cpu) { @@ -67,11 +72,10 @@ static inline int smp_call_function_single1(int cpu, void (*func)(void *info), func(info); local_irq_enable(); } else { - spin_lock(&scfs_lock); - scfs_cpu = cpu; - scfs_func = func; - r = smp_call_function(scfs_thunk, info, nonatomic, wait); - spin_unlock(&scfs_lock); + thunk.cpu = cpu; + thunk.func = func; + thunk.info = info; + r = smp_call_function(scfs_thunk, &thunk, 0, 1); } put_cpu(); return r;
------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel