git: f80efe5016ba - main - iflib: netmap: move per-packet operation out of fragments loop

Vincenzo Maffione vmaffione at FreeBSD.org
Sun Jan 24 21:40:47 UTC 2021


The branch main has been updated by vmaffione:

URL: https://cgit.FreeBSD.org/src/commit/?id=f80efe5016ba01b2948ca1f0eb8fe34adab5b864

commit f80efe5016ba01b2948ca1f0eb8fe34adab5b864
Author:     Vincenzo Maffione <vmaffione at FreeBSD.org>
AuthorDate: 2021-01-24 21:38:59 +0000
Commit:     Vincenzo Maffione <vmaffione at FreeBSD.org>
CommitDate: 2021-01-24 21:38:59 +0000

    iflib: netmap: move per-packet operation out of fragments loop
    
    MFC after:      1 week
---
 sys/net/iflib.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/sys/net/iflib.c b/sys/net/iflib.c
index 0d4124599419..d10c11f865fe 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -1211,17 +1211,18 @@ iflib_netmap_rxsync(struct netmap_kring *kring, int flags)
 						ring->slot[nm_i].flags = NS_MOREFRAG;
 				}
 
-				if (have_rxcq) {
-					*cidxp = ri.iri_cidx;
-					while (*cidxp >= scctx->isc_nrxd[0])
-						*cidxp -= scctx->isc_nrxd[0];
-				}
-
 				bus_dmamap_sync(fl->ifl_buf_tag,
 				    fl->ifl_sds.ifsd_map[nic_i], BUS_DMASYNC_POSTREAD);
 				nm_i = nm_next(nm_i, lim);
 				fl->ifl_cidx = nic_i = nm_next(nic_i, lim);
 			}
+
+			if (have_rxcq) {
+				*cidxp = ri.iri_cidx;
+				while (*cidxp >= scctx->isc_nrxd[0])
+					*cidxp -= scctx->isc_nrxd[0];
+			}
+
 		}
 		if (n) { /* update the state variables */
 			if (netmap_no_pendintr && !force_update) {


More information about the dev-commits-src-all mailing list