Re: [rfc net-next v6 2/3] virtio_net: multiqueue support
From: Rusty Russell <hidden>
Date: 2012-11-04 23:48:12
Also in:
kvm, lkml, virtualization
From: Rusty Russell <hidden>
Date: 2012-11-04 23:48:12
Also in:
kvm, lkml, virtualization
Jason Wang [off-list ref] writes:
This addes multiqueue support to virtio_net driver. There's two mode supported: single queue pair mode and multiple queue pairs mode. An obvious difference compared with a physical mq card is that virtio-net reserve first two virtqueues when it is working in multiqueue mode, this is used for implementing adaptive mode switching in the future. The virtqueues that were in both mq and sq mode were initialized and only one queue pair (single queue mode) were used at default. User could use ethtool -L to switch to multiqueue mode withe the next patch.
Hi Jason,
This first patch looks good, but conflates three things
together:
(1) Separate per-queue structures from struct virtnet_info to allow
multiple queues. This is the mechanical part of the patch.
(2) An annotation bugfix, see below.
(3) Enabling mq using a new feature and negotiation.
@@ -700,7 +767,8 @@ static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev, unsigned int start; for_each_possible_cpu(cpu) { - struct virtnet_stats *stats = per_cpu_ptr(vi->stats, cpu); + struct virtnet_stats __percpu *stats + = per_cpu_ptr(vi->stats, cpu); u64 tpackets, tbytes, rpackets, rbytes; do {
Cheers, Rusty.