Lines Matching refs:sat

463 				   struct stressapptest_params *sat)  in pattern_adler_sum_calc()  argument
471 while (i < sat->block_size_byte / sizeof(u32)) { in pattern_adler_sum_calc()
490 struct stressapptest_params *sat) in pattern_list_init() argument
501 pattern_adler_sum_calc(&pattern_list[k], sat); in pattern_list_init()
507 sat->weight_count = weight_count; in pattern_list_init()
528 struct stressapptest_params *sat) in get_page_addr() argument
538 if ((start_adr[i] == 0 && length[i] == 0) || page >= sat->page_num) in get_page_addr()
540 if (start_adr[i] + length[i] < sat->total_start_addr) in get_page_addr()
542 if (start_adr[i] < sat->total_start_addr) { in get_page_addr()
543 length[i] -= sat->total_start_addr - start_adr[i]; in get_page_addr()
544 start_adr[i] = sat->total_start_addr; in get_page_addr()
548 while (page < sat->page_num && in get_page_addr()
549 length[i] >= used_length + sat->page_size_byte) { in get_page_addr()
551 used_length += sat->page_size_byte; in get_page_addr()
559 page, sat->page_size_byte, sat->page_size_byte * page); in get_page_addr()
561 if (sat->total_test_size_mb == 0) { in get_page_addr()
563 sat->page_num = page; in get_page_addr()
564 } else if (page < sat->page_num || page < sat->cpu_num * 4) { in get_page_addr()
575 struct stressapptest_params *sat) in page_init_valid() argument
581 target = (rand() % sat->weight_count) + 1; in page_init_valid()
591 for (i = 0; i < sat->page_size_byte / sizeof(u64); i++) in page_init_valid()
602 struct stressapptest_params *sat) in page_init() argument
607 for (cpu = 0; cpu < sat->cpu_num; cpu++) { in page_init()
609 for (i = cpu; i < sat->page_num; i += sat->cpu_num) { in page_init()
617 while (empty_page_num >= sat->page_num / sat->cpu_num / 2 && i > 0) { in page_init()
618 i -= sat->cpu_num; in page_init()
625 while (empty_page_num < 2 && i < sat->page_num) { in page_init()
630 i += sat->cpu_num; in page_init()
634 for (i = 0; i < sat->page_num; i++) { in page_init()
636 page_init_valid(&page_list[i], pattern_list, sat); in page_init()
644 struct stressapptest_params *sat, u8 cpu_id) in page_rand_pick() argument
648 pick = rand() % sat->page_num; in page_rand_pick()
649 pick = pick / sat->cpu_num * sat->cpu_num + cpu_id; in page_rand_pick()
650 if (pick >= sat->page_num) in page_rand_pick()
654 pick += sat->cpu_num; in page_rand_pick()
655 if (pick >= sat->page_num) in page_rand_pick()
663 struct stressapptest_params *sat, u8 cpu_id) in block_mis_search() argument
673 for (i = 0; i < sat->block_size_byte / sizeof(u32); i++) { in block_mis_search()
727 struct stressapptest_params *sat, u8 cpu_id) in block_inv_check() argument
749 while (i < sat->block_size_byte / sizeof(u32)) { in block_inv_check()
781 err = block_mis_search(dst_addr, src_pattern, "Inv", sat, cpu_id); in block_inv_check()
786 static void page_inv_up(void *src_addr, struct stressapptest_params *sat) in page_inv_up() argument
792 for (int i = 0; i < sat->block_num; i++) { in page_inv_up()
794 for (int j = 0; j < sat->block_size_byte / sizeof(uint); j++) { in page_inv_up()
798 dst_addr += sat->block_size_byte; in page_inv_up()
803 static void page_inv_down(void *src_addr, struct stressapptest_params *sat) in page_inv_down() argument
809 dst_addr += sat->block_size_byte * (sat->block_num - 1); in page_inv_down()
811 for (int i = sat->block_num - 1; i >= 0; i--) { in page_inv_down()
813 for (int j = sat->block_size_byte / sizeof(uint) - 1; j >= 0; j--) { in page_inv_down()
817 dst_addr -= sat->block_size_byte; in page_inv_down()
822 static u32 page_inv(struct stressapptest_params *sat, u8 cpu_id) in page_inv() argument
828 src = page_rand_pick(page_list, 1, sat, cpu_id); /* pick a valid page */ in page_inv()
833 page_inv_up(page_list[src].base_addr, sat); in page_inv()
835 page_inv_down(page_list[src].base_addr, sat); in page_inv()
838 for (int i = 0; i < sat->block_num; i++) { in page_inv()
839 err += block_inv_check(dst_block_addr, page_list[src].pattern, sat, cpu_id); in page_inv()
840 dst_block_addr += sat->block_size_byte; in page_inv()
849 struct pattern *src_pattern, struct stressapptest_params *sat, in block_copy_check() argument
858 err = block_mis_search(dst_addr, src_pattern, "Copy", sat, cpu_id); in block_copy_check()
865 struct stressapptest_params *sat, u8 cpu_id) in block_copy() argument
889 while (i < sat->block_size_byte / sizeof(u64)) { in block_copy()
926 return block_copy_check(dst_addr, &adler_sum, src_pattern, sat, cpu_id); in block_copy()
929 static u32 page_copy(struct stressapptest_params *sat, u8 cpu_id) in page_copy() argument
937 dst = page_rand_pick(page_list, 0, sat, cpu_id); /* pick a empty page */ in page_copy()
939 src = page_rand_pick(page_list, 1, sat, cpu_id); /* pick a valid page */ in page_copy()
943 for (int i = 0; i < sat->block_num; i++) { in page_copy()
945 page_list[src].pattern, sat, cpu_id); in page_copy()
946 dst_block_addr += sat->block_size_byte; in page_copy()
947 src_block_addr += sat->block_size_byte; in page_copy()
976 cpu_id = sat.cpu_num; in secondary_main()
993 cpu_copy_err[cpu_id] += page_copy(&sat, cpu_id); in secondary_main()
995 cpu_inv_err[cpu_id] += page_inv(&sat, cpu_id); in secondary_main()
1038 for (sat.cpu_num = 1; sat.cpu_num < CPU_NUM_MAX; sat.cpu_num++) { in doing_stressapptest()
1041 if (psci_cpu_on(sat.cpu_num, (ulong)secondary_init) == 0) { in doing_stressapptest()
1043 printf("Calling CPU%d, sp = 0x%lx\n", sat.cpu_num, __sp); in doing_stressapptest()
1047 while (cpu_init_finish[sat.cpu_num] == 0) { in doing_stressapptest()
1054 sat.cpu_num = 1; in doing_stressapptest()
1057 if (sat.total_test_size_mb == 0) in doing_stressapptest()
1058 sat.page_num = get_max_page_num(sat.page_size_byte); in doing_stressapptest()
1060 sat.page_num = (sat.total_test_size_mb << 20) / sat.page_size_byte; in doing_stressapptest()
1061 sat.block_num = sat.page_size_byte / sat.block_size_byte; in doing_stressapptest()
1065 page_info = malloc(sizeof(struct page) * sat.page_num); in doing_stressapptest()
1074 if (get_page_addr(page_list, &sat) < 0) { in doing_stressapptest()
1079 pattern_list_init(pattern_list, &sat); in doing_stressapptest()
1080 page_init(pattern_list, &sat); in doing_stressapptest()
1083 if (sat.cpu_num > 1) { in doing_stressapptest()
1098 cpu_copy_err[0] += page_copy(&sat, 0); in doing_stressapptest()
1100 cpu_inv_err[0] += page_inv(&sat, 0); in doing_stressapptest()
1114 for (i = 1; i < sat.cpu_num; i++) { in doing_stressapptest()
1131 for (i = 0; i < sat.cpu_num; i++) { in doing_stressapptest()
1154 sat.total_test_size_mb = 0; in do_stressapptest()
1155 sat.block_size_byte = 4096; in do_stressapptest()
1156 sat.total_start_addr = 0x0; in do_stressapptest()
1167 if (strict_strtoul(argv[2], 0, &sat.total_test_size_mb) < 0) in do_stressapptest()
1169 if (sat.total_test_size_mb < 1) in do_stressapptest()
1170 sat.total_test_size_mb = 0; in do_stressapptest()
1173 if (strict_strtoul(argv[3], 0, &sat.total_start_addr) < 0) in do_stressapptest()
1175 if (sat.total_start_addr < 0x1) in do_stressapptest()
1176 sat.total_start_addr = 0x0; in do_stressapptest()
1185 sat.page_size_byte = page_size_kb << 10; in do_stressapptest()