[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/18] kvm: Set up signal mask also for !CONFIG_IOTH
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 05/18] kvm: Set up signal mask also for !CONFIG_IOTHREAD |
Date: |
Mon, 10 Jan 2011 09:31:58 +0100 |
From: Jan Kiszka <address@hidden>
Block SIG_IPI and SIGBUS, unblock them during KVM_RUN, just like in
io-thread mode. This will be required to process SIGBUS and for
self-IPIs. As Windows doesn't support signal services, we need to
provide a stub for the init function.
Signed-off-by: Jan Kiszka <address@hidden>
---
cpus.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/cpus.c b/cpus.c
index a21e2d6..bf0fb85 100644
--- a/cpus.c
+++ b/cpus.c
@@ -223,7 +223,6 @@ fail:
return err;
}
-#ifdef CONFIG_IOTHREAD
static void dummy_signal(int sig)
{
}
@@ -238,6 +237,13 @@ static void qemu_kvm_init_cpu_signals(CPUState *env)
sigact.sa_handler = dummy_signal;
sigaction(SIG_IPI, &sigact, NULL);
+#ifndef CONFIG_IOTHREAD
+ sigemptyset(&set);
+ sigaddset(&set, SIG_IPI);
+ sigaddset(&set, SIGBUS);
+ pthread_sigmask(SIG_BLOCK, &set, NULL);
+#endif
+
pthread_sigmask(SIG_BLOCK, NULL, &set);
sigdelset(&set, SIG_IPI);
sigdelset(&set, SIGBUS);
@@ -247,7 +253,6 @@ static void qemu_kvm_init_cpu_signals(CPUState *env)
exit(1);
}
}
-#endif
#else /* _WIN32 */
@@ -276,6 +281,10 @@ static void qemu_event_increment(void)
exit (1);
}
}
+
+static void qemu_kvm_init_cpu_signals(CPUState *env)
+{
+}
#endif /* _WIN32 */
#ifndef CONFIG_IOTHREAD
@@ -296,8 +305,10 @@ void qemu_init_vcpu(void *_env)
env->nr_cores = smp_cores;
env->nr_threads = smp_threads;
- if (kvm_enabled())
+ if (kvm_enabled()) {
kvm_init_vcpu(env);
+ qemu_kvm_init_cpu_signals(env);
+ }
return;
}
--
1.7.1
- [Qemu-devel] [PATCH 04/18] Refactor signal setup functions in cpus.c, (continued)
- [Qemu-devel] [PATCH 04/18] Refactor signal setup functions in cpus.c, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 06/18] kvm: Refactor qemu_kvm_eat_signals, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 09/18] Refactor kvm&tcg function names in cpus.c, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 10/18] Fix a few coding style violations in cpus.c, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 13/18] kvm: Unconditionally reenter kernel after IO exits, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 15/18] kvm: Leave kvm_cpu_exec directly after KVM_EXIT_SHUTDOWN, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 17/18] kvm: x86: Prepare VCPU loop for in-kernel irqchip, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 02/18] kvm: Drop redundant kvm_enabled from kvm_cpu_thread_fn, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 01/18] Revert "kvm: Drop return value of kvm_cpu_exec", Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 05/18] kvm: Set up signal mask also for !CONFIG_IOTHREAD,
Jan Kiszka <=
- [Qemu-devel] [PATCH 11/18] Introduce VCPU self-signaling service, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 18/18] kvm: Drop return values from kvm_arch_pre/post_run, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 16/18] kvm: Separate TCG from KVM cpu execution, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 14/18] kvm: Remove static return code of kvm_handle_io, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 12/18] kvm: Move irqchip event processing out of inner loop, Jan Kiszka, 2011/01/10
- [Qemu-devel] [PATCH 07/18] kvm: Add MCE signal support for !CONFIG_IOTHREAD, Jan Kiszka, 2011/01/10