Re: [PATCH net-next 16/16] sfc: Don't receive packets when the napi budget == 0
flat view
From: Ben Hutchings <hidden>
Date: 2014-03-15 15:23:43
On Fri, 2014-03-14 at 18:11 -0700, Eric W. Biederman wrote:
Processing any incoming packets with a with a napi budget of 0 is incorrect driver behavior. This matters as netpoll will shortly call drivers with a budget of 0 to avoid receive packet processing happening in hard irq context.
But this also prevents handling TX completions, at which point you may as well change efx_netpoll() to a no-op. And then, does it make sense to implement ndo_poll_controller at all? Note that sfc does have a module parameter to enable separate RX and TX completions so they could be polled separately, but it is disabled by default. Ben.
quoted hunk ↗ jump to hunk
Signed-off-by: "Eric W. Biederman" <redacted> --- drivers/net/ethernet/sfc/ef10.c | 3 +++ drivers/net/ethernet/sfc/farch.c | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-)diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c index eb75675f6e32..651626e133f9 100644 --- a/drivers/net/ethernet/sfc/ef10.c +++ b/drivers/net/ethernet/sfc/ef10.c@@ -1955,6 +1955,9 @@ static int efx_ef10_ev_process(struct efx_channel *channel, int quota) int tx_descs = 0; int spent = 0; + if (quota <= 0) + return spent; + read_ptr = channel->eventq_read_ptr; for (;;) {diff --git a/drivers/net/ethernet/sfc/farch.c b/drivers/net/ethernet/sfc/farch.c index aa1b169f45ec..a08761360cdf 100644 --- a/drivers/net/ethernet/sfc/farch.c +++ b/drivers/net/ethernet/sfc/farch.c@@ -1248,6 +1248,9 @@ int efx_farch_ev_process(struct efx_channel *channel, int budget) int tx_packets = 0; int spent = 0; + if (budget <= 0) + return spent; + read_ptr = channel->eventq_read_ptr; for (;;) {
-- Ben Hutchings When you say `I wrote a program that crashed Windows', people just stare ... and say `Hey, I got those with the system, *for free*'. - Linus Torvalds
Attachments
- signature.asc [application/pgp-signature] 811 bytes