Il 09/10/2013 23:26, Paolo Bonzini ha scritto: > Il 09/10/2013 21:41, Marcelo Tosatti ha scritto: >>>> How was that tested? For BUS_MCEERR_AO it can work, but BUS_MCEERR_AR >>>> calls force_sig_info which does this: >>>> >>>> ignored = action->sa.sa_handler == SIG_IGN; >>>> blocked = sigismember(&t->blocked, sig); >>>> if (blocked || ignored) { >>>> action->sa.sa_handler = SIG_DFL; >>>> if (blocked) { >>>> sigdelset(&t->blocked, sig); >>>> recalc_sigpending_and_wake(t); >>>> } >>>> >>>> if (action->sa.sa_handler == SIG_DFL) >>>> t->signal->flags &= ~SIGNAL_UNKILLABLE; >>>> >>>> and kills the process (because that's the default action of SIG_DFL). >> For vcpu context its not blocked? > > It causes KVM to exit back to userspace, but as soon as KVM exits it > should be blocked.
... but it's been queued and this bypasses the checks in force_sig_info. So in guest mode it is accepted, in QEMU mode it causes a SIGBUS. Paolo