Hello! > Your guess makes sense because current implementation does not support > multi-queues. > > From you log, only 0 and 1 are "ready for processing"; others are "not > ready for processing".
Yes, and if study it even more carefully, we see that we initialize all tx queues but only a single rx queue (#0). After some more code browsing and comparing the two patchsets i figured out that the problem is caused by inappropriate VIRTIO_NET_F_CTRL_VQ flag. In your RFC you used different capability set, while in v1 you seem to have forgotten about this. I suggest to temporarily move hw->guest_features assignment out of virtio_negotiate_features() into the caller, where we have eth_dev->dev_type, and can choose the right set depending on it. With all mentioned fixes i've got the ping running. Tested-by: Pavel Fedin <p.fedin at samsung.com> Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia