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