On Wed, Aug 09, 2017 at 10:38:10AM +0800, Jason Wang wrote: > I think don't think current code can work well if vq.num is grater than > 2^15. Since all cached idx is u16. This looks like a bug which needs to be > fixed. That's a limitation of virtio 1.0. > > * else if the interval of vq.num is [2^15, 2^16): > > the logic in the original patch (809ecb9bca6a9) suffices > > * else (= less than 2^15) (optional): > > checking only (vring_need_event(vq->last_used_event, new + vq->num, new) > > would suffice. > > > > Am I missing something, or is this irrelevant? Could you pls repost the suggestion copying virtio-dev mailing list (subscriber only, sorry about that, but host/guest ABI discussions need to copy that list)? > Looks not, I think this may work. Let me do some test. > > Thanks I think that at this point it's prudent to add a feature bit as the virtio spec does not require to never move the event index back.