drivers: net: generalize napi_complete_done()

napi_complete_done() allows to opt-in for gro_flush_timeout,
added back in linux-3.19, commit 3b47d30396
("net: gro: add a per device gro flush timer")

This allows for more efficient GRO aggregation without
sacrifying latencies.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet
2017-01-30 08:22:01 -08:00
zatwierdzone przez David S. Miller
rodzic 63a6fff353
commit 6ad20165d3
109 zmienionych plików z 132 dodań i 137 usunięć

Wyświetl plik

@@ -3786,7 +3786,7 @@ static int niu_poll(struct napi_struct *napi, int budget)
work_done = niu_poll_core(np, lp, budget);
if (work_done < budget) {
napi_complete(napi);
napi_complete_done(napi, work_done);
niu_ldg_rearm(np, lp, 1);
}
return work_done;

Wyświetl plik

@@ -922,7 +922,7 @@ static int gem_poll(struct napi_struct *napi, int budget)
gp->status = readl(gp->regs + GREG_STAT);
} while (gp->status & GREG_STAT_NAPI);
napi_complete(napi);
napi_complete_done(napi, work_done);
gem_enable_ints(gp);
return work_done;

Wyświetl plik

@@ -860,7 +860,7 @@ int sunvnet_poll_common(struct napi_struct *napi, int budget)
int processed = vnet_event_napi(port, budget);
if (processed < budget) {
napi_complete(napi);
napi_complete_done(napi, processed);
port->rx_event &= ~LDC_EVENT_DATA_READY;
vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED);
}