All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Buslov <vladbu@mellanox.com>
To: netdev@vger.kernel.org
Cc: jhs@mojatatu.com, xiyou.wangcong@gmail.com, davem@davemloft.net,
	shuah@kernel.org, batuhanosmantaskaya@gmail.com,
	lucasb@mojatatu.com, dcaratti@redhat.com,
	marcelo.leitner@gmail.com, chrism@mellanox.com,
	Vlad Buslov <vladbu@mellanox.com>
Subject: [PATCH net-next 7/8] selftests: concurrency: add test to verify parallel add/delete
Date: Fri, 22 Feb 2019 16:00:46 +0200	[thread overview]
Message-ID: <20190222140047.13215-8-vladbu@mellanox.com> (raw)
In-Reply-To: <20190222140047.13215-1-vladbu@mellanox.com>

Implement test that runs 5 instances of tc add filter in parallel with 5
instances of tc del filter from same tp instance. Each instance uses its
own filter handle and key range.

Extend tdc_multibatch.py with additional options required to implement the
test: common prefix for all generated batch files, first value of filter
handle range, MAC address prefix modifier. These are necessary to allow
creating batch files with unique keys and handle ranges with multiple
invocation of tdc_multibatch.py helper script.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
---
 .../tc-testing/tc-tests/filters/concurrency.json   | 26 ++++++++++++++++++++++
 .../testing/selftests/tc-testing/tdc_multibatch.py | 26 +++++++++++++++++++---
 2 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json b/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json
index 102a6a3f08df..8316634a0cd7 100644
--- a/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json
+++ b/tools/testing/selftests/tc-testing/tc-tests/filters/concurrency.json
@@ -121,5 +121,31 @@
             "$TC qdisc del dev $DEV2 ingress",
 	    "/bin/rm -rf $BATCH_DIR"
         ]
+    },
+    {
+        "id": "ab62",
+        "name": "Add and delete from same tp with 10 tc instances",
+        "category": [
+            "filter",
+            "flower",
+            "concurrency"
+        ],
+        "setup": [
+            "/bin/mkdir $BATCH_DIR",
+            "$TC qdisc add dev $DEV2 ingress",
+            "./tdc_multibatch.py -x init_ $DEV2 $BATCH_DIR 100000 5 add",
+            "find $BATCH_DIR/init_* -print | xargs -n 1 -P 5 $TC -b",
+            "./tdc_multibatch.py -x par_ -a 500001 -m 5 $DEV2 $BATCH_DIR 100000 5 add",
+            "./tdc_multibatch.py -x par_ $DEV2 $BATCH_DIR 100000 5 del"
+        ],
+        "cmdUnderTest": "find $BATCH_DIR/par_* -print | xargs -n 1 -P 10 $TC -b",
+        "expExitCode": "0",
+        "verifyCmd": "$TC -s filter show dev $DEV2 ingress",
+        "matchPattern": "filter protocol ip pref 1 flower chain 0 handle",
+        "matchCount": "500000",
+        "teardown": [
+            "$TC qdisc del dev $DEV2 ingress",
+            "/bin/rm -rf $BATCH_DIR"
+        ]
     }
 ]
diff --git a/tools/testing/selftests/tc-testing/tdc_multibatch.py b/tools/testing/selftests/tc-testing/tdc_multibatch.py
index 0d8be39b5580..5e7237952e49 100755
--- a/tools/testing/selftests/tc-testing/tdc_multibatch.py
+++ b/tools/testing/selftests/tc-testing/tdc_multibatch.py
@@ -22,24 +22,44 @@ parser.add_argument(
     choices=['add', 'del', 'replace'],
     help="operation to perform on filters")
 parser.add_argument(
+    "-x",
+    "--file_prefix",
+    default="",
+    help="prefix for generated batch file names")
+parser.add_argument(
     "-d",
     "--duplicate_handles",
     action="store_true",
     help="duplicate filter handle range in all files")
+parser.add_argument(
+    "-a",
+    "--handle_start",
+    type=int,
+    default=1,
+    help="start handle range from (default: 1)")
+parser.add_argument(
+    "-m",
+    "--mac_prefix",
+    type=int,
+    default=0,
+    choices=range(0, 256),
+    help="add this value to third byte of source MAC address of flower filter"
+    "(default: 0)")
 args = parser.parse_args()
 
 device = args.device
 dir = args.dir
-file_prefix = args.operation + "_"
+file_prefix = args.file_prefix + args.operation + "_"
 num_filters = args.num_filters
 num_files = args.num_files
 operation = args.operation
 duplicate_handles = args.duplicate_handles
-handle = 1
+handle = args.handle_start
+mac_prefix = args.mac_prefix
 
 for i in range(num_files):
     file = dir + '/' + file_prefix + str(i)
     os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format(
-        num_filters, handle, operation, i, device, file))
+        num_filters, handle, operation, i + mac_prefix, device, file))
     if not duplicate_handles:
         handle += num_filters
-- 
2.13.6


  parent reply	other threads:[~2019-02-22 14:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-22 14:00 [PATCH net-next 0/8] Add tests for unlocked flower classifier implementation Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 1/8] selftests: tdc_batch.py: add options needed for concurrency tests Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 2/8] selftests: concurrency: add test to verify parallel rules insertion Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 3/8] selftests: concurrency: add test to verify parallel rules deletion Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 4/8] selftests: concurrency: add test to verify parallel rules replace Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 5/8] selftests: concurrency: add test to verify concurrent replace Vlad Buslov
2019-02-22 14:00 ` [PATCH net-next 6/8] selftests: concurrency: add test to verify concurrent delete Vlad Buslov
2019-02-22 14:00 ` Vlad Buslov [this message]
2019-02-22 14:00 ` [PATCH net-next 8/8] selftests: concurrency: add test to verify parallel replace/delete Vlad Buslov
2019-02-22 17:35 ` [PATCH net-next 0/8] Add tests for unlocked flower classifier implementation Cong Wang
2019-02-24 20:50 ` David Miller

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=20190222140047.13215-8-vladbu@mellanox.com \
    --to=vladbu@mellanox.com \
    --cc=batuhanosmantaskaya@gmail.com \
    --cc=chrism@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=dcaratti@redhat.com \
    --cc=jhs@mojatatu.com \
    --cc=lucasb@mojatatu.com \
    --cc=marcelo.leitner@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=shuah@kernel.org \
    --cc=xiyou.wangcong@gmail.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.