bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Magnus Karlsson <magnus.karlsson@gmail.com>
To: magnus.karlsson@intel.com, bjorn@kernel.org, ast@kernel.org,
	daniel@iogearbox.net, netdev@vger.kernel.org,
	maciej.fijalkowski@intel.com
Cc: jonathan.lemon@gmail.com, ciara.loftus@intel.com,
	bpf@vger.kernel.org, yhs@fb.com, andrii@kernel.org
Subject: [PATCH bpf-next v2 05/16] selftests: xsk: simplify the retry code
Date: Tue, 17 Aug 2021 11:27:18 +0200	[thread overview]
Message-ID: <20210817092729.433-6-magnus.karlsson@gmail.com> (raw)
In-Reply-To: <20210817092729.433-1-magnus.karlsson@gmail.com>

From: Magnus Karlsson <magnus.karlsson@intel.com>

Simplify the retry code and make it more efficient by waiting first,
instead of trying immediately which always fails due to the
asynchronous nature of xsk socket close. Also decrease the wait time
to significantly lower the run-time of the test suite.

Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
---
 tools/testing/selftests/bpf/xdpxceiver.c | 23 ++++++++++-------------
 tools/testing/selftests/bpf/xdpxceiver.h |  2 +-
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c
index f221bc5dae17..b7d193a96083 100644
--- a/tools/testing/selftests/bpf/xdpxceiver.c
+++ b/tools/testing/selftests/bpf/xdpxceiver.c
@@ -745,24 +745,19 @@ static void thread_common_ops(struct ifobject *ifobject, void *bufs)
 	if (bufs == MAP_FAILED)
 		exit_with_error(errno);
 
-	xsk_configure_umem(ifobject, bufs, 0);
-	ifobject->umem = ifobject->umem_arr[0];
-	ret = xsk_configure_socket(ifobject, 0);
-
-	/* Retry Create Socket if it fails as xsk_socket__create()
-	 * is asynchronous
-	 */
-	while (ret && ctr < SOCK_RECONF_CTR) {
+	while (ctr++ < SOCK_RECONF_CTR) {
 		xsk_configure_umem(ifobject, bufs, 0);
 		ifobject->umem = ifobject->umem_arr[0];
 		ret = xsk_configure_socket(ifobject, 0);
+		if (!ret)
+			break;
+
+		/* Retry Create Socket if it fails as xsk_socket__create() is asynchronous */
 		usleep(USLEEP_MAX);
-		ctr++;
+		if (ctr >= SOCK_RECONF_CTR)
+			exit_with_error(-ret);
 	}
 
-	if (ctr >= SOCK_RECONF_CTR)
-		exit_with_error(ret);
-
 	ifobject->umem = ifobject->umem_arr[0];
 	ifobject->xsk = ifobject->xsk_arr[0];
 
@@ -1125,8 +1120,10 @@ int main(int argc, char **argv)
 	ksft_set_plan(TEST_MODE_MAX * TEST_TYPE_MAX);
 
 	for (i = 0; i < TEST_MODE_MAX; i++) {
-		for (j = 0; j < TEST_TYPE_MAX; j++)
+		for (j = 0; j < TEST_TYPE_MAX; j++) {
 			run_pkt_test(i, j);
+			usleep(USLEEP_MAX);
+		}
 	}
 
 cleanup:
diff --git a/tools/testing/selftests/bpf/xdpxceiver.h b/tools/testing/selftests/bpf/xdpxceiver.h
index 02b7d0d6f45d..1c94230c351a 100644
--- a/tools/testing/selftests/bpf/xdpxceiver.h
+++ b/tools/testing/selftests/bpf/xdpxceiver.h
@@ -35,7 +35,7 @@
 #define UDP_PKT_SIZE (IP_PKT_SIZE - sizeof(struct iphdr))
 #define UDP_PKT_DATA_SIZE (UDP_PKT_SIZE - sizeof(struct udphdr))
 #define EOT (-1)
-#define USLEEP_MAX 200000
+#define USLEEP_MAX 10000
 #define SOCK_RECONF_CTR 10
 #define BATCH_SIZE 64
 #define POLL_TMOUT 1000
-- 
2.29.0


  parent reply	other threads:[~2021-08-17  9:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17  9:27 [PATCH bpf-next v2 00/16] selftests: xsk: various simplifications Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 01/16] selftests: xsk: remove color mode Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 02/16] selftests: xsk: remove the num_tx_packets option Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 03/16] selftests: xsk: remove unused variables Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 04/16] selftests: xsk: return correct error codes Magnus Karlsson
2021-08-17  9:27 ` Magnus Karlsson [this message]
2021-08-17  9:27 ` [PATCH bpf-next v2 06/16] selftests: xsk: remove end-of-test packet Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 07/16] selftests: xsk: disassociate umem size with packets sent Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 08/16] selftests: xsk: rename worker_* functions that are not thread entry points Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 09/16] selftests: xsk: simplify packet validation in xsk tests Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 10/16] selftests: xsk: validate tx stats on tx thread Magnus Karlsson
2021-08-19  9:26   ` Maciej Fijalkowski
2021-08-19  9:52     ` Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 11/16] selftests: xsk: decrease batch size Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 12/16] selftests: xsk: remove cleanup at end of program Magnus Karlsson
2021-08-19  9:28   ` Maciej Fijalkowski
2021-08-19 10:02     ` Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 13/16] selftests: xsk: generate packet directly in umem Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 14/16] selftests: xsk: generate packets from specification Magnus Karlsson
2021-08-19 10:10   ` Maciej Fijalkowski
2021-08-19 10:38     ` Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 15/16] selftests: xsk: make enums lower case Magnus Karlsson
2021-08-17  9:27 ` [PATCH bpf-next v2 16/16] selftests: xsk: preface options with opt Magnus Karlsson
2021-08-19 10:13 ` [PATCH bpf-next v2 00/16] selftests: xsk: various simplifications Maciej Fijalkowski

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=20210817092729.433-6-magnus.karlsson@gmail.com \
    --to=magnus.karlsson@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bjorn@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=ciara.loftus@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=jonathan.lemon@gmail.com \
    --cc=maciej.fijalkowski@intel.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=yhs@fb.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).