< 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 39121 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 40 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x2e6f3629 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50558 dport 39121] != expected 0xf6253cd8 # # Exception| cpu 0: rx_hash 0xcf602302 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50582 dport 39121] != expected 0xb5e20e3c # # Exception| cpu 0: rx_hash 0x87f29a2c [saddr 192.0.3.2 daddr 192.0.3.1 sport 50584 dport 39121] != expected 0xe5a8d382 # # Exception| cpu 0: rx_hash 0xef152b3b [saddr 192.0.3.2 daddr 192.0.3.1 sport 50608 dport 39121] != expected 0x92dbab72 # # Exception| cpu 0: rx_hash 0x101f86fb [saddr 192.0.3.2 daddr 192.0.3.1 sport 50626 dport 39121] != expected 0x83dc8c3b # # Exception| cpu 0: rx_hash 0x2adc99a7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50642 dport 39121] != expected 0xe0bd43a4 # # Exception| cpu 4: rx_hash 0x14ac2975 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50542 dport 39121] != expected 0x9544f347 # # Exception| cpu 4: rx_hash 0x802502e7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50574 dport 39121] != expected 0x10405e9c # # Exception| cpu 4: rx_hash 0xa0500ade [saddr 192.0.3.2 daddr 192.0.3.1 sport 50600 dport 39121] != expected 0x3779fbd2 # # Exception| cpu 4: rx_hash 0x588d3fd5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50636 dport 39121] != expected 0xd3965185 # # Exception| cpu 4: rx_hash 0xb456da6c [saddr 192.0.3.2 daddr 192.0.3.1 sport 50654 dport 39121] != expected 0xabf9e2e4 # # Exception| cpu 5: rx_hash 0xd5d63467 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50592 dport 39121] != expected 0xf1ba64ed # # Exception| cpu 5: rx_hash 0x9a931582 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50616 dport 39121] != expected 0x5418344d # # Exception| cpu 5: rx_hash 0x0d7e0955 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50658 dport 39121] != expected 0x326c6bf4 # # Exception| cpu 0: rx_hash 0x306a8ec2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50660 dport 39121] != expected 0xa4e52975 # # Exception| cpu 0: rx_hash 0xe1a5ecec [saddr 192.0.3.2 daddr 192.0.3.1 sport 50672 dport 39121] != expected 0x4a03d895 # # Exception| cpu 0: rx_hash 0x2a4269e6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50710 dport 39121] != expected 0x94a3254a # # Exception| cpu 0: rx_hash 0x7866c7ad [saddr 192.0.3.2 daddr 192.0.3.1 sport 50734 dport 39121] != expected 0x80b19225 # # Exception| cpu 4: rx_hash 0xe6727427 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50662 dport 39121] != expected 0xbfeb558b # # Exception| cpu 4: rx_hash 0x108176ba [saddr 192.0.3.2 daddr 192.0.3.1 sport 50694 dport 39121] != expected 0xf7c2ead5 # # Exception| cpu 4: rx_hash 0x65074803 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50702 dport 39121] != expected 0x310175ea # # Exception| cpu 4: rx_hash 0x89dcadba [saddr 192.0.3.2 daddr 192.0.3.1 sport 50716 dport 39121] != expected 0x496ec68b # # Exception| cpu 4: rx_hash 0x7fb15f66 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50744 dport 39121] != expected 0x75591f3b # # Exception| cpu 5: rx_hash 0x9423d255 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50680 dport 39121] != expected 0x8cc047aa # # Exception| cpu 5: rx_hash 0xdbf803f1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50724 dport 39121] != expected 0x5d7c71e4 # # Exception| cpu 5: rx_hash 0x232536fa [saddr 192.0.3.2 daddr 192.0.3.1 sport 50752 dport 39121] != expected 0xb993dbb3 # # Exception| cpu 5: rx_hash 0x19e629a6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50768 dport 39121] != expected 0xdaf2142c # # Exception| cpu 0: rx_hash 0x0487a608 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50800 dport 39121] != expected 0x6b42f3e3 # # Exception| cpu 0: rx_hash 0x4c151f26 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50814 dport 39121] != expected 0x3b082e5d # # Exception| cpu 0: rx_hash 0xe588b323 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50840 dport 39121] != expected 0x2885c107 # # Exception| cpu 0: rx_hash 0x2ef1c668 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50874 dport 39121] != expected 0x823b5a36 # # Exception| cpu 0: rx_hash 0x07e3914d [saddr 192.0.3.2 daddr 192.0.3.1 sport 50890 dport 39121] != expected 0x88320181 # # Exception| cpu 0: rx_hash 0xa3aacdda [saddr 192.0.3.2 daddr 192.0.3.1 sport 50902 dport 39121] != expected 0xa0176f5e # # Exception| cpu 4: rx_hash 0x03503ec3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50790 dport 39121] != expected 0x9eaa7efd # # Exception| cpu 4: rx_hash 0xa0cefa9f [saddr 192.0.3.2 daddr 192.0.3.1 sport 50796 dport 39121] != expected 0x43679d3c # # Exception| cpu 4: rx_hash 0x8ab89aff [saddr 192.0.3.2 daddr 192.0.3.1 sport 50854 dport 39121] != expected 0xaa1e34e9 # # Exception| cpu 5: rx_hash 0xba78edfa [saddr 192.0.3.2 daddr 192.0.3.1 sport 50778 dport 39121] != expected 0x73ff7ed # # Exception| cpu 5: rx_hash 0x0953569a [saddr 192.0.3.2 daddr 192.0.3.1 sport 50826 dport 39121] != expected 0x50ea7266 # # Exception| cpu 5: rx_hash 0x8d6f0234 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50864 dport 39121] != expected 0x5ff6b9f7 # # Exception| cpu 5: rx_hash 0x66637f46 [saddr 192.0.3.2 daddr 192.0.3.1 sport 50868 dport 39121] != expected 0xd2718788 # # 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 0xc8507183 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45106 dport 50502] OK # # # cpu 4: rx_hash 0x87155066 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45098 dport 50502] OK # # # cpu 4: rx_hash 0xc1372e9f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45156 dport 50502] OK # # # cpu 4: rx_hash 0xb36688ed [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45178 dport 50502] OK # # # cpu 4: rx_hash 0xcb3446c6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45192 dport 50502] OK # # # cpu 5: rx_hash 0xf2936edf [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45090 dport 50502] OK # # # cpu 5: rx_hash 0xbdd64f3a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45114 dport 50502] OK # # # cpu 5: rx_hash 0xdc56a131 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45124 dport 50502] OK # # # cpu 5: rx_hash 0x7fc8656d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45134 dport 50502] OK # # # cpu 5: rx_hash 0xae070743 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45146 dport 50502] OK # # # cpu 5: rx_hash 0x55be050d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45188 dport 50502] OK # # # cpu 0: rx_hash 0xb4b11026 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45164 dport 50502] OK # # # cpu 0: rx_hash 0x84716723 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45200 dport 50502] OK # # # cpu 0: rx_hash 0xd655c968 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45224 dport 50502] OK # # # cpu 0: rx_hash 0x5b0ec2da [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45252 dport 50502] OK # # # cpu 0: rx_hash 0xc5848111 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45256 dport 50502] OK # # # cpu 0: rx_hash 0x61cddd86 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45268 dport 50502] OK # # # cpu 0: rx_hash 0x7b7bcae3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45282 dport 50502] OK # # # cpu 4: rx_hash 0x721c95ff [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45236 dport 50502] OK # # # cpu 5: rx_hash 0x1afb24e8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45212 dport 50502] OK # # # cpu 5: rx_hash 0x7cac5228 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45300 dport 50502] OK # # # cpu 5: rx_hash 0xaab4a8cd [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45302 dport 50502] OK # # # cpu 5: rx_hash 0x914a5713 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45316 dport 50502] OK # # # cpu 0: rx_hash 0x466f4d74 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45284 dport 50502] OK # # # cpu 0: rx_hash 0xe4cc69aa [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45324 dport 50502] OK # # # cpu 0: rx_hash 0x7d91b2aa [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45334 dport 50502] OK # # # cpu 0: rx_hash 0x74f6edb6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45376 dport 50502] OK # # # cpu 4: rx_hash 0xb13f5f2a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45346 dport 50502] OK # # # cpu 4: rx_hash 0x2fb51ce1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45358 dport 50502] OK # # # cpu 4: rx_hash 0xd76829ea [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45386 dport 50502] OK # # # cpu 4: rx_hash 0x4e35f2ea [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45392 dport 50502] OK # # # cpu 4: rx_hash 0xb8580036 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45428 dport 50502] OK # # # cpu 4: rx_hash 0xf0cab918 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45434 dport 50502] OK # # # cpu 4: rx_hash 0xfd1e498a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45440 dport 50502] OK # # # cpu 5: rx_hash 0xc36ef958 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45372 dport 50502] OK # # # cpu 5: rx_hash 0x9ffa90c4 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45380 dport 50502] OK # # # cpu 5: rx_hash 0x06a74bc4 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45406 dport 50502] OK # # # cpu 5: rx_hash 0xf71d21d3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45420 dport 50502] OK # # # cpu 5: rx_hash 0xc7dd56d6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45456 dport 50502] OK # # # cpu 0: rx_hash 0xedab36b6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45402 dport 50502] OK # # # cpu 0: rx_hash 0x5957151d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45468 dport 50502] OK # # # cpu 0: rx_hash 0xe7a85eef [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45494 dport 50502] OK # # # count: pass=42 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 51515 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 51879 dport 51515] != expected 0x44168717 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 51879 dport 51515] != expected 0x44168717 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 56135 dport 51515] != expected 0x404757fa # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 56135 dport 51515] != expected 0x404757fa # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44720 dport 51515] != expected 0x1c061c5e # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44720 dport 51515] != expected 0x1c061c5e # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60013 dport 51515] != expected 0xd6de9e25 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60013 dport 51515] != expected 0xd6de9e25 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53434 dport 51515] != expected 0xf891bc19 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53434 dport 51515] != expected 0xf891bc19 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60943 dport 51515] != expected 0x7935f1cd # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60943 dport 51515] != expected 0x7935f1cd # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 33090 dport 51515] != expected 0x64bae427 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 33090 dport 51515] != expected 0x64bae427 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 57829 dport 51515] != expected 0xdf9ae9f3 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 57829 dport 51515] != expected 0xdf9ae9f3 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58257 dport 51515] != expected 0xe30f8247 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58257 dport 51515] != expected 0xe30f8247 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53780 dport 51515] != expected 0x4e1cb1e7 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 53780 dport 51515] != expected 0x4e1cb1e7 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 56201 dport 51515] != expected 0x24b9c050 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 56201 dport 51515] != expected 0x24b9c050 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58024 dport 51515] != expected 0xb737d02c # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58024 dport 51515] != expected 0xb737d02c # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 42845 dport 51515] != expected 0x7caa365e # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 42845 dport 51515] != expected 0x7caa365e # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59098 dport 51515] != expected 0x7bbd705b # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59098 dport 51515] != expected 0x7bbd705b # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60308 dport 51515] != expected 0xb652865a # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60308 dport 51515] != expected 0xb652865a # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49683 dport 51515] != expected 0x19ea6b54 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49683 dport 51515] != expected 0x19ea6b54 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46268 dport 51515] != expected 0xf5fc1132 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46268 dport 51515] != expected 0xf5fc1132 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 40628 dport 51515] != expected 0x1d53f309 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 40628 dport 51515] != expected 0x1d53f309 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37814 dport 51515] != expected 0x4320d7af # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37814 dport 51515] != expected 0x4320d7af # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60764 dport 51515] != expected 0x22b3da33 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60764 dport 51515] != expected 0x22b3da33 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39734 dport 51515] != expected 0x418a2dc3 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 39734 dport 51515] != expected 0x418a2dc3 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46200 dport 51515] != expected 0x4ccf6559 # # Exception| cpu 4: rx_hash 0xd6c82506 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46200 dport 51515] != expected 0x4ccf6559 # # 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 38194 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44117 dport 38194] != expected 0xcf8f85d9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44117 dport 38194] != expected 0xcf8f85d9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50761 dport 38194] != expected 0xf17696c2 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50761 dport 38194] != expected 0xf17696c2 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52016 dport 38194] != expected 0xdae1b123 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52016 dport 38194] != expected 0xdae1b123 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50369 dport 38194] != expected 0x227ed36a # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50369 dport 38194] != expected 0x227ed36a # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51022 dport 38194] != expected 0x23ffd56b # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51022 dport 38194] != expected 0x23ffd56b # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42127 dport 38194] != expected 0x574f7cdb # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42127 dport 38194] != expected 0x574f7cdb # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46252 dport 38194] != expected 0x743d3f44 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46252 dport 38194] != expected 0x743d3f44 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 34429 dport 38194] != expected 0x2cd6cb85 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 34429 dport 38194] != expected 0x2cd6cb85 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35629 dport 38194] != expected 0xc397a8b8 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35629 dport 38194] != expected 0xc397a8b8 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46077 dport 38194] != expected 0x9eee3776 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46077 dport 38194] != expected 0x9eee3776 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45528 dport 38194] != expected 0xe564289b # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45528 dport 38194] != expected 0xe564289b # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35918 dport 38194] != expected 0xd8feca9d # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35918 dport 38194] != expected 0xd8feca9d # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45112 dport 38194] != expected 0x324132fc # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45112 dport 38194] != expected 0x324132fc # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39439 dport 38194] != expected 0xf782f19 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39439 dport 38194] != expected 0xf782f19 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33988 dport 38194] != expected 0x744deb14 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33988 dport 38194] != expected 0x744deb14 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49193 dport 38194] != expected 0xd39aca3c # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49193 dport 38194] != expected 0xd39aca3c # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41061 dport 38194] != expected 0x70b39f68 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41061 dport 38194] != expected 0x70b39f68 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50978 dport 38194] != expected 0xaea4ded9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50978 dport 38194] != expected 0xaea4ded9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54573 dport 38194] != expected 0x2feb49d9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54573 dport 38194] != expected 0x2feb49d9 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50114 dport 38194] != expected 0x2ac6f936 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50114 dport 38194] != expected 0x2ac6f936 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 55065 dport 38194] != expected 0xc293bca3 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 55065 dport 38194] != expected 0xc293bca3 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54904 dport 38194] != expected 0x3edf30e4 # # Exception| cpu 5: rx_hash 0x42261437 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 54904 dport 38194] != expected 0x3edf30e4 # # 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__->