Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

virtio_net: simplify virtnet_set_affinity()

The inner loop may be replaced with the dedicated for_each_online_cpu_wrap.
Use it as it improves readability and simplifies maintenance.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Reviewed-by: Nick Child <nnac123@linux.ibm.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>

+7 -5
+7 -5
drivers/net/virtio_net.c
··· 3826 3826 cpumask_var_t mask; 3827 3827 int stragglers; 3828 3828 int group_size; 3829 - int i, j, cpu; 3829 + int i, start = 0, cpu; 3830 3830 int num_cpu; 3831 3831 int stride; 3832 3832 ··· 3840 3840 stragglers = num_cpu >= vi->curr_queue_pairs ? 3841 3841 num_cpu % vi->curr_queue_pairs : 3842 3842 0; 3843 - cpu = cpumask_first(cpu_online_mask); 3844 3843 3845 3844 for (i = 0; i < vi->curr_queue_pairs; i++) { 3846 3845 group_size = stride + (i < stragglers ? 1 : 0); 3847 3846 3848 - for (j = 0; j < group_size; j++) { 3847 + for_each_online_cpu_wrap(cpu, start) { 3848 + if (!group_size--) { 3849 + start = cpu; 3850 + break; 3851 + } 3849 3852 cpumask_set_cpu(cpu, mask); 3850 - cpu = cpumask_next_wrap(cpu, cpu_online_mask, 3851 - nr_cpu_ids, false); 3852 3853 } 3854 + 3853 3855 virtqueue_set_affinity(vi->rq[i].vq, mask); 3854 3856 virtqueue_set_affinity(vi->sq[i].vq, mask); 3855 3857 __netif_set_xps_queue(vi->dev, cpumask_bits(mask), i, XPS_CPUS);