< 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 1800 # selftests: drivers/net/hw: toeplitz.py # # Interface: enp1s0, driver: fbnic # 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 214, 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 205, 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 134, 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 43835 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 43 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x508a8ec2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43636 dport 43835] != expected 0xaaf4e377 # # Exception| cpu 0: rx_hash 0xe51cf3ad [saddr 192.0.3.2 daddr 192.0.3.1 sport 43646 dport 43835] != expected 0x23e14f9 # # Exception| cpu 0: rx_hash 0x9f3d1480 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43648 dport 43835] != expected 0xbae571f8 # # Exception| cpu 4: rx_hash 0x9432eab1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43638 dport 43835] != expected 0x75fc257a # # Exception| cpu 4: rx_hash 0xa592c48d [saddr 192.0.3.2 daddr 192.0.3.1 sport 43686 dport 43835] != expected 0x57995893 # # Exception| cpu 4: rx_hash 0x2893b56c [saddr 192.0.3.2 daddr 192.0.3.1 sport 43708 dport 43835] != expected 0x44b2b7dc # # Exception| cpu 5: rx_hash 0xc8f75bd6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43662 dport 43835] != expected 0xfdabe570 # # Exception| cpu 5: rx_hash 0x34d8332b [saddr 192.0.3.2 daddr 192.0.3.1 sport 43676 dport 43835] != expected 0x99423bbc # # Exception| cpu 5: rx_hash 0x1004b9e2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43692 dport 43835] != expected 0xff53af1d # # Exception| cpu 5: rx_hash 0x7f59fa3a [saddr 192.0.3.2 daddr 192.0.3.1 sport 43698 dport 43835] != expected 0x3fc2354 # # Exception| cpu 5: rx_hash 0x9118d7a3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43712 dport 43835] != expected 0x541d37c8 # # Exception| cpu 0: rx_hash 0xc6d298f5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43726 dport 43835] != expected 0x1353a340 # # Exception| cpu 0: rx_hash 0x5f1ee1aa [saddr 192.0.3.2 daddr 192.0.3.1 sport 43778 dport 43835] != expected 0xa92f8561 # # Exception| cpu 0: rx_hash 0x16a7f438 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43802 dport 43835] != expected 0x650cac23 # # Exception| cpu 0: rx_hash 0x87ed039e [saddr 192.0.3.2 daddr 192.0.3.1 sport 43808 dport 43835] != expected 0xabd7cf0c # # Exception| cpu 0: rx_hash 0x65b131a7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43812 dport 43835] != expected 0x4453ac0a # # Exception| cpu 4: rx_hash 0x1c19a642 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43738 dport 43835] != expected 0x4736d887 # # Exception| cpu 4: rx_hash 0xe20e123c [saddr 192.0.3.2 daddr 192.0.3.1 sport 43774 dport 43835] != expected 0x754237e1 # # Exception| cpu 4: rx_hash 0x08d4aefc [saddr 192.0.3.2 daddr 192.0.3.1 sport 43788 dport 43835] != expected 0xee6111e9 # # Exception| cpu 5: rx_hash 0xd8a1c231 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43736 dport 43835] != expected 0x983e1e8a # # Exception| cpu 5: rx_hash 0x38c52c8b [saddr 192.0.3.2 daddr 192.0.3.1 sport 43754 dport 43835] != expected 0x21274c26 # # Exception| cpu 5: rx_hash 0xb5c45d6a [saddr 192.0.3.2 daddr 192.0.3.1 sport 43760 dport 43835] != expected 0x320ca369 # # Exception| cpu 5: rx_hash 0x717c3919 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43762 dport 43835] != expected 0xed046564 # # Exception| cpu 5: rx_hash 0x327b7ef1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43818 dport 43835] != expected 0x31d3882 # # Exception| cpu 0: rx_hash 0x20153b95 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43850 dport 43835] != expected 0x3015f2d2 # # Exception| cpu 0: rx_hash 0xad144a74 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43856 dport 43835] != expected 0x233e1d9d # # Exception| cpu 0: rx_hash 0xc071d52f [saddr 192.0.3.2 daddr 192.0.3.1 sport 43896 dport 43835] != expected 0x890ca07e # # Exception| cpu 0: rx_hash 0xe6958365 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43902 dport 43835] != expected 0xb9800575 # # Exception| cpu 0: rx_hash 0x82c73e8c [saddr 192.0.3.2 daddr 192.0.3.1 sport 43926 dport 43835] != expected 0x8a36ddbe # # Exception| cpu 4: rx_hash 0xce54160c [saddr 192.0.3.2 daddr 192.0.3.1 sport 43832 dport 43835] != expected 0x67f4e64e # # Exception| cpu 4: rx_hash 0x3e666151 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43868 dport 43835] != expected 0xbb784f18 # # Exception| cpu 4: rx_hash 0x3c5ebdd2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43882 dport 43835] != expected 0xede57eb2 # # Exception| cpu 4: rx_hash 0xed9a7d54 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43912 dport 43835] != expected 0x769951f7 # # Exception| cpu 4: rx_hash 0x467f5aff [saddr 192.0.3.2 daddr 192.0.3.1 sport 43924 dport 43835] != expected 0x553e1bb3 # # Exception| cpu 4: rx_hash 0x80ffe20f [saddr 192.0.3.2 daddr 192.0.3.1 sport 43936 dport 43835] != expected 0xdcabec14 # # Exception| cpu 4: rx_hash 0x35699f60 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43946 dport 43835] != expected 0x74611b9a # # Exception| cpu 5: rx_hash 0xe8b04046 [saddr 192.0.3.2 daddr 192.0.3.1 sport 43838 dport 43835] != expected 0x57784345 # # Exception| cpu 5: rx_hash 0xde028feb [saddr 192.0.3.2 daddr 192.0.3.1 sport 43886 dport 43835] != expected 0x2611db4 # # Exception| cpu 0: rx_hash 0x9e8cb8cb [saddr 192.0.3.2 daddr 192.0.3.1 sport 43958 dport 43835] != expected 0x57c651de # # Exception| cpu 0: rx_hash 0x4a62455f [saddr 192.0.3.2 daddr 192.0.3.1 sport 44002 dport 43835] != expected 0xed5b6c29 # # Exception| cpu 0: rx_hash 0x72f549d1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44018 dport 43835] != expected 0x56ba74e8 # # Exception| cpu 0: rx_hash 0x54111f9b [saddr 192.0.3.2 daddr 192.0.3.1 sport 44020 dport 43835] != expected 0x6636d1e3 # # Exception| cpu 0: rx_hash 0x877a4b83 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44054 dport 43835] != expected 0xb5c4638f # # Exception| count: pass=0 nohash=0 fail=43 # # Exception| # not ok 1 toeplitz.test.tcp_ipv4 # # Receiver output: # # # # RSS indirection table size: 256 # # # cpu 4: rx_hash 0xb204f1cf [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38370 dport 42419] OK # # # cpu 4: rx_hash 0xa5359d96 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38402 dport 42419] OK # # # cpu 4: rx_hash 0xca68de4e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38428 dport 42419] OK # # # cpu 5: rx_hash 0x94e0a785 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38372 dport 42419] OK # # # cpu 5: rx_hash 0xc32ae8d3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38378 dport 42419] OK # # # cpu 5: rx_hash 0x5b2229e8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38438 dport 42419] OK # # # cpu 5: rx_hash 0xc85002cd [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38442 dport 42419] OK # # # cpu 0: rx_hash 0xc1123450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38364 dport 42419] OK # # # cpu 0: rx_hash 0x8a93fd41 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38386 dport 42419] OK # # # cpu 0: rx_hash 0x591af56b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38416 dport 42419] OK # # # cpu 0: rx_hash 0xb97e1bd1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38434 dport 42419] OK # # # cpu 0: rx_hash 0x4551732c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38448 dport 42419] OK # # # cpu 4: rx_hash 0x347f6a30 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38456 dport 42419] OK # # # cpu 4: rx_hash 0xe2a94b27 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38490 dport 42419] OK # # # cpu 4: rx_hash 0xa9288236 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38516 dport 42419] OK # # # cpu 4: rx_hash 0xd8069b2a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38524 dport 42419] OK # # # cpu 5: rx_hash 0xf0c70e43 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38458 dport 42419] OK # # # cpu 5: rx_hash 0xab105eb5 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38466 dport 42419] OK # # # cpu 5: rx_hash 0x91bf8eb8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38500 dport 42419] OK # # # cpu 0: rx_hash 0x494c6c8c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38470 dport 42419] OK # # # cpu 0: rx_hash 0xb5630471 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38484 dport 42419] OK # # # cpu 0: rx_hash 0x84c32a4d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38532 dport 42419] OK # # # cpu 0: rx_hash 0x9ab07089 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38546 dport 42419] OK # # # cpu 0: rx_hash 0x2f260de6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38552 dport 42419] OK # # # cpu 4: rx_hash 0xf7d5efd2 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38586 dport 42419] OK # # # cpu 4: rx_hash 0x1994c24b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38600 dport 42419] OK # # # cpu 4: rx_hash 0xb0493963 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38626 dport 42419] OK # # # cpu 4: rx_hash 0x05df440c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38632 dport 42419] OK # # # cpu 4: rx_hash 0x6204892d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38656 dport 42419] OK # # # cpu 5: rx_hash 0xbe6cfa40 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38562 dport 42419] OK # # # cpu 5: rx_hash 0x502dd7d9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38608 dport 42419] OK # # # cpu 5: rx_hash 0x74f15d10 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38624 dport 42419] OK # # # cpu 0: rx_hash 0x86fbf6ce [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38578 dport 42419] OK # # # cpu 0: rx_hash 0xe5bbaab6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38618 dport 42419] OK # # # cpu 0: rx_hash 0xae3a63a7 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38644 dport 42419] OK # # # cpu 0: rx_hash 0x8058bb14 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38660 dport 42419] OK # # # cpu 0: rx_hash 0xf176a208 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38668 dport 42419] OK # # # cpu 5: rx_hash 0xb8cfb79a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38676 dport 42419] OK # # # cpu 5: rx_hash 0xbaf76b19 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38690 dport 42419] OK # # # cpu 5: rx_hash 0x82606797 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38706 dport 42419] OK # # # cpu 5: rx_hash 0xd5aa28c1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38716 dport 42419] OK # # # cpu 5: rx_hash 0x9236fe70 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38756 dport 42419] 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 214, 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 205, 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 134, 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 45207 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 42 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 57966 dport 45207] != expected 0x23d86754 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 57966 dport 45207] != expected 0x23d86754 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 33939 dport 45207] != expected 0x1619cc2d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 33939 dport 45207] != expected 0x1619cc2d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49594 dport 45207] != expected 0x1d85907d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49594 dport 45207] != expected 0x1d85907d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44164 dport 45207] != expected 0x61cfcf40 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 44164 dport 45207] != expected 0x61cfcf40 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46855 dport 45207] != expected 0xed079c2c # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46855 dport 45207] != expected 0xed079c2c # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45366 dport 45207] != expected 0xc6370832 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45366 dport 45207] != expected 0xc6370832 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58456 dport 45207] != expected 0x8675da5b # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 58456 dport 45207] != expected 0x8675da5b # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37217 dport 45207] != expected 0x86e8f5e # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37217 dport 45207] != expected 0x86e8f5e # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 55475 dport 45207] != expected 0x13241f41 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 55475 dport 45207] != expected 0x13241f41 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34297 dport 45207] != expected 0x3665e07f # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34297 dport 45207] != expected 0x3665e07f # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59279 dport 45207] != expected 0xccec97e9 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 59279 dport 45207] != expected 0xccec97e9 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45540 dport 45207] != expected 0x3b5ab3d6 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 45540 dport 45207] != expected 0x3b5ab3d6 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34829 dport 45207] != expected 0x6452252e # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 34829 dport 45207] != expected 0x6452252e # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 41055 dport 45207] != expected 0xace98f6f # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 41055 dport 45207] != expected 0xace98f6f # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 52600 dport 45207] != expected 0xa291750a # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 52600 dport 45207] != expected 0xa291750a # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 32924 dport 45207] != expected 0x41a950dc # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 32924 dport 45207] != expected 0x41a950dc # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37432 dport 45207] != expected 0x72c5757c # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 37432 dport 45207] != expected 0x72c5757c # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46912 dport 45207] != expected 0x8d62f30d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 46912 dport 45207] != expected 0x8d62f30d # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 40454 dport 45207] != expected 0xaa023307 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 40454 dport 45207] != expected 0xaa023307 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49396 dport 45207] != expected 0xf8d5349 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49396 dport 45207] != expected 0xf8d5349 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49590 dport 45207] != expected 0x85c3c2f8 # # Exception| cpu 0: rx_hash 0xa11395a1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 49590 dport 45207] != expected 0x85c3c2f8 # # Exception| count: pass=0 nohash=0 fail=42 # # 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 214, 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 205, 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 134, 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 57840 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 42 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51382 dport 57840] != expected 0x8381501d # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51382 dport 57840] != expected 0x8381501d # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47024 dport 57840] != expected 0x37914599 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47024 dport 57840] != expected 0x37914599 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57423 dport 57840] != expected 0xb6594c03 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57423 dport 57840] != expected 0xb6594c03 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33805 dport 57840] != expected 0xac34d924 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33805 dport 57840] != expected 0xac34d924 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49717 dport 57840] != expected 0x48ee8b64 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49717 dport 57840] != expected 0x48ee8b64 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40393 dport 57840] != expected 0x49f0072 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40393 dport 57840] != expected 0x49f0072 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46617 dport 57840] != expected 0xd71f837d # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46617 dport 57840] != expected 0xd71f837d # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35549 dport 57840] != expected 0x1cc33d57 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35549 dport 57840] != expected 0x1cc33d57 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44689 dport 57840] != expected 0xe16ac2e5 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44689 dport 57840] != expected 0xe16ac2e5 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36787 dport 57840] != expected 0x5a0c1b9f # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36787 dport 57840] != expected 0x5a0c1b9f # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46472 dport 57840] != expected 0x63a76e28 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 46472 dport 57840] != expected 0x63a76e28 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41439 dport 57840] != expected 0x3a5bf417 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41439 dport 57840] != expected 0x3a5bf417 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44217 dport 57840] != expected 0x8dcbe5da # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44217 dport 57840] != expected 0x8dcbe5da # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51110 dport 57840] != expected 0x39c8e614 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51110 dport 57840] != expected 0x39c8e614 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50852 dport 57840] != expected 0xfef9f2af # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50852 dport 57840] != expected 0xfef9f2af # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56691 dport 57840] != expected 0x22c93386 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56691 dport 57840] != expected 0x22c93386 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44397 dport 57840] != expected 0x5dbe8917 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44397 dport 57840] != expected 0x5dbe8917 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35810 dport 57840] != expected 0xe52c40e6 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35810 dport 57840] != expected 0xe52c40e6 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 34346 dport 57840] != expected 0x1e2f79ab # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 34346 dport 57840] != expected 0x1e2f79ab # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56918 dport 57840] != expected 0x57e387b2 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56918 dport 57840] != expected 0x57e387b2 # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38424 dport 57840] != expected 0x3e73001d # # Exception| cpu 0: rx_hash 0x4ac46450 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38424 dport 57840] != expected 0x3e73001d # # Exception| count: pass=0 nohash=0 fail=42 # # 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 203, 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 88, 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 49, 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 203, 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 88, 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 49, 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 203, 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 88, 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 49, 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 203, 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 88, 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 49, 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 208, 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 101, 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 88, 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 49, 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 208, 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 101, 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 88, 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 49, 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 208, 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 101, 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 88, 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 49, 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 208, 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 101, 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 88, 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 49, 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__->