< 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 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, 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 41092 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 43 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x93125b3e [saddr 192.0.3.2 daddr 192.0.3.1 sport 35298 dport 41092] != expected 0xae27af45 # # Exception| cpu 0: rx_hash 0x58d70826 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35336 dport 41092] != expected 0x302716f0 # # Exception| cpu 0: rx_hash 0xda7147c8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35354 dport 41092] != expected 0xa700f6da # # Exception| cpu 0: rx_hash 0xf7b726ef [saddr 192.0.3.2 daddr 192.0.3.1 sport 35370 dport 41092] != expected 0x3f86bdb0 # # Exception| cpu 4: rx_hash 0xb779c442 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35346 dport 41092] != expected 0x79081243 # # Exception| cpu 5: rx_hash 0x11b414d0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35312 dport 41092] != expected 0x39004f6f # # Exception| cpu 5: rx_hash 0xa6ad904f [saddr 192.0.3.2 daddr 192.0.3.1 sport 35324 dport 41092] != expected 0x5b1962c5 # # Exception| cpu 5: rx_hash 0xecf5060d [saddr 192.0.3.2 daddr 192.0.3.1 sport 35338 dport 41092] != expected 0x48048496 # # Exception| cpu 5: rx_hash 0x1819ea8b [saddr 192.0.3.2 daddr 192.0.3.1 sport 35376 dport 41092] != expected 0x76a9b903 # # Exception| cpu 0: rx_hash 0x387e9bdd [saddr 192.0.3.2 daddr 192.0.3.1 sport 35392 dport 41092] != expected 0xd5eeeefa # # Exception| cpu 0: rx_hash 0x60c9d326 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35414 dport 41092] != expected 0xfed8c7e3 # # Exception| cpu 0: rx_hash 0xfa16369e [saddr 192.0.3.2 daddr 192.0.3.1 sport 35434 dport 41092] != expected 0x447a123 # # Exception| cpu 0: rx_hash 0xa19af4d1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35442 dport 41092] != expected 0x354b37f6 # # Exception| cpu 4: rx_hash 0x55761857 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35400 dport 41092] != expected 0xbe60a63 # # Exception| cpu 4: rx_hash 0x8f671f42 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35404 dport 41092] != expected 0xb7f7c350 # # Exception| cpu 4: rx_hash 0xe91e0481 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35460 dport 41092] != expected 0xcfdeb513 # # Exception| cpu 5: rx_hash 0x0dc150ac [saddr 192.0.3.2 daddr 192.0.3.1 sport 35422 dport 41092] != expected 0x20d0237a # # Exception| cpu 5: rx_hash 0x7b8bf3c4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35446 dport 41092] != expected 0x895afec5 # # Exception| cpu 0: rx_hash 0xdf9a4544 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35476 dport 41092] != expected 0x20dac75f # # Exception| cpu 0: rx_hash 0xf167aed7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35498 dport 41092] != expected 0xa26633f9 # # Exception| cpu 0: rx_hash 0xa9d0e62c [saddr 192.0.3.2 daddr 192.0.3.1 sport 35516 dport 41092] != expected 0x89501ae0 # # Exception| cpu 4: rx_hash 0x058b4251 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35472 dport 41092] != expected 0x9ccb0e6c # # Exception| cpu 4: rx_hash 0x73c1e139 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35512 dport 41092] != expected 0x3541d3d3 # # Exception| cpu 4: rx_hash 0xe4bf14f0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35524 dport 41092] != expected 0xf41fa980 # # Exception| cpu 5: rx_hash 0x06b0c8e5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35486 dport 41092] != expected 0x86f1b1a0 # # Exception| cpu 5: rx_hash 0xc4d865a6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35508 dport 41092] != expected 0x5758fe79 # # Exception| cpu 0: rx_hash 0x89b7977a [saddr 192.0.3.2 daddr 192.0.3.1 sport 35532 dport 41092] != expected 0x2a174d19 # # Exception| cpu 0: rx_hash 0x92f5b798 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35564 dport 41092] != expected 0x5d95743f # # Exception| cpu 0: rx_hash 0xa74a7ce9 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35570 dport 41092] != expected 0xa8abb9bf # # Exception| cpu 0: rx_hash 0xc97975d7 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35572 dport 41092] != expected 0x6c99e2ea # # Exception| cpu 0: rx_hash 0x36b7cfb0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35584 dport 41092] != expected 0xa0dfb54d # # Exception| cpu 0: rx_hash 0xd91903d4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35610 dport 41092] != expected 0xe9f0b1fe # # Exception| cpu 4: rx_hash 0xd100df81 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35546 dport 41092] != expected 0x1216400 # # Exception| cpu 4: rx_hash 0x4bdf3a39 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35558 dport 41092] != expected 0xfbbe02c0 # # Exception| cpu 4: rx_hash 0x48e4b08d [saddr 192.0.3.2 daddr 192.0.3.1 sport 35560 dport 41092] != expected 0xe184bd0c # # Exception| cpu 4: rx_hash 0x00338e75 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35600 dport 41092] != expected 0x4fdbc701 # # Exception| cpu 0: rx_hash 0xf7e4e847 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35620 dport 41092] != expected 0x6b4c4558 # # Exception| cpu 0: rx_hash 0xac682a08 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35644 dport 41092] != expected 0x5a40d38d # # Exception| cpu 0: rx_hash 0x184a2423 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35646 dport 41092] != expected 0x226341eb # # Exception| cpu 4: rx_hash 0xf4df62f3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35626 dport 41092] != expected 0x7176fa94 # # Exception| cpu 4: rx_hash 0xc25b2336 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35642 dport 41092] != expected 0x9e7288d8 # # Exception| cpu 4: rx_hash 0x561e5c4b [saddr 192.0.3.2 daddr 192.0.3.1 sport 35656 dport 41092] != expected 0x45164d47 # # Exception| cpu 4: rx_hash 0xe23c5260 [saddr 192.0.3.2 daddr 192.0.3.1 sport 35658 dport 41092] != expected 0x3d35df21 # # 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 0x1a29217e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37356 dport 47134] OK # # # cpu 5: rx_hash 0x5ae7c3d3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37332 dport 47134] OK # # # cpu 5: rx_hash 0x429e6985 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37370 dport 47134] OK # # # cpu 5: rx_hash 0x2cad60bb [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37372 dport 47134] OK # # # cpu 5: rx_hash 0x08c6ffc7 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37388 dport 47134] OK # # # cpu 5: rx_hash 0x534a3d88 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37396 dport 47134] OK # # # cpu 0: rx_hash 0x37ef4059 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37340 dport 47134] OK # # # cpu 0: rx_hash 0x3d7934b6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37394 dport 47134] OK # # # cpu 0: rx_hash 0x3e42be02 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37404 dport 47134] OK # # # cpu 0: rx_hash 0xa7a6d10e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37422 dport 47134] OK # # # cpu 4: rx_hash 0xc995d830 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37416 dport 47134] OK # # # cpu 4: rx_hash 0x1e25cf54 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37484 dport 47134] OK # # # cpu 5: rx_hash 0x6b54e688 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37450 dport 47134] OK # # # cpu 5: rx_hash 0x33e3ae73 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37468 dport 47134] OK # # # cpu 5: rx_hash 0x87c1a058 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37470 dport 47134] OK # # # cpu 0: rx_hash 0x25009ee0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37436 dport 47134] OK # # # cpu 0: rx_hash 0x0567efb6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37452 dport 47134] OK # # # cpu 4: rx_hash 0x9c8380ba [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37502 dport 47134] OK # # # cpu 4: rx_hash 0x0e1677ff [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37516 dport 47134] OK # # # cpu 5: rx_hash 0xaa07c17f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37486 dport 47134] OK # # # cpu 5: rx_hash 0xd73cfa5e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37510 dport 47134] OK # # # cpu 5: rx_hash 0x60257ec1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37514 dport 47134] OK # # # cpu 5: rx_hash 0x3892363a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37532 dport 47134] OK # # # cpu 5: rx_hash 0xa24dd382 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37536 dport 47134] OK # # # cpu 0: rx_hash 0xe283312f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37528 dport 47134] OK # # # cpu 4: rx_hash 0xa1765936 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37550 dport 47134] OK # # # cpu 4: rx_hash 0x5b002f75 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37594 dport 47134] OK # # # cpu 4: rx_hash 0x81112860 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37598 dport 47134] OK # # # cpu 5: rx_hash 0x785cd497 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37540 dport 47134] OK # # # cpu 5: rx_hash 0xf9c111cd [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37560 dport 47134] OK # # # cpu 5: rx_hash 0x6ebfe404 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37572 dport 47134] OK # # # cpu 5: rx_hash 0x583ba5c1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37588 dport 47134] OK # # # cpu 5: rx_hash 0xef22215e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37592 dport 47134] OK # # # cpu 0: rx_hash 0xacd74947 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37614 dport 47134] OK # # # cpu 0: rx_hash 0x2d4a8c1d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37618 dport 47134] OK # # # cpu 0: rx_hash 0xbcb73f44 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37632 dport 47134] OK # # # cpu 0: rx_hash 0xe40077bf [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37654 dport 47134] OK # # # cpu 4: rx_hash 0xbf8cb5f0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37646 dport 47134] OK # # # cpu 4: rx_hash 0x3d2afa1e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37660 dport 47134] OK # # # cpu 4: rx_hash 0xa4ce9512 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37678 dport 47134] OK # # # cpu 4: rx_hash 0x25535048 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37682 dport 47134] OK # # # cpu 4: rx_hash 0x0534211e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37698 dport 47134] 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 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, 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 48256 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34376 dport 48256] != expected 0x65e8c672 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34376 dport 48256] != expected 0x65e8c672 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 46592 dport 48256] != expected 0x6eb9b833 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 46592 dport 48256] != expected 0x6eb9b833 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 53816 dport 48256] != expected 0xcc7452c # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 53816 dport 48256] != expected 0xcc7452c # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 47033 dport 48256] != expected 0xb60fa61 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 47033 dport 48256] != expected 0xb60fa61 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 52192 dport 48256] != expected 0x82b0a91 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 52192 dport 48256] != expected 0x82b0a91 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 33153 dport 48256] != expected 0xd7b2e182 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 33153 dport 48256] != expected 0xd7b2e182 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 60611 dport 48256] != expected 0x978e725b # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 60611 dport 48256] != expected 0x978e725b # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 41351 dport 48256] != expected 0x49f738ee # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 41351 dport 48256] != expected 0x49f738ee # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 51477 dport 48256] != expected 0xdda21d4c # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 51477 dport 48256] != expected 0xdda21d4c # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 41539 dport 48256] != expected 0xba4f07b1 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 41539 dport 48256] != expected 0xba4f07b1 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34405 dport 48256] != expected 0x8034f632 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34405 dport 48256] != expected 0x8034f632 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 45690 dport 48256] != expected 0xb86988fc # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 45690 dport 48256] != expected 0xb86988fc # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 49760 dport 48256] != expected 0xb2e5cb18 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 49760 dport 48256] != expected 0xb2e5cb18 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 45311 dport 48256] != expected 0xcea7c8d8 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 45311 dport 48256] != expected 0xcea7c8d8 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 35439 dport 48256] != expected 0x9c7d99e0 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 35439 dport 48256] != expected 0x9c7d99e0 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 42616 dport 48256] != expected 0xa7190f21 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 42616 dport 48256] != expected 0xa7190f21 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 36604 dport 48256] != expected 0xb541c286 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 36604 dport 48256] != expected 0xb541c286 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34446 dport 48256] != expected 0x7fb0ffd # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 34446 dport 48256] != expected 0x7fb0ffd # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 52393 dport 48256] != expected 0x2791a328 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 52393 dport 48256] != expected 0x2791a328 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 56320 dport 48256] != expected 0x5753d060 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 56320 dport 48256] != expected 0x5753d060 # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 37276 dport 48256] != expected 0x1e079eda # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 37276 dport 48256] != expected 0x1e079eda # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 47515 dport 48256] != expected 0x19db6b9e # # Exception| cpu 5: rx_hash 0x9d85e2dc [saddr 192.0.3.2 daddr 192.0.3.1 sport 47515 dport 48256] != expected 0x19db6b9e # # 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 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, 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 33443 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 42 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39215 dport 33443] != expected 0x1068c370 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39215 dport 33443] != expected 0x1068c370 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39248 dport 33443] != expected 0x5b7024c5 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 39248 dport 33443] != expected 0x5b7024c5 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57081 dport 33443] != expected 0x29a5c5c7 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57081 dport 33443] != expected 0x29a5c5c7 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47737 dport 33443] != expected 0x97b9bfc8 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47737 dport 33443] != expected 0x97b9bfc8 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41632 dport 33443] != expected 0x4f5b755b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41632 dport 33443] != expected 0x4f5b755b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57957 dport 33443] != expected 0x1e725740 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 57957 dport 33443] != expected 0x1e725740 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44381 dport 33443] != expected 0x74da6b6b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44381 dport 33443] != expected 0x74da6b6b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41106 dport 33443] != expected 0xd70b3859 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41106 dport 33443] != expected 0xd70b3859 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59455 dport 33443] != expected 0xbda4a1d8 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59455 dport 33443] != expected 0xbda4a1d8 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52237 dport 33443] != expected 0x74819df3 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 52237 dport 33443] != expected 0x74819df3 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47990 dport 33443] != expected 0xffae6d37 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47990 dport 33443] != expected 0xffae6d37 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 43155 dport 33443] != expected 0xff222c8d # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 43155 dport 33443] != expected 0xff222c8d # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41352 dport 33443] != expected 0x3bcdb021 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 41352 dport 33443] != expected 0x3bcdb021 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50442 dport 33443] != expected 0x31f3c405 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50442 dport 33443] != expected 0x31f3c405 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36443 dport 33443] != expected 0xc82e4667 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36443 dport 33443] != expected 0xc82e4667 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50330 dport 33443] != expected 0x2cf49e4 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50330 dport 33443] != expected 0x2cf49e4 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50257 dport 33443] != expected 0xb8d0405b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50257 dport 33443] != expected 0xb8d0405b # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42157 dport 33443] != expected 0x1168de9a # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 42157 dport 33443] != expected 0x1168de9a # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38192 dport 33443] != expected 0x8d240dd2 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38192 dport 33443] != expected 0x8d240dd2 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45303 dport 33443] != expected 0xd38b97c9 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 45303 dport 33443] != expected 0xd38b97c9 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49942 dport 33443] != expected 0x31003256 # # Exception| cpu 4: rx_hash 0x3f403845 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49942 dport 33443] != expected 0x31003256 # # 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 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__->