On 2020-07-28 22:15, Jakub Kicinski wrote:
On Tue, 28 Jul 2020 12:08:41 -0700 Tony Nguyen wrote:
diff --git a/drivers/net/ethernet/intel/i40e/i40e_xsk.c
b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
index 1f2dd591dbf1..99f4afdc403d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_xsk.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
@@ -265,6 +265,8 @@ static void i40e_inc_ntc(struct i40e_ring *rx_ring)
rx_ring->next_to_clean = ntc;
}
+#define I40E_XSK_CLEAN_RX_BUDGET 256U
+
/**
* i40e_clean_rx_irq_zc - Consumes Rx packets from the hardware ring
* @rx_ring: Rx ring
@@ -280,7 +282,7 @@ int i40e_clean_rx_irq_zc(struct i40e_ring *rx_ring, int
budget)
bool failure = false;
struct sk_buff *skb;
- while (likely(total_rx_packets < (unsigned int)budget)) {
+ while (likely(total_rx_packets < I40E_XSK_CLEAN_RX_BUDGET)) {
union i40e_rx_desc *rx_desc;
struct xdp_buff **bi;
unsigned int size;
Should this perhaps be a common things that drivers do?
Should we define a "XSK_NAPI_WEIGHT_MULT 4" instead of hard coding the
value in a driver?
Yes, that's a good idea. I can generalize for the AF_XDP paths in the
other drivers as a follow up!
Cheers,
Björn (in vacation mode)