[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 17/23] hyperv: add synic message delivery
From: |
Roman Kagan |
Subject: |
Re: [Qemu-devel] [PATCH 17/23] hyperv: add synic message delivery |
Date: |
Wed, 14 Jun 2017 18:39:47 +0300 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Wed, Jun 14, 2017 at 05:32:12PM +0200, Paolo Bonzini wrote:
>
>
> 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.
I didn't realize that (yes that's easy to see in the code but the API
didn't suggest I needed to ;).
> 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.
Thanks for pointing that out; we'll have to adjust our vmbus code too as
we used a persistent bottom half for message interactions there too.
Roman.
- Re: [Qemu-devel] [PATCH 13/23] hyperv: qdev-ify SynIC, (continued)
[Qemu-devel] [PATCH 15/23] hyperv: make overlay pages for SynIC, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 19/23] hyperv: process SIGNAL_EVENT hypercall, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 18/23] hyperv: add synic event flag signaling, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 17/23] hyperv: add synic message delivery, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 22/23] MAINTAINERS: add myself and eyakovlev@ for hyperv*, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 20/23] hyperv: process POST_MESSAGE hypercall, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 21/23] hyperv_testdev: add SynIC message and event testmodes, Roman Kagan, 2017/06/06
[Qemu-devel] [PATCH 16/23] hyperv: map overlay pages after updating msrs, Roman Kagan, 2017/06/06