[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 07/18] kvm: Add MCE signal support for !CONFIG_I
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] Re: [PATCH 07/18] kvm: Add MCE signal support for !CONFIG_IOTHREAD |
Date: |
Mon, 24 Jan 2011 13:36:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2011-01-24 12:17, Marcelo Tosatti wrote:
> On Mon, Jan 10, 2011 at 09:32:00AM +0100, Jan Kiszka wrote:
>> From: Jan Kiszka <address@hidden>
>>
>> Currently, we only configure and process MCE-related SIGBUS events if
>> CONFIG_IOTHREAD is enabled. Fix this by factoring out the required
>> handler registration and system configuration. Make sure that events
>> happening over a VCPU context in non-threaded mode get dispatched as
>> VCPU MCEs.
>>
>> We also need to call qemu_kvm_eat_signals in non-threaded mode now, so
>> move it (unmodified) and add the required Windows stub.
>>
>> Signed-off-by: Jan Kiszka <address@hidden>
>> CC: Huang Ying <address@hidden>
>> ---
>> cpus.c | 200
>> +++++++++++++++++++++++++++++++++++++++------------------------
>> 1 files changed, 124 insertions(+), 76 deletions(-)
>>
>> diff --git a/cpus.c b/cpus.c
>> index 6da0f8f..b6f1cfb 100644
>> --- a/cpus.c
>> +++ b/cpus.c
>> @@ -34,9 +34,6 @@
>>
>> #include "cpus.h"
>> #include "compatfd.h"
>> -#ifdef CONFIG_LINUX
>> -#include <sys/prctl.h>
>> -#endif
>>
>> #ifdef SIGRTMIN
>> #define SIG_IPI (SIGRTMIN+4)
>> @@ -44,10 +41,24 @@
>> #define SIG_IPI SIGUSR1
>> #endif
>>
>
>> @@ -912,6 +954,8 @@ static int qemu_cpu_exec(CPUState *env)
>>
>> bool cpu_exec_all(void)
>> {
>> + int r;
>> +
>> if (next_cpu == NULL)
>> next_cpu = first_cpu;
>> for (; next_cpu != NULL && !exit_request; next_cpu =
>> next_cpu->next_cpu) {
>> @@ -923,7 +967,11 @@ bool cpu_exec_all(void)
>> if (qemu_alarm_pending())
>> break;
>> if (cpu_can_run(env)) {
>> - if (qemu_cpu_exec(env) == EXCP_DEBUG) {
>> + r = qemu_cpu_exec(env);
>> + if (kvm_enabled()) {
>> + qemu_kvm_eat_signals(env);
>> + }
>> + if (r == EXCP_DEBUG) {
>> break;
>> }
>
> SIGBUS should be processed outside of vcpu execution context, think of a
> non MCE SIGBUS while vm is stopped. Could use signalfd for that.
signalfd - that's the missing bit. I was thinking of how to handle
SIGBUS events raised outside the vcpu context. We need to handle them
synchronously, and signalfd should allow this.
>
> But the SIGBUS handler for !IOTHREAD case should not ignore Action
> Required, since it might have been generated in vcpu context.
>
Yes, the sigbus handler will require some rework when we actually start
using it for !IOTHREAD.
Will have a look, thanks,
Jan
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH 05/18] kvm: Set up signal mask also for !CONFIG_IOTHREAD, (continued)
- [Qemu-devel] [PATCH 05/18] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Jan Kiszka, 2011/01/10
- [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
[Qemu-devel] Re: [PATCH 00/18] [uq/master] MCE & IO exit fixes, prepare for VCPU loop reuse, Jan Kiszka, 2011/01/10