Re: [PATCH 08/10] MCE: Relay UCR MCE to guest

Anthony Liguori
2010-10-20T22:03:53Z

On 10/20/2010 04:56 PM, Paolo Bonzini wrote:
> On 10/20/2010 09:51 PM, Anthony Liguori wrote:
>> I don't understand why this loop is needed but we specifically wait for
>> a signal to get delivered that's either SIG_IPI or SIGBUS. We then check
>> whether a SIG_IPI or SIGBUS is pending and loop waiting for signals
>> again.
>>
>> Shouldn't we be looping on just sigismember(SIGBUS)?
>
> You mean because SIG_IPI is a real-time signal and standard signals
> are delivered first? OTOH, real-time signals can be queued multiple
> times so it makes sense to loop on SIG_IPI as well.
>
>> BTW, we're no longer respecting timeout because we're not adjusting ts
>> after each iteration.
>
> The timeout of qemu_kvm_eat_signal is always zero.

So then qemu_kvm_eat_signal purely polls and it will happily keep
polling as long as there is a signal pending.

So what's the point of doing a sigtimedwait() and dropping qemu_mutex?
Why not just check sigpending in a loop?

Regards,

Anthony Liguori

> Paolo