Lines Matching +full:pass +full:- +full:1
1 // SPDX-License-Identifier: GPL-2.0-only
32 #include "fp-ptrace.h"
205 if (config->svcr_in & SVCR_SM) in vl_in()
206 vl = config->sme_vl_in; in vl_in()
208 vl = config->sve_vl_in; in vl_in()
217 if (config->svcr_expected & SVCR_SM) in vl_expected()
218 vl = config->sme_vl_expected; in vl_expected()
220 vl = config->sve_vl_expected; in vl_expected()
237 ret = prctl(PR_SVE_SET_VL, config->sve_vl_in); in run_child()
238 if (ret != config->sve_vl_in) { in run_child()
240 config->sve_vl_in, ret); in run_child()
245 ret = prctl(PR_SME_SET_VL, config->sme_vl_in); in run_child()
246 if (ret != config->sme_vl_in) { in run_child()
248 config->sme_vl_in, ret); in run_child()
274 int len = iov_parent->iov_len; in read_one_child_regs()
277 ret = process_vm_readv(child, iov_parent, 1, iov_child, 1, 0); in read_one_child_regs()
278 if (ret == -1) in read_one_child_regs()
405 bool pass = true; in check_ptrace_values_sve() local
410 vq = __sve_vq_from_vl(config->sve_vl_in); in check_ptrace_values_sve()
424 pass = false; in check_ptrace_values_sve()
430 if (sve->vl != config->sve_vl_in) { in check_ptrace_values_sve()
432 sve->vl, config->sve_vl_in); in check_ptrace_values_sve()
433 pass = false; in check_ptrace_values_sve()
437 if ((config->svcr_in & SVCR_SM) && (sve->flags & SVE_PT_REGS_SVE)) { in check_ptrace_values_sve()
439 pass = false; in check_ptrace_values_sve()
443 if (sve->size != sizeof(sve)) { in check_ptrace_values_sve()
445 pass = false; in check_ptrace_values_sve()
448 if (sve->size != SVE_PT_SIZE(vq, sve->flags)) { in check_ptrace_values_sve()
450 sve->size, SVE_PT_SIZE(vq, sve->flags)); in check_ptrace_values_sve()
451 pass = false; in check_ptrace_values_sve()
456 if (sve->flags & SVE_PT_REGS_SVE) { in check_ptrace_values_sve()
460 pass = false; in check_ptrace_values_sve()
465 pass = false; in check_ptrace_values_sve()
470 pass = false; in check_ptrace_values_sve()
473 if (!compare_buffer("initial V via SVE", &fpsimd->vregs[0], in check_ptrace_values_sve()
475 pass = false; in check_ptrace_values_sve()
480 return pass; in check_ptrace_values_sve()
489 bool pass = true; in check_ptrace_values_ssve() local
494 vq = __sve_vq_from_vl(config->sme_vl_in); in check_ptrace_values_ssve()
508 pass = false; in check_ptrace_values_ssve()
514 if (sve->vl != config->sme_vl_in) { in check_ptrace_values_ssve()
516 sve->vl, config->sme_vl_in); in check_ptrace_values_ssve()
517 pass = false; in check_ptrace_values_ssve()
520 if ((config->svcr_in & SVCR_SM) && !(sve->flags & SVE_PT_REGS_SVE)) { in check_ptrace_values_ssve()
522 pass = false; in check_ptrace_values_ssve()
526 if (sve->size != sizeof(sve)) { in check_ptrace_values_ssve()
528 pass = false; in check_ptrace_values_ssve()
531 if (sve->size != SVE_PT_SIZE(vq, sve->flags)) { in check_ptrace_values_ssve()
533 sve->size, SVE_PT_SIZE(vq, sve->flags)); in check_ptrace_values_ssve()
534 pass = false; in check_ptrace_values_ssve()
539 if (sve->flags & SVE_PT_REGS_SVE) { in check_ptrace_values_ssve()
543 pass = false; in check_ptrace_values_ssve()
548 pass = false; in check_ptrace_values_ssve()
553 pass = false; in check_ptrace_values_ssve()
557 &fpsimd->vregs[0], v_in, sizeof(v_in))) in check_ptrace_values_ssve()
558 pass = false; in check_ptrace_values_ssve()
563 return pass; in check_ptrace_values_ssve()
571 bool pass = true; in check_ptrace_values_za() local
576 vq = __sve_vq_from_vl(config->sme_vl_in); in check_ptrace_values_za()
590 pass = false; in check_ptrace_values_za()
596 if (za->vl != config->sme_vl_in) { in check_ptrace_values_za()
598 za->vl, config->sme_vl_in); in check_ptrace_values_za()
599 pass = false; in check_ptrace_values_za()
603 if (config->svcr_in & SVCR_ZA) { in check_ptrace_values_za()
604 if (za->size != ZA_PT_SIZE(vq)) { in check_ptrace_values_za()
606 za->size, ZA_PT_SIZE(vq)); in check_ptrace_values_za()
607 pass = false; in check_ptrace_values_za()
613 pass = false; in check_ptrace_values_za()
615 if (za->size != sizeof(*za)) { in check_ptrace_values_za()
617 za->size, sizeof(*za)); in check_ptrace_values_za()
618 pass = false; in check_ptrace_values_za()
624 return pass; in check_ptrace_values_za()
671 bool pass = true; in check_ptrace_values() local
682 pass = false; in check_ptrace_values()
687 pass = false; in check_ptrace_values()
691 pass = false; in check_ptrace_values()
694 pass = false; in check_ptrace_values()
697 pass = false; in check_ptrace_values()
700 pass = false; in check_ptrace_values()
703 pass = false; in check_ptrace_values()
705 return pass; in check_ptrace_values()
713 bool pass; in run_parent() local
716 while (1) { in run_parent()
732 pass = false; in run_parent()
739 pass = false; in run_parent()
744 pass = check_ptrace_values(child, config); in run_parent()
747 if (test->modify_values) in run_parent()
748 test->modify_values(child, config); in run_parent()
753 while (1) { in run_parent()
769 pass = false; in run_parent()
776 pass = false; in run_parent()
788 alarm(1); in run_parent()
789 while (1) { in run_parent()
810 pass = false; in run_parent()
817 pass = false; in run_parent()
825 pass = false; in run_parent()
829 pass = false; in run_parent()
843 while (1) { in run_parent()
857 return pass; in run_parent()
886 lbuf[i] = (1 << (bits % 8)) - 1; in fill_random_ffr()
907 int sme_vq = __sve_vq_from_vl(config->sme_vl_in); in set_initial_values()
909 svcr_in = config->svcr_in; in set_initial_values()
910 svcr_expected = config->svcr_expected; in set_initial_values()
918 if (sve_supported() || (config->svcr_in & SVCR_SM)) { in set_initial_values()
929 if ((config->svcr_in & SVCR_SM) && !fa64_supported()) in set_initial_values()
937 if (config->svcr_in & SVCR_ZA) in set_initial_values()
941 if (config->svcr_expected & SVCR_ZA) in set_initial_values()
949 if (config->svcr_in & SVCR_ZA) in set_initial_values()
953 if (config->svcr_expected & SVCR_ZA) in set_initial_values()
973 bool pass = true; in check_memory_values() local
977 pass = false; in check_memory_values()
980 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in check_memory_values()
985 pass = false; in check_memory_values()
988 if (sve_vl_out != config->sve_vl_expected) { in check_memory_values()
990 sve_vl_out, config->sve_vl_expected); in check_memory_values()
991 pass = false; in check_memory_values()
994 if (sme_vl_out != config->sme_vl_expected) { in check_memory_values()
996 sme_vl_out, config->sme_vl_expected); in check_memory_values()
997 pass = false; in check_memory_values()
1002 pass = false; in check_memory_values()
1006 pass = false; in check_memory_values()
1010 pass = false; in check_memory_values()
1014 pass = false; in check_memory_values()
1017 pass = false; in check_memory_values()
1022 pass = false; in check_memory_values()
1025 return pass; in check_memory_values()
1030 if (config->sve_vl_in != config->sve_vl_expected) in sve_sme_same()
1033 if (config->sme_vl_in != config->sme_vl_expected) in sve_sme_same()
1036 if (config->svcr_in != config->svcr_expected) in sve_sme_same()
1047 if ((config->svcr_in & SVCR_ZA) != (config->svcr_expected & SVCR_ZA)) in sve_write_supported()
1050 if (config->svcr_expected & SVCR_SM) { in sve_write_supported()
1051 if (config->sve_vl_in != config->sve_vl_expected) { in sve_write_supported()
1056 if ((config->svcr_expected & SVCR_ZA) && in sve_write_supported()
1057 (config->sme_vl_in != config->sme_vl_expected)) { in sve_write_supported()
1061 if (config->sme_vl_in != config->sme_vl_expected) { in sve_write_supported()
1077 if ((config->svcr_in & SVCR_ZA) != (config->svcr_expected & SVCR_ZA)) in sve_write_fpsimd_supported()
1080 if (config->svcr_expected & SVCR_SM) in sve_write_fpsimd_supported()
1083 if (config->sme_vl_in != config->sme_vl_expected) in sve_write_fpsimd_supported()
1117 if (ret == -1) in fpsimd_write()
1155 int sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in sve_write_expected()
1172 if (config->sme_vl_in != config->sme_vl_expected) { in sve_write_expected()
1200 sve->size = iov.iov_len; in sve_write_sve()
1201 sve->flags = SVE_PT_REGS_SVE; in sve_write_sve()
1202 sve->vl = vl; in sve_write_sve()
1247 sve->size = iov.iov_len; in sve_write_fpsimd()
1248 sve->flags = SVE_PT_REGS_FPSIMD; in sve_write_fpsimd()
1249 sve->vl = vl; in sve_write_fpsimd()
1252 memcpy(&fpsimd->vregs, v_expected, sizeof(v_expected)); in sve_write_fpsimd()
1264 if ((config->svcr_in & SVCR_SM) != (config->svcr_expected & SVCR_SM)) in za_write_supported()
1274 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in za_write_expected()
1276 if (config->svcr_expected & SVCR_ZA) { in za_write_expected()
1284 if (config->sme_vl_in != config->sme_vl_expected) { in za_write_expected()
1301 vq = __sve_vq_from_vl(config->sme_vl_expected); in za_write()
1303 if (config->svcr_expected & SVCR_ZA) in za_write()
1316 za->size = iov.iov_len; in za_write()
1317 za->vl = config->sme_vl_expected; in za_write()
1318 if (config->svcr_expected & SVCR_ZA) in za_write()
1334 if (config->sme_vl_in != config->sme_vl_expected) in zt_write_supported()
1336 if (!(config->svcr_expected & SVCR_ZA)) in zt_write_supported()
1338 if ((config->svcr_in & SVCR_SM) != (config->svcr_expected & SVCR_SM)) in zt_write_supported()
1348 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in zt_write_expected()
1350 if (config->svcr_expected & SVCR_ZA) { in zt_write_expected()
1376 bool pass; in run_test() local
1379 snprintf(name, sizeof(name), "%s, SVE %d->%d, SME %d/%x->%d/%x", in run_test()
1380 test->name, in run_test()
1381 config->sve_vl_in, config->sve_vl_expected, in run_test()
1382 config->sme_vl_in, config->svcr_in, in run_test()
1383 config->sme_vl_expected, config->svcr_expected); in run_test()
1385 snprintf(name, sizeof(name), "%s, SVE %d->%d", test->name, in run_test()
1386 config->sve_vl_in, config->sve_vl_expected); in run_test()
1388 snprintf(name, sizeof(name), "%s, SME %d/%x->%d/%x", in run_test()
1389 test->name, in run_test()
1390 config->sme_vl_in, config->svcr_in, in run_test()
1391 config->sme_vl_expected, config->svcr_expected); in run_test()
1393 snprintf(name, sizeof(name), "%s", test->name); in run_test()
1395 if (test->supported && !test->supported(config)) { in run_test()
1402 if (test->set_expected_values) in run_test()
1403 test->set_expected_values(config); in run_test()
1413 pass = run_parent(child, test, config); in run_test()
1415 pass = false; in run_test()
1417 ksft_test_result(pass, "%s\n", name); in run_test()
1493 if (vl == -1) in probe_vls()
1499 if (*vl_count && (vl == vls[*vl_count - 1])) in probe_vls()
1505 *vl_count += 1; in probe_vls()
1510 vls[1] = vls[*vl_count - 1]; in probe_vls()
1512 *vl_count, name, vls[0], vls[1]); in probe_vls()
1634 sve_vl_count = 1; in main()
1651 sme_vl_count = 1; in main()