hello ,when I read virtio source code ,I was confused about when back-end notify front-end。 In function virtio_should_notify,if vq->signalled_used_valid == false or vring_need_event(vring_get_used_event(vq), new, old) is true,notiry will occur。but I can not understand when vq->signalled_used_valid will be false. in virtqueue_flush, if (unlikely((int16_t)(new - vq->signalled_used) < (uint16_t)(new - old))) vq->signalled_used_valid = false;
but according code I think vq->signalled_used always equal to vq->used_idx,that is vq->signalled_used_valid will always be true. please help me understand it,thanks!