@@ -4383,38 +4383,28 @@ static void virtnet_rx_dim_work(struct work_struct *work)
4383
4383
struct virtnet_info * vi = rq -> vq -> vdev -> priv ;
4384
4384
struct net_device * dev = vi -> dev ;
4385
4385
struct dim_cq_moder update_moder ;
4386
- int i , qnum , err ;
4386
+ int qnum , err ;
4387
4387
4388
4388
if (!rtnl_trylock ())
4389
4389
return ;
4390
4390
4391
- /* Each rxq's work is queued by "net_dim()->schedule_work()"
4392
- * in response to NAPI traffic changes. Note that dim->profile_ix
4393
- * for each rxq is updated prior to the queuing action.
4394
- * So we only need to traverse and update profiles for all rxqs
4395
- * in the work which is holding rtnl_lock.
4396
- */
4397
- for (i = 0 ; i < vi -> curr_queue_pairs ; i ++ ) {
4398
- rq = & vi -> rq [i ];
4399
- dim = & rq -> dim ;
4400
- qnum = rq - vi -> rq ;
4391
+ qnum = rq - vi -> rq ;
4401
4392
4402
- if (!rq -> dim_enabled )
4403
- continue ;
4393
+ if (!rq -> dim_enabled )
4394
+ goto out ;
4404
4395
4405
- update_moder = net_dim_get_rx_moderation (dim -> mode , dim -> profile_ix );
4406
- if (update_moder .usec != rq -> intr_coal .max_usecs ||
4407
- update_moder .pkts != rq -> intr_coal .max_packets ) {
4408
- err = virtnet_send_rx_ctrl_coal_vq_cmd (vi , qnum ,
4409
- update_moder .usec ,
4410
- update_moder .pkts );
4411
- if (err )
4412
- pr_debug ("%s: Failed to send dim parameters on rxq%d\n" ,
4413
- dev -> name , qnum );
4414
- dim -> state = DIM_START_MEASURE ;
4415
- }
4396
+ update_moder = net_dim_get_rx_moderation (dim -> mode , dim -> profile_ix );
4397
+ if (update_moder .usec != rq -> intr_coal .max_usecs ||
4398
+ update_moder .pkts != rq -> intr_coal .max_packets ) {
4399
+ err = virtnet_send_rx_ctrl_coal_vq_cmd (vi , qnum ,
4400
+ update_moder .usec ,
4401
+ update_moder .pkts );
4402
+ if (err )
4403
+ pr_debug ("%s: Failed to send dim parameters on rxq%d\n" ,
4404
+ dev -> name , qnum );
4405
+ dim -> state = DIM_START_MEASURE ;
4416
4406
}
4417
-
4407
+ out :
4418
4408
rtnl_unlock ();
4419
4409
}
4420
4410
0 commit comments