Linhaifeng <haifeng.lin@xxxxxxxxxx> writes: > On 2015/6/4 9:13, Rusty Russell wrote: >> Linhaifeng <haifeng.lin@xxxxxxxxxx> writes: >>> Hi, >>> >>> I'm a newbie and have a question about vring_new_virtqueue function. >>> >>> Why we set avail->flags to VRING_AVAIL_F_NO_INTERRUPT when no callbacks? >>> I think we should set avail->flags to VRING_AVAIL_F_NO_INTERRUPT even if no callbacks. >> >> Hi Linhaifeng, >> >> Not sure I understand your question, but I'll try to answer. >> >> We don't set VRING_AVAIL_F_NO_INTERRUPT if there's a callback because we >> want that callback called. Otherwise callback will never be used. >> >> Cheers, >> Rusty. >> >> > > Hi Rusty, > > Thank you for your response. > > I mean should we set VRING_AVAIL_F_NO_INTERRUPT when virtqueue is initialized whether there is callback or not? > As it would be set in function virtqueue_disable_cb and virtqueue_enable_cb_prepare later. You're right, the callers could virtqueue_enable() specifically, but I think most callers will want the virtqueue enabled immediately. And remember, the VRING_AVAIL_F_NO_INTERRUPT is just a *hint*: the device is allows to ignore it (this can happen due to race conditions, for example). Thanks, Rusty. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization