On Thu, Feb 17, 2022 at 12:05 PM Andrew Melnichenko [off-list ref] wrote:
Hi all,
On Mon, Feb 14, 2022 at 12:09 AM Willem de Bruijn
[off-list ref] wrote:
quoted
quoted
quoted
quoted
@@ -3113,13 +3270,14 @@ static int virtnet_probe(struct virtio_device *vdev)
u16 max_queue_pairs;
int mtu;
- /* Find if host supports multiqueue virtio_net device */
- err = virtio_cread_feature(vdev, VIRTIO_NET_F_MQ,
- struct virtio_net_config,
- max_virtqueue_pairs, &max_queue_pairs);
+ /* Find if host supports multiqueue/rss virtio_net device */
+ max_queue_pairs = 1;
+ if (virtio_has_feature(vdev, VIRTIO_NET_F_MQ) || virtio_has_feature(vdev, VIRTIO_NET_F_RSS))
+ max_queue_pairs =
+ virtio_cread16(vdev, offsetof(struct virtio_net_config, max_virtqueue_pairs));
Instead of testing either feature and treating them as somewhat equal,
shouldn't RSS be dependent on MQ?
No, RSS is dependent on CTRL_VQ. Technically RSS and MQ are similar features.
RSS depends on having multiple queues.
What would enabling VIRTIO_NET_F_RSS without VIRTIO_NET_F_MQ do?
RSS would work.
What does that mean, exactly? RSS is load balancing, does that not
require multi-queue?