Re: [PATCH 3/7] vhost_vdpa: implement IRQ offloading functions in vhost_vdpa

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2020/7/15 下午5:20, Zhu, Lingshan wrote:

I meant something like:

unregister();
vq->call_ctx.producer.token = ctx;
register();
This is what we are doing now, or I must missed somethig:
if (ctx && ctx != token) {
    irq_bypass_unregister_producer(&vq->call_ctx.producer);
    vq->call_ctx.producer.token = ctx;
    irq_bypass_register_producer(&vq->call_ctx.producer);

}

It just unregister and register.


I meant there's probably no need for the check and another check and unregister before. The whole function is as simple as I suggested above.

Thanks
IMHO we still need the checks, this function handles three cases:
(1)if the ctx == token, we do nothing. For this unregister and register can work, but waste of time.


But we have a more simple code and we don't care about the performance here since the operations is rare.


(2)if token exists but ctx is NULL, this means user space issued an unbind, so we need to only unregister the producer.


Note that the register/unregister have a graceful check of whether or not there's a token.


(3)if ctx exists and ctx!=token, this means there is a new ctx, we need to update producer by unregister and register.

I think we can not simply handle all these cases by "unregister and register".


So it looks to me the functions are equivalent.

Thanks



Thanks,
BR
Zhu Lingshan




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux