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. Thus a SIGBUS with BUS_MCEERR_AR will never be returned by sigtimedwait. Paolo