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()
442 if (sve->size != SVE_PT_SIZE(vq, sve->flags)) { in check_ptrace_values_sve()
444 sve->size, SVE_PT_SIZE(vq, sve->flags)); in check_ptrace_values_sve()
445 pass = false; in check_ptrace_values_sve()
449 if (sve->flags & SVE_PT_REGS_SVE) { in check_ptrace_values_sve()
453 pass = false; in check_ptrace_values_sve()
458 pass = false; in check_ptrace_values_sve()
463 pass = false; in check_ptrace_values_sve()
466 if (!compare_buffer("initial V via SVE", &fpsimd->vregs[0], in check_ptrace_values_sve()
468 pass = false; in check_ptrace_values_sve()
473 return pass; in check_ptrace_values_sve()
482 bool pass = true; in check_ptrace_values_ssve() local
487 vq = __sve_vq_from_vl(config->sme_vl_in); in check_ptrace_values_ssve()
501 pass = false; in check_ptrace_values_ssve()
507 if (sve->vl != config->sme_vl_in) { in check_ptrace_values_ssve()
509 sve->vl, config->sme_vl_in); in check_ptrace_values_ssve()
510 pass = false; in check_ptrace_values_ssve()
513 if ((config->svcr_in & SVCR_SM) && !(sve->flags & SVE_PT_REGS_SVE)) { in check_ptrace_values_ssve()
515 pass = false; in check_ptrace_values_ssve()
518 if (sve->size != SVE_PT_SIZE(vq, sve->flags)) { in check_ptrace_values_ssve()
520 sve->size, SVE_PT_SIZE(vq, sve->flags)); in check_ptrace_values_ssve()
521 pass = false; in check_ptrace_values_ssve()
525 if (sve->flags & SVE_PT_REGS_SVE) { in check_ptrace_values_ssve()
529 pass = false; in check_ptrace_values_ssve()
534 pass = false; in check_ptrace_values_ssve()
539 pass = false; in check_ptrace_values_ssve()
543 &fpsimd->vregs[0], v_in, sizeof(v_in))) in check_ptrace_values_ssve()
544 pass = false; in check_ptrace_values_ssve()
549 return pass; in check_ptrace_values_ssve()
557 bool pass = true; in check_ptrace_values_za() local
562 vq = __sve_vq_from_vl(config->sme_vl_in); in check_ptrace_values_za()
576 pass = false; in check_ptrace_values_za()
582 if (za->vl != config->sme_vl_in) { in check_ptrace_values_za()
584 za->vl, config->sme_vl_in); in check_ptrace_values_za()
585 pass = false; in check_ptrace_values_za()
589 if (config->svcr_in & SVCR_ZA) { in check_ptrace_values_za()
590 if (za->size != ZA_PT_SIZE(vq)) { in check_ptrace_values_za()
592 za->size, ZA_PT_SIZE(vq)); in check_ptrace_values_za()
593 pass = false; in check_ptrace_values_za()
599 pass = false; in check_ptrace_values_za()
601 if (za->size != sizeof(*za)) { in check_ptrace_values_za()
603 za->size, sizeof(*za)); in check_ptrace_values_za()
604 pass = false; in check_ptrace_values_za()
610 return pass; in check_ptrace_values_za()
657 bool pass = true; in check_ptrace_values() local
668 pass = false; in check_ptrace_values()
673 pass = false; in check_ptrace_values()
677 pass = false; in check_ptrace_values()
680 pass = false; in check_ptrace_values()
683 pass = false; in check_ptrace_values()
686 pass = false; in check_ptrace_values()
689 pass = false; in check_ptrace_values()
691 return pass; in check_ptrace_values()
699 bool pass; in run_parent() local
702 while (1) { in run_parent()
718 pass = false; in run_parent()
725 pass = false; in run_parent()
730 pass = check_ptrace_values(child, config); in run_parent()
733 if (test->modify_values) in run_parent()
734 test->modify_values(child, config); in run_parent()
739 while (1) { in run_parent()
755 pass = false; in run_parent()
762 pass = false; in run_parent()
774 alarm(1); in run_parent()
775 while (1) { in run_parent()
796 pass = false; in run_parent()
803 pass = false; in run_parent()
811 pass = false; in run_parent()
815 pass = false; in run_parent()
829 while (1) { in run_parent()
843 return pass; in run_parent()
872 lbuf[i] = (1 << (bits % 8)) - 1; in fill_random_ffr()
893 int sme_vq = __sve_vq_from_vl(config->sme_vl_in); in set_initial_values()
896 svcr_in = config->svcr_in; in set_initial_values()
897 svcr_expected = config->svcr_expected; in set_initial_values()
911 if (sve_supported() || (config->svcr_in & SVCR_SM)) { in set_initial_values()
922 if ((config->svcr_in & SVCR_SM) && !fa64_supported()) in set_initial_values()
930 if (config->svcr_in & SVCR_ZA) in set_initial_values()
934 if (config->svcr_expected & SVCR_ZA) in set_initial_values()
942 if (config->svcr_in & SVCR_ZA) in set_initial_values()
946 if (config->svcr_expected & SVCR_ZA) in set_initial_values()
971 bool pass = true; in check_memory_values() local
975 pass = false; in check_memory_values()
978 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in check_memory_values()
983 pass = false; in check_memory_values()
986 if (sve_vl_out != config->sve_vl_expected) { in check_memory_values()
988 sve_vl_out, config->sve_vl_expected); in check_memory_values()
989 pass = false; in check_memory_values()
992 if (sme_vl_out != config->sme_vl_expected) { in check_memory_values()
994 sme_vl_out, config->sme_vl_expected); in check_memory_values()
995 pass = false; in check_memory_values()
1000 pass = false; in check_memory_values()
1004 pass = false; in check_memory_values()
1008 pass = false; in check_memory_values()
1012 pass = false; in check_memory_values()
1015 pass = false; in check_memory_values()
1020 pass = false; in check_memory_values()
1023 return pass; in check_memory_values()
1028 if (config->sve_vl_in != config->sve_vl_expected) in sve_sme_same()
1031 if (config->sme_vl_in != config->sme_vl_expected) in sve_sme_same()
1034 if (config->svcr_in != config->svcr_expected) in sve_sme_same()
1045 if ((config->svcr_in & SVCR_ZA) != (config->svcr_expected & SVCR_ZA)) in sve_write_supported()
1048 if (config->svcr_expected & SVCR_SM) { in sve_write_supported()
1049 if (config->sve_vl_in != config->sve_vl_expected) { in sve_write_supported()
1054 if ((config->svcr_expected & SVCR_ZA) && in sve_write_supported()
1055 (config->sme_vl_in != config->sme_vl_expected)) { in sve_write_supported()
1059 if (config->sme_vl_in != config->sme_vl_expected) { in sve_write_supported()
1095 if (ret == -1) in fpsimd_write()
1133 int sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in sve_write_expected()
1147 if (config->sme_vl_in != config->sme_vl_expected) { in sve_write_expected()
1172 sve->size = iov.iov_len; in sve_write()
1173 sve->flags = SVE_PT_REGS_SVE; in sve_write()
1174 sve->vl = vl; in sve_write()
1198 if (config->sme_vl_in != config->sme_vl_expected) { in za_write_supported()
1200 if (config->svcr_expected & SVCR_SM) { in za_write_supported()
1205 if ((config->svcr_in & SVCR_SM) != in za_write_supported()
1206 (config->svcr_expected & SVCR_SM)) { in za_write_supported()
1218 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in za_write_expected()
1220 if (config->svcr_expected & SVCR_ZA) { in za_write_expected()
1228 if (config->sme_vl_in != config->sme_vl_expected) { in za_write_expected()
1247 vq = __sve_vq_from_vl(config->sme_vl_expected); in za_write()
1249 if (config->svcr_expected & SVCR_ZA) in za_write()
1262 za->size = iov.iov_len; in za_write()
1263 za->vl = config->sme_vl_expected; in za_write()
1264 if (config->svcr_expected & SVCR_ZA) in za_write()
1280 if (config->sme_vl_in != config->sme_vl_expected) in zt_write_supported()
1282 if (!(config->svcr_expected & SVCR_ZA)) in zt_write_supported()
1284 if ((config->svcr_in & SVCR_SM) != (config->svcr_expected & SVCR_SM)) in zt_write_supported()
1294 sme_vq = __sve_vq_from_vl(config->sme_vl_expected); in zt_write_expected()
1296 if (config->svcr_expected & SVCR_ZA) { in zt_write_expected()
1322 bool pass; in run_test() local
1325 snprintf(name, sizeof(name), "%s, SVE %d->%d, SME %d/%x->%d/%x", in run_test()
1326 test->name, in run_test()
1327 config->sve_vl_in, config->sve_vl_expected, in run_test()
1328 config->sme_vl_in, config->svcr_in, in run_test()
1329 config->sme_vl_expected, config->svcr_expected); in run_test()
1331 snprintf(name, sizeof(name), "%s, SVE %d->%d", test->name, in run_test()
1332 config->sve_vl_in, config->sve_vl_expected); in run_test()
1334 snprintf(name, sizeof(name), "%s, SME %d/%x->%d/%x", in run_test()
1335 test->name, in run_test()
1336 config->sme_vl_in, config->svcr_in, in run_test()
1337 config->sme_vl_expected, config->svcr_expected); in run_test()
1339 snprintf(name, sizeof(name), "%s", test->name); in run_test()
1341 if (test->supported && !test->supported(config)) { in run_test()
1348 if (test->set_expected_values) in run_test()
1349 test->set_expected_values(config); in run_test()
1359 pass = run_parent(child, test, config); in run_test()
1361 pass = false; in run_test()
1363 ksft_test_result(pass, "%s\n", name); in run_test()
1433 if (vl == -1) in probe_vls()
1439 if (*vl_count && (vl == vls[*vl_count - 1])) in probe_vls()
1445 *vl_count += 1; in probe_vls()
1450 vls[1] = vls[*vl_count - 1]; in probe_vls()
1452 *vl_count, name, vls[0], vls[1]); in probe_vls()
1575 sve_vl_count = 1; in main()
1592 sme_vl_count = 1; in main()