Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Oct 2019 09:28:33 +0000 (UTC)
From:      Vincenzo Maffione <vmaffione@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r354128 - in stable/12: sys/dev/netmap tools/tools/netmap
Message-ID:  <201910270928.x9R9SXnl020247@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vmaffione
Date: Sun Oct 27 09:28:33 2019
New Revision: 354128
URL: https://svnweb.freebsd.org/changeset/base/354128

Log:
  MFC r353775
  
  netmap: minor misc improvements
  
   - use ring->head rather than ring->cur in lb(8)
   - use strlcat() rather than strncat()
   - fix bandwidth computation in pkt-gen(8)

Modified:
  stable/12/sys/dev/netmap/netmap.c
  stable/12/sys/dev/netmap/netmap_legacy.c
  stable/12/sys/dev/netmap/netmap_mem2.c
  stable/12/tools/tools/netmap/lb.c
  stable/12/tools/tools/netmap/pkt-gen.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/netmap/netmap.c
==============================================================================
--- stable/12/sys/dev/netmap/netmap.c	Sun Oct 27 08:35:29 2019	(r354127)
+++ stable/12/sys/dev/netmap/netmap.c	Sun Oct 27 09:28:33 2019	(r354128)
@@ -3316,7 +3316,8 @@ nmreq_getoption(struct nmreq_header *hdr, uint16_t req
 	if (!hdr->nr_options)
 		return NULL;
 
-	opt_tab = (struct nmreq_option **)(hdr->nr_options) - (NETMAP_REQ_OPT_MAX + 1);
+	opt_tab = (struct nmreq_option **)((uintptr_t)hdr->nr_options) -
+	    (NETMAP_REQ_OPT_MAX + 1);
 	return opt_tab[reqtype];
 }
 

Modified: stable/12/sys/dev/netmap/netmap_legacy.c
==============================================================================
--- stable/12/sys/dev/netmap/netmap_legacy.c	Sun Oct 27 08:35:29 2019	(r354127)
+++ stable/12/sys/dev/netmap/netmap_legacy.c	Sun Oct 27 09:28:33 2019	(r354128)
@@ -100,7 +100,7 @@ nmreq_register_from_legacy(struct nmreq *nmr, struct n
 			/* No space for the pipe suffix. */
 			return ENOBUFS;
 		}
-		strncat(hdr->nr_name, suffix, strlen(suffix));
+		strlcat(hdr->nr_name, suffix, sizeof(hdr->nr_name));
 		req->nr_mode = NR_REG_ALL_NIC;
 		req->nr_ringid = 0;
 	}

Modified: stable/12/sys/dev/netmap/netmap_mem2.c
==============================================================================
--- stable/12/sys/dev/netmap/netmap_mem2.c	Sun Oct 27 08:35:29 2019	(r354127)
+++ stable/12/sys/dev/netmap/netmap_mem2.c	Sun Oct 27 09:28:33 2019	(r354128)
@@ -2447,8 +2447,8 @@ netmap_mem_pt_guest_ifp_del(struct netmap_mem_d *nmd, 
 			} else {
 				ptnmd->pt_ifs = curr->next;
 			}
-			nm_prinf("removed (ifp=%p,nifp_offset=%u)",
-			  curr->ifp, curr->nifp_offset);
+			nm_prinf("removed (ifp=%s,nifp_offset=%u)",
+			  curr->ifp->if_xname, curr->nifp_offset);
 			nm_os_free(curr);
 			ret = 0;
 			break;

Modified: stable/12/tools/tools/netmap/lb.c
==============================================================================
--- stable/12/tools/tools/netmap/lb.c	Sun Oct 27 08:35:29 2019	(r354127)
+++ stable/12/tools/tools/netmap/lb.c	Sun Oct 27 09:28:33 2019	(r354128)
@@ -652,7 +652,7 @@ int main(int argc, char **argv)
 	/* extract the base name */
 	char *nscan = strncmp(glob_arg.ifname, "netmap:", 7) ?
 			glob_arg.ifname : glob_arg.ifname + 7;
-	strncpy(glob_arg.base_name, nscan, MAX_IFNAMELEN-1);
+	strncpy(glob_arg.base_name, nscan, MAX_IFNAMELEN - 1);
 	for (nscan = glob_arg.base_name; *nscan && !index("-*^{}/@", *nscan); nscan++)
 		;
 	*nscan = '\0';
@@ -948,8 +948,8 @@ run:
 			struct netmap_ring *rxring = NETMAP_RXRING(rxport->nmd->nifp, i);
 
 			//D("prepare to scan rings");
-			int next_cur = rxring->cur;
-			struct netmap_slot *next_slot = &rxring->slot[next_cur];
+			int next_head = rxring->head;
+			struct netmap_slot *next_slot = &rxring->slot[next_head];
 			const char *next_buf = NETMAP_BUF(rxring, next_slot->buf_idx);
 			while (!nm_ring_empty(rxring)) {
 				struct netmap_slot *rs = next_slot;
@@ -963,14 +963,14 @@ run:
 					non_ip++; // XXX ??
 				}
 				// prefetch the buffer for the next round
-				next_cur = nm_ring_next(rxring, next_cur);
-				next_slot = &rxring->slot[next_cur];
+				next_head = nm_ring_next(rxring, next_head);
+				next_slot = &rxring->slot[next_head];
 				next_buf = NETMAP_BUF(rxring, next_slot->buf_idx);
 				__builtin_prefetch(next_buf);
 				// 'B' is just a hashing seed
 				rs->buf_idx = forward_packet(g, rs);
 				rs->flags |= NS_BUF_CHANGED;
-				rxring->head = rxring->cur = next_cur;
+				rxring->head = rxring->cur = next_head;
 
 				batch++;
 				if (unlikely(batch >= glob_arg.batch)) {

Modified: stable/12/tools/tools/netmap/pkt-gen.c
==============================================================================
--- stable/12/tools/tools/netmap/pkt-gen.c	Sun Oct 27 08:35:29 2019	(r354127)
+++ stable/12/tools/tools/netmap/pkt-gen.c	Sun Oct 27 09:28:33 2019	(r354128)
@@ -2634,7 +2634,7 @@ main_thread(struct glob_arg *g)
 		D("%spps %s(%spkts %sbps in %llu usec) %.2f avg_batch %d min_space",
 			norm(b1, pps, normalize), b4,
 			norm(b2, (double)x.pkts, normalize),
-			norm(b3, (double)x.bytes*8+(double)x.pkts*g->framing, normalize),
+			norm(b3, 1000000*((double)x.bytes*8+(double)x.pkts*g->framing)/usec, normalize),
 			(unsigned long long)usec,
 			abs, (int)cur.min_space);
 		prev = cur;
@@ -2973,6 +2973,7 @@ main(int arc, char **argv)
 			g.options |= OPT_DUMP;
 			break;
 		case 'C':
+			D("WARNING: the 'C' option is deprecated, use the '+conf:' libnetmap option instead");
 			g.nmr_config = strdup(optarg);
 			break;
 		case 'H':



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910270928.x9R9SXnl020247>