On 14/06/2017 17:28, Roman Kagan wrote:
> On Wed, Jun 14, 2017 at 05:08:02PM +0200, Paolo Bonzini wrote:
>>
>>
>> On 06/06/2017 20:19, Roman Kagan wrote:
>>> +    sint_route->msg_status = ret;
>>> +    /* notify the msg originator of the progress made; if the slot was 
>>> busy we
>>> +     * set msg_pending flag in it so it will be the guest who will do EOM 
>>> and
>>> +     * trigger the notification from KVM via sint_ack_notifier */
>>> +    if (ret != -EAGAIN) {
>>> +        qemu_bh_schedule(sint_route->msg_bh);
>>> +    }
>>
>> It may be faster to use aio_bh_schedule_oneshot, depending on the number
>> of devices.
> 
> Messages aren't used on fast paths, they are only exchanged at device
> setup/teardown.  So I cared more about readability than speed here.

Then you really want to use aio_bh_schedule_oneshot, because bottom
halves incur a (small) cost even when you don't use them: each iteration
of the event loop visits the list of bottom halves.

Persistent bottom halves, thus, are only a good idea if they are
expected to trigger very often on a busy VM.  If this bottom half is
only triggered at setup/teardown, it shouldn't use them.

Paolo

Reply via email to