On Mon, May 6, 2024 at 9:00 PM Sahil <icegambi...@gmail.com> wrote: > > Hi, > > It's been a while since I last gave an update. Sorry about that. I am ready > to get my hands dirty and start with the implementation. >
No worries! > I have gone through the source of linux's drivers/virtio/virtio_ring.c [1], > and > QEMU's hw/virtio/virtio.c [2] and hw/virtio/vhost-shadow-virtqueue.c [3]. > > Before actually starting I would like to make sure I am on the right track. In > vhost-shadow-virtqueue.c, there's a function "vhost_svq_add" which in turn > calls "vhost_svq_add_split". > > Shall I start by implementing a mechanism to check if the feature bit > "VIRTIO_F_RING_PACKED" is set (using "virtio_vdev_has_feature")? And > if it's supported, "vhost_svq_add" should call "vhost_svq_add_packed". > Following this, I can then start implementing "vhost_svq_add_packed" > and progress from there. > > What are your thoughts on this? > Yes, that's totally right. I recommend you to also disable _F_EVENT_IDX to start, so the first version is easier. Also, you can send as many incomplete RFCs as you want. For example, you can send a first version that only implements reading of the guest avail ring, so we know we're aligned on that. Then, we can send subsequents RFCs adding features on top. Does that make sense to you? Thanks! > Thanks, > Sahil > > [1] > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/virtio/virtio.c > [2] https://gitlab.com/qemu-project/qemu/-/blob/master/hw/virtio/virtio.c > [3] > https://gitlab.com/qemu-project/qemu/-/blob/master/hw/virtio/vhost-shadow-virtqueue.c > >