ipq40xx: ipqess: enable threaded NAPI
Enable threaded NAPI by default in IPQESS driver as it significantly improves network perfromance, in my testing about 100+ Mbps in WAN-LAN routing. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
This commit is contained in:
		 Robert Marko
					Robert Marko
				
			
				
					committed by
					
						 David Bauer
						David Bauer
					
				
			
			
				
	
			
			
			 David Bauer
						David Bauer
					
				
			
						parent
						
							b9b4c51b2b
						
					
				
				
					commit
					132545785b
				
			| @@ -542,10 +542,10 @@ static irqreturn_t ipqess_interrupt_tx(int irq, void *priv) | |||||||
| 	struct ipqess_tx_ring *tx_ring = (struct ipqess_tx_ring *) priv; | 	struct ipqess_tx_ring *tx_ring = (struct ipqess_tx_ring *) priv; | ||||||
|  |  | ||||||
| 	if (likely(napi_schedule_prep(&tx_ring->napi_tx))) { | 	if (likely(napi_schedule_prep(&tx_ring->napi_tx))) { | ||||||
| 		__napi_schedule(&tx_ring->napi_tx); |  | ||||||
| 		ipqess_w32(tx_ring->ess, | 		ipqess_w32(tx_ring->ess, | ||||||
| 			 IPQESS_REG_TX_INT_MASK_Q(tx_ring->idx), | 			 IPQESS_REG_TX_INT_MASK_Q(tx_ring->idx), | ||||||
| 			 0x0); | 			 0x0); | ||||||
|  | 		__napi_schedule(&tx_ring->napi_tx); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return IRQ_HANDLED; | 	return IRQ_HANDLED; | ||||||
| @@ -556,10 +556,10 @@ static irqreturn_t ipqess_interrupt_rx(int irq, void *priv) | |||||||
| 	struct ipqess_rx_ring *rx_ring = (struct ipqess_rx_ring *) priv; | 	struct ipqess_rx_ring *rx_ring = (struct ipqess_rx_ring *) priv; | ||||||
|  |  | ||||||
| 	if (likely(napi_schedule_prep(&rx_ring->napi_rx))) { | 	if (likely(napi_schedule_prep(&rx_ring->napi_rx))) { | ||||||
| 		__napi_schedule(&rx_ring->napi_rx); |  | ||||||
| 		ipqess_w32(rx_ring->ess, | 		ipqess_w32(rx_ring->ess, | ||||||
| 			 IPQESS_REG_RX_INT_MASK_Q(rx_ring->idx), | 			 IPQESS_REG_RX_INT_MASK_Q(rx_ring->idx), | ||||||
| 			 0x0); | 			 0x0); | ||||||
|  | 		__napi_schedule(&rx_ring->napi_rx); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return IRQ_HANDLED; | 	return IRQ_HANDLED; | ||||||
| @@ -1269,6 +1269,8 @@ static int ipqess_axi_probe(struct platform_device *pdev) | |||||||
| 	if (err) | 	if (err) | ||||||
| 		goto err_out; | 		goto err_out; | ||||||
|  |  | ||||||
|  | 	dev_set_threaded(netdev, true); | ||||||
|  |  | ||||||
| 	for (i = 0; i < IPQESS_NETDEV_QUEUES; i++) { | 	for (i = 0; i < IPQESS_NETDEV_QUEUES; i++) { | ||||||
| 		int qid; | 		int qid; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user