< 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 43218 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 40 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0xf39c3608 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39006 dport 43218] != expected 0x40f7d8ae # # Exception| cpu 0: rx_hash 0xf559dc1a [saddr 192.0.3.2 daddr 192.0.3.1 sport 39014 dport 43218] != expected 0x8930ef8b # # Exception| cpu 4: rx_hash 0x3a8b1b7b [saddr 192.0.3.2 daddr 192.0.3.1 sport 38948 dport 43218] != expected 0xacb617cb # # Exception| cpu 4: rx_hash 0x95c42f3c [saddr 192.0.3.2 daddr 192.0.3.1 sport 38970 dport 43218] != expected 0x60456947 # # Exception| cpu 4: rx_hash 0xe5004a66 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38988 dport 43218] != expected 0xf4656a70 # # Exception| cpu 4: rx_hash 0x22fe4639 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39002 dport 43218] != expected 0xef4950cd # # Exception| cpu 4: rx_hash 0x90633027 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39026 dport 43218] != expected 0xcd61c5f0 # # Exception| cpu 4: rx_hash 0x5a16e85d [saddr 192.0.3.2 daddr 192.0.3.1 sport 39032 dport 43218] != expected 0x45c39107 # # Exception| cpu 4: rx_hash 0xefff0ed5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39048 dport 43218] != expected 0x1c5dfed6 # # Exception| cpu 5: rx_hash 0x4fe8613a [saddr 192.0.3.2 daddr 192.0.3.1 sport 38938 dport 43218] != expected 0x95b2b84b # # Exception| cpu 5: rx_hash 0x5fb1f746 [saddr 192.0.3.2 daddr 192.0.3.1 sport 38960 dport 43218] != expected 0xe8e73db0 # # Exception| cpu 5: rx_hash 0x44a65f0d [saddr 192.0.3.2 daddr 192.0.3.1 sport 38974 dport 43218] != expected 0xcffbe124 # # Exception| cpu 5: rx_hash 0x41014016 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39030 dport 43218] != expected 0x62df4d93 # # Exception| cpu 0: rx_hash 0x40b03a92 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39062 dport 43218] != expected 0xd0ae805a # # Exception| cpu 0: rx_hash 0x2ec4e898 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39078 dport 43218] != expected 0xceb6f34e # # Exception| cpu 0: rx_hash 0x30745fc8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39136 dport 43218] != expected 0x448e836d # # Exception| cpu 0: rx_hash 0x2b63f783 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39150 dport 43218] != expected 0x63925ff9 # # Exception| cpu 0: rx_hash 0x6a80ac8c [saddr 192.0.3.2 daddr 192.0.3.1 sport 39168 dport 43218] != expected 0x6841b485 # # Exception| cpu 0: rx_hash 0xded83080 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39184 dport 43218] != expected 0x83ae169d # # Exception| cpu 0: rx_hash 0xc5cf98cb [saddr 192.0.3.2 daddr 192.0.3.1 sport 39198 dport 43218] != expected 0xa4b2ca09 # # Exception| cpu 5: rx_hash 0x9a9c7494 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39094 dport 43218] != expected 0x25595156 # # Exception| cpu 5: rx_hash 0x489cf1ac [saddr 192.0.3.2 daddr 192.0.3.1 sport 39106 dport 43218] != expected 0xee0442a7 # # Exception| cpu 5: rx_hash 0xfcc46da0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39122 dport 43218] != expected 0x5ebe0bf # # Exception| cpu 5: rx_hash 0xe7d3c5eb [saddr 192.0.3.2 daddr 192.0.3.1 sport 39132 dport 43218] != expected 0x22f73c2b # # Exception| cpu 5: rx_hash 0x26e823a6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39154 dport 43218] != expected 0xf01c31b3 # # Exception| cpu 5: rx_hash 0x61ce92bb [saddr 192.0.3.2 daddr 192.0.3.1 sport 39204 dport 43218] != expected 0x3208edea # # Exception| cpu 0: rx_hash 0x0a1d5faa [saddr 192.0.3.2 daddr 192.0.3.1 sport 39260 dport 43218] != expected 0x81343249 # # Exception| cpu 0: rx_hash 0x167e6777 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39306 dport 43218] != expected 0xdd9e1431 # # Exception| cpu 4: rx_hash 0xa6309ee4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39218 dport 43218] != expected 0x2924d757 # # Exception| cpu 4: rx_hash 0xa5526bed [saddr 192.0.3.2 daddr 192.0.3.1 sport 39234 dport 43218] != expected 0x4dc74cc5 # # Exception| cpu 4: rx_hash 0x17cf1df3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39274 dport 43218] != expected 0x6fefd9f8 # # Exception| cpu 4: rx_hash 0xb88029b4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39284 dport 43218] != expected 0xa31ca774 # # Exception| cpu 4: rx_hash 0x0d69cf3c [saddr 192.0.3.2 daddr 192.0.3.1 sport 39300 dport 43218] != expected 0xfa82c8a5 # # Exception| cpu 4: rx_hash 0xca97c363 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39314 dport 43218] != expected 0xe1aef218 # # Exception| cpu 5: rx_hash 0xbe45c3a6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39244 dport 43218] != expected 0x6adb9051 # # Exception| cpu 5: rx_hash 0xafad2f5e [saddr 192.0.3.2 daddr 192.0.3.1 sport 39302 dport 43218] != expected 0xa5ffd863 # # Exception| cpu 5: rx_hash 0x1bf5b352 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39318 dport 43218] != expected 0x4e107a7b # # Exception| cpu 5: rx_hash 0x00e21b19 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39320 dport 43218] != expected 0x690ca6ef # # Exception| cpu 5: rx_hash 0xd745813a [saddr 192.0.3.2 daddr 192.0.3.1 sport 39332 dport 43218] != expected 0xf7519a9 # # Exception| cpu 5: rx_hash 0x75816158 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39334 dport 43218] != expected 0x5008096f # # Exception| count: pass=0 nohash=0 fail=40 # # Exception| # not ok 1 toeplitz.test.tcp_ipv4 # # Receiver output: # # # # RSS indirection table size: 256 # # # cpu 0: rx_hash 0xf4cae2f8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39462 dport 33568] OK # # # cpu 0: rx_hash 0x9c7bdae0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39470 dport 33568] OK # # # cpu 0: rx_hash 0x3334eea7 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39472 dport 33568] OK # # # cpu 4: rx_hash 0x236d78db [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39450 dport 33568] OK # # # cpu 4: rx_hash 0x9292fbcc [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39490 dport 33568] OK # # # cpu 4: rx_hash 0x26ca67c0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39506 dport 33568] OK # # # cpu 5: rx_hash 0x8ae7a68e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39484 dport 33568] OK # # # cpu 5: rx_hash 0xf7a817f1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39510 dport 33568] OK # # # cpu 0: rx_hash 0x9f192fe9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39518 dport 33568] OK # # # cpu 0: rx_hash 0x82cb6db0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39528 dport 33568] OK # # # cpu 0: rx_hash 0x5e22c9a4 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39536 dport 33568] OK # # # cpu 0: rx_hash 0x8f40b995 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39540 dport 33568] OK # # # cpu 0: rx_hash 0xebcb2f2c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39552 dport 33568] OK # # # cpu 0: rx_hash 0x5f93b320 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39568 dport 33568] OK # # # cpu 0: rx_hash 0x85bffd26 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39600 dport 33568] OK # # # cpu 4: rx_hash 0xe7f1818d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39548 dport 33568] OK # # # cpu 4: rx_hash 0x490fcf4e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39554 dport 33568] OK # # # cpu 4: rx_hash 0x95e66b5a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39578 dport 33568] OK # # # cpu 4: rx_hash 0x93238148 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39586 dport 33568] OK # # # cpu 5: rx_hash 0xee6c3037 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39624 dport 33568] OK # # # cpu 5: rx_hash 0x41230470 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39638 dport 33568] OK # # # cpu 0: rx_hash 0x54dd8d17 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39604 dport 33568] OK # # # cpu 0: rx_hash 0x86dd082f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39616 dport 33568] OK # # # cpu 0: rx_hash 0xf8f04c59 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39642 dport 33568] OK # # # cpu 0: rx_hash 0x29923c68 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39646 dport 33568] OK # # # cpu 0: rx_hash 0x96849e53 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39658 dport 33568] OK # # # cpu 0: rx_hash 0x39cbaa14 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39668 dport 33568] OK # # # cpu 0: rx_hash 0xd767c55c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39684 dport 33568] OK # # # cpu 0: rx_hash 0x1d121d26 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39694 dport 33568] OK # # # cpu 0: rx_hash 0xdc29fb6b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39712 dport 33568] OK # # # cpu 0: rx_hash 0xc73e5320 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39726 dport 33568] OK # # # cpu 4: rx_hash 0x7828f11b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39706 dport 33568] OK # # # cpu 4: rx_hash 0x7b4a0412 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39786 dport 33568] OK # # # cpu 5: rx_hash 0x00c05f7f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39736 dport 33568] OK # # # cpu 5: rx_hash 0x70043a25 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39758 dport 33568] OK # # # cpu 5: rx_hash 0xaced9e31 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39766 dport 33568] OK # # # cpu 0: rx_hash 0xcab58705 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39730 dport 33568] OK # # # cpu 0: rx_hash 0x7366cf2c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39742 dport 33568] OK # # # cpu 0: rx_hash 0xb7fa367a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39768 dport 33568] OK # # # cpu 0: rx_hash 0xc2994c3b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39782 dport 33568] OK # # # cpu 0: rx_hash 0x6c6702f8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39832 dport 33568] OK # # # count: pass=41 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 53484 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 51564 dport 53484] != expected 0x1be2f38e # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 51564 dport 53484] != expected 0x1be2f38e # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 41267 dport 53484] != expected 0x92489775 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 41267 dport 53484] != expected 0x92489775 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 38068 dport 53484] != expected 0x7d0386c5 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 38068 dport 53484] != expected 0x7d0386c5 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 37534 dport 53484] != expected 0x28a6c0a6 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 37534 dport 53484] != expected 0x28a6c0a6 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 54347 dport 53484] != expected 0x1301efe4 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 54347 dport 53484] != expected 0x1301efe4 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 57896 dport 53484] != expected 0xb0643ccf # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 57896 dport 53484] != expected 0xb0643ccf # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 53644 dport 53484] != expected 0x63af0ea1 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 53644 dport 53484] != expected 0x63af0ea1 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 56398 dport 53484] != expected 0x7192994f # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 56398 dport 53484] != expected 0x7192994f # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 40104 dport 53484] != expected 0x9d5a37cb # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 40104 dport 53484] != expected 0x9d5a37cb # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 46742 dport 53484] != expected 0x4423cdce # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 46742 dport 53484] != expected 0x4423cdce # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 35103 dport 53484] != expected 0x30fca2be # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 35103 dport 53484] != expected 0x30fca2be # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 36291 dport 53484] != expected 0x35b6eb9 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 36291 dport 53484] != expected 0x35b6eb9 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 58197 dport 53484] != expected 0x8ca2b0a2 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 58197 dport 53484] != expected 0x8ca2b0a2 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 50814 dport 53484] != expected 0x6ae9a7ad # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 50814 dport 53484] != expected 0x6ae9a7ad # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 59131 dport 53484] != expected 0x1a250dd0 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 59131 dport 53484] != expected 0x1a250dd0 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 42916 dport 53484] != expected 0x2213bb9f # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 42916 dport 53484] != expected 0x2213bb9f # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 45900 dport 53484] != expected 0x19f9634d # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 45900 dport 53484] != expected 0x19f9634d # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 55542 dport 53484] != expected 0x6287e4a1 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 55542 dport 53484] != expected 0x6287e4a1 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 43716 dport 53484] != expected 0xa7d919f8 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 43716 dport 53484] != expected 0xa7d919f8 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 48727 dport 53484] != expected 0xce882fc3 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 48727 dport 53484] != expected 0xce882fc3 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 58033 dport 53484] != expected 0xfd30f29 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 58033 dport 53484] != expected 0xfd30f29 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 47330 dport 53484] != expected 0xd459c2e3 # # Exception| cpu 0: rx_hash 0x89268fec [saddr 192.0.3.2 daddr 192.0.3.1 sport 47330 dport 53484] != expected 0xd459c2e3 # # Exception| count: pass=0 nohash=0 fail=44 # # 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 42529 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56007 dport 42529] != expected 0xe6a4892e # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56007 dport 42529] != expected 0xe6a4892e # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42020 dport 42529] != expected 0x640a650 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42020 dport 42529] != expected 0x640a650 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60885 dport 42529] != expected 0x7760aec2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 60885 dport 42529] != expected 0x7760aec2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44791 dport 42529] != expected 0x28025ba1 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44791 dport 42529] != expected 0x28025ba1 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39056 dport 42529] != expected 0x750ab070 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39056 dport 42529] != expected 0x750ab070 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50719 dport 42529] != expected 0x39dd926c # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50719 dport 42529] != expected 0x39dd926c # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48494 dport 42529] != expected 0x34ba394d # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48494 dport 42529] != expected 0x34ba394d # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59952 dport 42529] != expected 0x820c4be2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59952 dport 42529] != expected 0x820c4be2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56354 dport 42529] != expected 0x488de5ce # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56354 dport 42529] != expected 0x488de5ce # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54563 dport 42529] != expected 0xdd291df3 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54563 dport 42529] != expected 0xdd291df3 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46885 dport 42529] != expected 0x709a7329 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46885 dport 42529] != expected 0x709a7329 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46960 dport 42529] != expected 0x3d3f78d2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46960 dport 42529] != expected 0x3d3f78d2 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46854 dport 42529] != expected 0x4dfb1d88 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46854 dport 42529] != expected 0x4dfb1d88 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51631 dport 42529] != expected 0xa7ccd8f # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51631 dport 42529] != expected 0xa7ccd8f # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59020 dport 42529] != expected 0x7e991108 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59020 dport 42529] != expected 0x7e991108 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41767 dport 42529] != expected 0x813ba9a7 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41767 dport 42529] != expected 0x813ba9a7 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35530 dport 42529] != expected 0xe274f79 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35530 dport 42529] != expected 0xe274f79 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56493 dport 42529] != expected 0xa0989ec1 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56493 dport 42529] != expected 0xa0989ec1 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 55746 dport 42529] != expected 0x4a874fa # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 55746 dport 42529] != expected 0x4a874fa # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46257 dport 42529] != expected 0xd5ccc1b5 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46257 dport 42529] != expected 0xd5ccc1b5 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53884 dport 42529] != expected 0x3acfe122 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53884 dport 42529] != expected 0x3acfe122 # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51728 dport 42529] != expected 0xfafa29aa # # Exception| cpu 5: rx_hash 0x1ebd9570 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51728 dport 42529] != expected 0xfafa29aa # # 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__->