Message ID | 20200728190842.1284145-6-anthony.l.nguyen@intel.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | 40GbE Intel Wired LAN Driver Updates 2020-07-28 | expand |
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?
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)
On Wed, 29 Jul 2020 12:43:46 +0200 Björn Töpel wrote: > > 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! I don't like followups 'cause there's no way I can track if everyone actually does what I asked them to - but since you're in vacation mode, let's say this one's fine as a follow up ;)
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;