< TEST_PROGS=toeplitz.py TEST_GEN_PROGS="" run_tests make: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests' make[1]: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make[1]: Nothing to be done for 'all'. make[1]: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' # overriding timeout to 720 # selftests: drivers/net/hw: toeplitz.py # TAP version 13 # 1..12 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 200, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail, # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| expect_fail=self.expect_fail) # # Exception| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 129, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -4 -t -d 43635 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 42 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0xf95e67d4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59956 dport 43635] != expected 0x6c2b0579 # # Exception| cpu 0: rx_hash 0x5c19bb9e [saddr 192.0.3.2 daddr 192.0.3.1 sport 59968 dport 43635] != expected 0xdf60f474 # # Exception| cpu 0: rx_hash 0xecd12062 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60004 dport 43635] != expected 0xaf4ed534 # # Exception| cpu 0: rx_hash 0x33a1cd35 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60024 dport 43635] != expected 0xf08514b4 # # Exception| cpu 0: rx_hash 0x1696030b [saddr 192.0.3.2 daddr 192.0.3.1 sport 60026 dport 43635] != expected 0xb9f7166f # # Exception| cpu 0: rx_hash 0x4d781ea1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60058 dport 43635] != expected 0xb20e6e5f # # Exception| cpu 4: rx_hash 0xf24c7b03 [saddr 192.0.3.2 daddr 192.0.3.1 sport 52712 dport 43635] != expected 0x8b2524c2 # # Exception| cpu 4: rx_hash 0xe2f86130 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59982 dport 43635] != expected 0x60f77774 # # Exception| cpu 4: rx_hash 0x659cd3ed [saddr 192.0.3.2 daddr 192.0.3.1 sport 60012 dport 43635] != expected 0xfd125582 # # Exception| cpu 4: rx_hash 0xbaec3eba [saddr 192.0.3.2 daddr 192.0.3.1 sport 60016 dport 43635] != expected 0xa2d99402 # # Exception| cpu 4: rx_hash 0x9208f3f6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60038 dport 43635] != expected 0xedc5afdf # # Exception| cpu 4: rx_hash 0x09dee766 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60042 dport 43635] != expected 0x1b202e04 # # Exception| cpu 5: rx_hash 0xb4c57fe8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59994 dport 43635] != expected 0x6d603642 # # Exception| cpu 5: rx_hash 0x156c412b [saddr 192.0.3.2 daddr 192.0.3.1 sport 60068 dport 43635] != expected 0x70208d29 # # Exception| cpu 0: rx_hash 0x4a6cbe08 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60110 dport 43635] != expected 0xd5d2bf7f # # Exception| cpu 0: rx_hash 0x750057c2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60170 dport 43635] != expected 0x7497020a # # Exception| cpu 0: rx_hash 0x31a6ae05 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60186 dport 43635] != expected 0xddb94251 # # Exception| cpu 4: rx_hash 0x43515ff3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60080 dport 43635] != expected 0x7db7cc1f # # Exception| cpu 4: rx_hash 0xbe02dc33 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60154 dport 43635] != expected 0xcd2de64 # # Exception| cpu 4: rx_hash 0x7b291690 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60192 dport 43635] != expected 0xbb2ea04a # # Exception| cpu 4: rx_hash 0xe0ff0200 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60204 dport 43635] != expected 0x4dcb2191 # # Exception| cpu 5: rx_hash 0x8eba55bb [saddr 192.0.3.2 daddr 192.0.3.1 sport 60072 dport 43635] != expected 0x86c50cf2 # # Exception| cpu 5: rx_hash 0xb9167c9a [saddr 192.0.3.2 daddr 192.0.3.1 sport 60078 dport 43635] != expected 0x6b0e0f44 # # Exception| cpu 5: rx_hash 0xf48d64a6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60096 dport 43635] != expected 0x6a453c7f # # Exception| cpu 5: rx_hash 0x39666eee [saddr 192.0.3.2 daddr 192.0.3.1 sport 60120 dport 43635] != expected 0x9137fc92 # # Exception| cpu 5: rx_hash 0x61723164 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60134 dport 43635] != expected 0x53191fe4 # # Exception| cpu 5: rx_hash 0x1278e182 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60144 dport 43635] != expected 0x17fc5c09 # # Exception| cpu 5: rx_hash 0xa459fbc7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60220 dport 43635] != expected 0xe4e561ca # # Exception| cpu 0: rx_hash 0x9ac8331d [saddr 192.0.3.2 daddr 192.0.3.1 sport 60228 dport 43635] != expected 0xa14b111c # # Exception| cpu 0: rx_hash 0xbffffd23 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60230 dport 43635] != expected 0xe83913c7 # # Exception| cpu 0: rx_hash 0xde6ecada [saddr 192.0.3.2 daddr 192.0.3.1 sport 60244 dport 43635] != expected 0x8655147 # # Exception| cpu 0: rx_hash 0x45b8de4a [saddr 192.0.3.2 daddr 192.0.3.1 sport 60248 dport 43635] != expected 0xfe80d09c # # Exception| cpu 0: rx_hash 0x867a9550 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60266 dport 43635] != expected 0xca4bb231 # # Exception| cpu 0: rx_hash 0xb1d6bc71 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60268 dport 43635] != expected 0x2780b187 # # Exception| cpu 0: rx_hash 0xf57045b6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60284 dport 43635] != expected 0x8eaef1dc # # Exception| cpu 4: rx_hash 0xfb5904e4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60246 dport 43635] != expected 0x4117539c # # Exception| cpu 4: rx_hash 0x2a00a8e1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60256 dport 43635] != expected 0xd165305c # # Exception| cpu 4: rx_hash 0x1dac81c0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60262 dport 43635] != expected 0x3cae33ea # # Exception| cpu 4: rx_hash 0x63755254 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60292 dport 43635] != expected 0x7e254901 # # Exception| cpu 5: rx_hash 0x36b20eac [saddr 192.0.3.2 daddr 192.0.3.1 sport 60238 dport 43635] != expected 0xba659371 # # Exception| cpu 5: rx_hash 0x94e1724f [saddr 192.0.3.2 daddr 192.0.3.1 sport 60270 dport 43635] != expected 0x6ef2b35c # # Exception| cpu 5: rx_hash 0x590a7807 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60278 dport 43635] != expected 0x958073b1 # # Exception| count: pass=0 nohash=0 fail=42 # # Exception| # not ok 1 toeplitz.test.tcp_ipv4 # # Receiver output: # # # # RSS indirection table size: 256 # # # cpu 4: rx_hash 0xf6dd72ff [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53506 dport 53769] OK # # # cpu 4: rx_hash 0x974c4506 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53520 dport 53769] OK # # # cpu 4: rx_hash 0xddc3fd93 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53546 dport 53769] OK # # # cpu 4: rx_hash 0x99650454 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53562 dport 53769] OK # # # cpu 4: rx_hash 0xaec92d75 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53564 dport 53769] OK # # # cpu 4: rx_hash 0x3c22d81e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53582 dport 53769] OK # # # cpu 4: rx_hash 0xed7b741b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53624 dport 53769] OK # # # cpu 5: rx_hash 0x71b9c022 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53536 dport 53769] OK # # # cpu 5: rx_hash 0x6322273d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53540 dport 53769] OK # # # cpu 5: rx_hash 0x9058e5af [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53572 dport 53769] OK # # # cpu 5: rx_hash 0x788421d9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53598 dport 53769] OK # # # cpu 5: rx_hash 0xa9dd8ddc [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53608 dport 53769] OK # # # cpu 5: rx_hash 0xc84cba25 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53626 dport 53769] OK # # # cpu 0: rx_hash 0x9d8be6dd [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53680 dport 53769] OK # # # cpu 0: rx_hash 0x0f6013b6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53698 dport 53769] OK # # # cpu 0: rx_hash 0x4bc6ea71 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53714 dport 53769] OK # # # cpu 0: rx_hash 0x36e57bc5 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53742 dport 53769] OK # # # cpu 0: rx_hash 0x72438202 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53758 dport 53769] OK # # # cpu 4: rx_hash 0xd7045e48 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53642 dport 53769] OK # # # cpu 4: rx_hash 0xc59fb957 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53646 dport 53769] OK # # # cpu 4: rx_hash 0x2d437d21 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53652 dport 53769] OK # # # cpu 4: rx_hash 0x81394090 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53662 dport 53769] OK # # # cpu 4: rx_hash 0x42fb0b8a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53676 dport 53769] OK # # # cpu 4: rx_hash 0x862de039 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53706 dport 53769] OK # # # cpu 4: rx_hash 0xd010fee1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53726 dport 53769] OK # # # cpu 5: rx_hash 0x14c61552 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53688 dport 53769] OK # # # cpu 0: rx_hash 0x48b22aad [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53762 dport 53769] OK # # # cpu 0: rx_hash 0xae47af89 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53810 dport 53769] OK # # # cpu 0: rx_hash 0x90d66753 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53834 dport 53769] OK # # # cpu 0: rx_hash 0xa9530f20 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53862 dport 53769] OK # # # cpu 0: rx_hash 0x32851bb0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53866 dport 53769] OK # # # cpu 4: rx_hash 0x8b7061b7 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53808 dport 53769] OK # # # cpu 4: rx_hash 0x10a67527 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53820 dport 53769] OK # # # cpu 5: rx_hash 0xe4c8171c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53768 dport 53769] OK # # # cpu 5: rx_hash 0x0c14d36a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53778 dport 53769] OK # # # cpu 5: rx_hash 0x855920e5 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53786 dport 53769] OK # # # cpu 5: rx_hash 0x97c2c7fa [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53790 dport 53769] OK # # # cpu 5: rx_hash 0x63aca5c1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53802 dport 53769] OK # # # cpu 5: rx_hash 0x4fa68a04 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53846 dport 53769] OK # # # cpu 5: rx_hash 0xc8c238d9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53876 dport 53769] OK # # # count: pass=40 nohash=0 fail=0 # ok 2 toeplitz.test.tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 200, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail, # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| expect_fail=self.expect_fail) # # Exception| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 129, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -4 -u -d 56293 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 43 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35246 dport 56293] != expected 0xd4783c39 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35246 dport 56293] != expected 0xd4783c39 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49956 dport 56293] != expected 0xff02134d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49956 dport 56293] != expected 0xff02134d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46100 dport 56293] != expected 0x5bd3aecd # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46100 dport 56293] != expected 0x5bd3aecd # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53915 dport 56293] != expected 0xdd6f7c3 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53915 dport 56293] != expected 0xdd6f7c3 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35572 dport 56293] != expected 0xbbe8f81e # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35572 dport 56293] != expected 0xbbe8f81e # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37299 dport 56293] != expected 0x4fac8acf # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37299 dport 56293] != expected 0x4fac8acf # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46789 dport 56293] != expected 0xd23ec13f # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46789 dport 56293] != expected 0xd23ec13f # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59204 dport 56293] != expected 0x91ae8d57 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59204 dport 56293] != expected 0x91ae8d57 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 54081 dport 56293] != expected 0xba2a89ed # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 54081 dport 56293] != expected 0xba2a89ed # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60232 dport 56293] != expected 0xcabde90d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60232 dport 56293] != expected 0xcabde90d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50209 dport 56293] != expected 0x48203890 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50209 dport 56293] != expected 0x48203890 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34622 dport 56293] != expected 0x8cc23ea # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34622 dport 56293] != expected 0x8cc23ea # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58193 dport 56293] != expected 0x387970d6 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58193 dport 56293] != expected 0x387970d6 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45762 dport 56293] != expected 0x9bb57e3e # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45762 dport 56293] != expected 0x9bb57e3e # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 47384 dport 56293] != expected 0xda522e92 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 47384 dport 56293] != expected 0xda522e92 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46718 dport 56293] != expected 0x9368ee99 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46718 dport 56293] != expected 0x9368ee99 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38843 dport 56293] != expected 0x461dc17a # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38843 dport 56293] != expected 0x461dc17a # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49587 dport 56293] != expected 0xf16fef1f # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49587 dport 56293] != expected 0xf16fef1f # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 48081 dport 56293] != expected 0xa8cd818d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 48081 dport 56293] != expected 0xa8cd818d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 41951 dport 56293] != expected 0x41a1704d # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38970 dport 56293] != expected 0x7bf17f41 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38970 dport 56293] != expected 0x7bf17f41 # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 55580 dport 56293] != expected 0xeb55f34f # # Exception| cpu 0: rx_hash 0xb54eae41 [saddr 192.0.3.2 daddr 192.0.3.1 sport 55580 dport 56293] != expected 0xeb55f34f # # Exception| count: pass=0 nohash=0 fail=43 # # Exception| # not ok 3 toeplitz.test.udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 200, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail, # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| expect_fail=self.expect_fail) # # Exception| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 129, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -6 -u -d 53746 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42850 dport 53746] != expected 0x7fd5b0e2 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42850 dport 53746] != expected 0x7fd5b0e2 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60138 dport 53746] != expected 0xf68c0c63 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60138 dport 53746] != expected 0xf68c0c63 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44860 dport 53746] != expected 0x4e326009 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44860 dport 53746] != expected 0x4e326009 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45989 dport 53746] != expected 0x83fd59e8 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45989 dport 53746] != expected 0x83fd59e8 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39598 dport 53746] != expected 0x8d898936 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39598 dport 53746] != expected 0x8d898936 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38268 dport 53746] != expected 0x45151c0 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38268 dport 53746] != expected 0x45151c0 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51093 dport 53746] != expected 0x68ad9b10 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51093 dport 53746] != expected 0x68ad9b10 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49014 dport 53746] != expected 0xfe254530 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49014 dport 53746] != expected 0xfe254530 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 43222 dport 53746] != expected 0x32db83a7 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 43222 dport 53746] != expected 0x32db83a7 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39797 dport 53746] != expected 0x2cddfe9 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39797 dport 53746] != expected 0x2cddfe9 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37343 dport 53746] != expected 0x54dc3bbe # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37343 dport 53746] != expected 0x54dc3bbe # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60354 dport 53746] != expected 0x9d8ec93 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60354 dport 53746] != expected 0x9d8ec93 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57572 dport 53746] != expected 0xb8c1acf0 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57572 dport 53746] != expected 0xb8c1acf0 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45646 dport 53746] != expected 0xea4c8a13 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45646 dport 53746] != expected 0xea4c8a13 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36036 dport 53746] != expected 0xc0fa7cc5 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36036 dport 53746] != expected 0xc0fa7cc5 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41603 dport 53746] != expected 0x8f0cc54f # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41603 dport 53746] != expected 0x8f0cc54f # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41560 dport 53746] != expected 0xd402fc0c # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41560 dport 53746] != expected 0xd402fc0c # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54100 dport 53746] != expected 0xa3295b3b # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54100 dport 53746] != expected 0xa3295b3b # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52127 dport 53746] != expected 0x6b4c70b5 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52127 dport 53746] != expected 0x6b4c70b5 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40549 dport 53746] != expected 0xa733d255 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40549 dport 53746] != expected 0xa733d255 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35614 dport 53746] != expected 0x5ae61a4f # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35614 dport 53746] != expected 0x5ae61a4f # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56878 dport 53746] != expected 0xc35ee457 # # Exception| cpu 5: rx_hash 0x33b8128b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56878 dport 53746] != expected 0xc35ee457 # # Exception| count: pass=0 nohash=0 fail=44 # # Exception| # not ok 4 toeplitz.test.udp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 5 toeplitz.test.rss_tcp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 6 toeplitz.test.rss_tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 7 toeplitz.test.rss_udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 8 toeplitz.test.rss_udp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 9 toeplitz.test.rps_tcp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 10 toeplitz.test.rps_tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 11 toeplitz.test.rps_udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 12 toeplitz.test.rps_udp_ipv6 # # Totals: pass:1 fail:11 xfail:0 xpass:0 skip:0 error:0 not ok 1 selftests: drivers/net/hw: toeplitz.py # exit=1 make[1]: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests' xx__-> echo $? 0 xx__-> echo scan > /sys/kernel/debug/kmemleak xx__-> /opt/nipa/contest/scripts/env_check.py Comparing to existing state file: no differences detected. Current system state saved to /tmp/nipa-env-state.json xx__-> echo $? 0 xx__->