bmips: switch to napi_build_skb() to reuse skbuff_heads
napi_build_skb() reuses NAPI skbuff_head cache in order to save some cycles on freeing/allocating skbuff_heads on every new rx or completed tx. Use napi_consume_skb() to feed the cache with skbuff_heads of completed tx so it's never empty. Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
This commit is contained in:
		 Sieng Piaw Liew
					Sieng Piaw Liew
				
			
				
					committed by
					
						 Álvaro Fernández Rojas
						Álvaro Fernández Rojas
					
				
			
			
				
	
			
			
			 Álvaro Fernández Rojas
						Álvaro Fernández Rojas
					
				
			
						parent
						
							a332b8cc9c
						
					
				
				
					commit
					330cbcc09c
				
			| @@ -407,7 +407,7 @@ static int bcm6368_enetsw_receive_queue(struct net_device *dev, int budget) | |||||||
| 			frag_size = priv->rx_frag_size; | 			frag_size = priv->rx_frag_size; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		skb = build_skb(buf, frag_size); | 		skb = napi_build_skb(buf, frag_size); | ||||||
| 		if (unlikely(!skb)) { | 		if (unlikely(!skb)) { | ||||||
| 			skb_free_frag(buf); | 			skb_free_frag(buf); | ||||||
| 			dev->stats.rx_dropped++; | 			dev->stats.rx_dropped++; | ||||||
| @@ -475,7 +475,7 @@ static int bcm6368_enetsw_tx_reclaim(struct net_device *dev, int force) | |||||||
| 		if (desc->len_stat & DMADESC_UNDER_MASK) | 		if (desc->len_stat & DMADESC_UNDER_MASK) | ||||||
| 			dev->stats.tx_errors++; | 			dev->stats.tx_errors++; | ||||||
|  |  | ||||||
| 		dev_kfree_skb(skb); | 		napi_consume_skb(skb, !force); | ||||||
| 		released++; | 		released++; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user