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
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel