All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Richardson <richardsonnick@google.com>
To: netdev@vger.kernel.org, davem@davemloft.net, kuba@kernel.org
Cc: nrrichar@ncsu.edu, promanov@google.com, arunkaly@google.com,
	Nick Richardson <richardsonnick@google.com>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	Ye Bin <yebin10@huawei.com>, Leesoo Ahn <dev@ooseel.net>,
	Di Zhu <zhudi21@huawei.com>, Yejune Deng <yejune.deng@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v3 3/3] pktgen: Add output for imix results
Date: Tue, 17 Aug 2021 23:51:38 +0000	[thread overview]
Message-ID: <20210817235141.1136355-4-richardsonnick@google.com> (raw)
In-Reply-To: <20210817235141.1136355-1-richardsonnick@google.com>

From: Nick Richardson <richardsonnick@google.com>

The bps for imix mode is calculated by:
sum(imix_entry.size) / time_elapsed

The actual counts of each imix_entry are displayed under the
"Current:" section of the interface output in the following format:
imix_size_counts: size_1,count_1 size_2,count_2 ... size_n,count_n

Example (count = 200000):
imix_weights: 256,1 859,3 205,2
imix_size_counts: 256,32082 859,99796 205,68122
Result: OK: 17992362(c17964678+d27684) usec, 200000 (859byte,0frags)
  11115pps 47Mb/sec (47977140bps) errors: 0

Summary of changes:
Calculate bps based on imix counters when in IMIX mode.
Add output for IMIX counters.

Signed-off-by: Nick Richardson <richardsonnick@google.com>
---
 net/core/pktgen.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 9e78edf0f69b..699f76779f0c 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -695,6 +695,18 @@ static int pktgen_if_show(struct seq_file *seq, void *v)
 		   (unsigned long long)pkt_dev->sofar,
 		   (unsigned long long)pkt_dev->errors);
 
+	if (pkt_dev->n_imix_entries > 0) {
+		int i;
+
+		seq_puts(seq, "     imix_size_counts: ");
+		for (i = 0; i < pkt_dev->n_imix_entries; i++) {
+			seq_printf(seq, "%llu,%llu ",
+				   pkt_dev->imix_entries[i].size,
+				   pkt_dev->imix_entries[i].count_so_far);
+		}
+		seq_puts(seq, "\n");
+	}
+
 	seq_printf(seq,
 		   "     started: %lluus  stopped: %lluus idle: %lluus\n",
 		   (unsigned long long) ktime_to_us(pkt_dev->started_at),
@@ -3281,7 +3293,19 @@ static void show_results(struct pktgen_dev *pkt_dev, int nr_frags)
 	pps = div64_u64(pkt_dev->sofar * NSEC_PER_SEC,
 			ktime_to_ns(elapsed));
 
-	bps = pps * 8 * pkt_dev->cur_pkt_size;
+	if (pkt_dev->n_imix_entries > 0) {
+		int i;
+		struct imix_pkt *entry;
+
+		bps = 0;
+		for (i = 0; i < pkt_dev->n_imix_entries; i++) {
+			entry = &pkt_dev->imix_entries[i];
+			bps += entry->size * entry->count_so_far;
+		}
+		bps = div64_u64(bps * 8 * NSEC_PER_SEC, ktime_to_ns(elapsed));
+	} else {
+		bps = pps * 8 * pkt_dev->cur_pkt_size;
+	}
 
 	mbps = bps;
 	do_div(mbps, 1000000);
-- 
2.33.0.rc1.237.g0d66db33f3-goog


  parent reply	other threads:[~2021-08-17 23:52 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17 23:51 [PATCH v3 0/3] pktgen: Add IMIX mode Nicholas Richardson
2021-08-17 23:51 ` [PATCH v3 1/3] pktgen: Parse internet mix (imix) input Nicholas Richardson
2021-08-17 23:51 ` [PATCH v3 2/3] pktgen: Add imix distribution bins Nicholas Richardson
2021-08-17 23:51 ` Nicholas Richardson [this message]
2021-08-18  0:32 ` [PATCH v3 0/3] pktgen: Add IMIX mode Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210817235141.1136355-4-richardsonnick@google.com \
    --to=richardsonnick@google.com \
    --cc=arunkaly@google.com \
    --cc=davem@davemloft.net \
    --cc=dev@ooseel.net \
    --cc=gustavoars@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nrrichar@ncsu.edu \
    --cc=promanov@google.com \
    --cc=yebin10@huawei.com \
    --cc=yejune.deng@gmail.com \
    --cc=zhudi21@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.