aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2015-10-09 16:04:28 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2015-10-13 13:57:31 +0300
commit28e8c3a5a55627ca56b24fe6d82308f88563a932 (patch)
tree0ee94626b26e32ae3102578245d8de3a94be8f3f
parentf468efac864fc14241ea961f2302d1150b6e4268 (diff)
linux-generic: netmap: sync tx queues
Sync tx queues to recover from overload. Previously send could get permanently stuck here. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r--platform/linux-generic/pktio/netmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c
index 19dc697..ab4667e 100644
--- a/platform/linux-generic/pktio/netmap.c
+++ b/platform/linux-generic/pktio/netmap.c
@@ -240,8 +240,10 @@ static int netmap_send(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[],
else
break;
}
- if (odp_unlikely(i == NM_INJECT_RETRIES))
+ if (odp_unlikely(i == NM_INJECT_RETRIES)) {
+ ioctl(nm_desc->fd, NIOCTXSYNC, NULL);
break;
+ }
}
for (i = 0; i < nb_tx; i++)
odp_packet_free(pkt_table[i]);