Lines Matching refs:p

38 #define tprintf(x...) do { if (g && g->p.show_details >= 0) printf(x); } while (0)
43 #define dprintf(x...) do { if (g && g->p.show_details >= 1) printf(x); } while (0)
148 struct params p; member
224 for (cpu = 0; cpu < g->p.nr_cpus; cpu++) in bind_to_cpu()
227 BUG_ON(target_cpu < 0 || target_cpu >= g->p.nr_cpus); in bind_to_cpu()
239 int cpus_per_node = g->p.nr_cpus/g->p.nr_nodes; in bind_to_node()
244 BUG_ON(cpus_per_node*g->p.nr_nodes != g->p.nr_cpus); in bind_to_node()
253 for (cpu = 0; cpu < g->p.nr_cpus; cpu++) in bind_to_node()
259 BUG_ON(cpu_stop > g->p.nr_cpus); in bind_to_node()
283 ret = set_mempolicy(MPOL_DEFAULT, NULL, g->p.nr_nodes-1); in mempol_restore()
296 BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)); in bind_to_memnode()
396 return alloc_data(bytes, MAP_SHARED, 1, g->p.init_cpu0, g->p.thp, g->p.init_random); in zalloc_shared_data()
404 return alloc_data(bytes, MAP_SHARED, 0, g->p.init_cpu0, g->p.thp, g->p.init_random); in setup_shared_data()
413 return alloc_data(bytes, MAP_PRIVATE, 0, g->p.init_cpu0, g->p.thp, g->p.init_random); in setup_private_data()
443 if (!g->p.cpu_list_str) in parse_setup_cpu_list()
446 dprintf("g->p.nr_tasks: %d\n", g->p.nr_tasks); in parse_setup_cpu_list()
448 str0 = str = strdup(g->p.cpu_list_str); in parse_setup_cpu_list()
483 BUG_ON(step <= 0 || step >= g->p.nr_cpus); in parse_setup_cpu_list()
495 BUG_ON(bind_len <= 0 || bind_len > g->p.nr_cpus); in parse_setup_cpu_list()
508 if (bind_cpu_0 >= g->p.nr_cpus || bind_cpu_1 >= g->p.nr_cpus) { in parse_setup_cpu_list()
509 printf("\nTest not applicable, system has only %d CPUs.\n", g->p.nr_cpus); in parse_setup_cpu_list()
522 if (t >= g->p.nr_tasks) { in parse_setup_cpu_list()
538 BUG_ON(cpu < 0 || cpu >= g->p.nr_cpus); in parse_setup_cpu_list()
549 if (t < g->p.nr_tasks) in parse_setup_cpu_list()
550 printf("# NOTE: %d tasks bound, %d tasks unbound\n", t, g->p.nr_tasks - t); in parse_setup_cpu_list()
580 if (!g->p.node_list_str) in parse_setup_node_list()
583 dprintf("g->p.nr_tasks: %d\n", g->p.nr_tasks); in parse_setup_node_list()
585 str0 = str = strdup(g->p.node_list_str); in parse_setup_node_list()
619 BUG_ON(step <= 0 || step >= g->p.nr_nodes); in parse_setup_node_list()
632 if (bind_node_0 >= g->p.nr_nodes || bind_node_1 >= g->p.nr_nodes) { in parse_setup_node_list()
633 printf("\nTest not applicable, system has only %d nodes.\n", g->p.nr_nodes); in parse_setup_node_list()
644 if (t >= g->p.nr_tasks) { in parse_setup_node_list()
664 if (t < g->p.nr_tasks) in parse_setup_node_list()
665 printf("# NOTE: %d tasks mem-bound, %d tasks unbound\n", t, g->p.nr_tasks - t); in parse_setup_node_list()
698 if (g->p.data_reads) in access_data()
700 if (g->p.data_writes) in access_data()
729 if (g->p.data_zero_memset && !g->p.data_rand_walk) { in do_work()
736 chunk_1 = words/g->p.nr_loops; in do_work()
742 if (g->p.data_rand_walk) { in do_work()
754 if (g->p.data_zero_memset) { in do_work()
761 } else if (!g->p.data_backwards || (nr + loop) & 1) { in do_work()
827 for (t = 0; t < g->p.nr_threads; t++) { in count_process_nodes()
832 task_nr = process_nr*g->p.nr_threads + t; in count_process_nodes()
860 int t, p; in count_node_processes() local
862 for (p = 0; p < g->p.nr_proc; p++) { in count_node_processes()
863 for (t = 0; t < g->p.nr_threads; t++) { in count_node_processes()
868 task_nr = p*g->p.nr_threads + t; in count_node_processes()
885 int p; in calc_convergence_compression() local
890 for (p = 0; p < g->p.nr_proc; p++) { in calc_convergence_compression()
891 unsigned int nodes = count_process_nodes(p); in calc_convergence_compression()
926 if (!g->p.show_convergence && !g->p.measure_convergence) in calc_convergence()
929 for (node = 0; node < g->p.nr_nodes; node++) in calc_convergence()
935 for (t = 0; t < g->p.nr_tasks; t++) { in calc_convergence()
955 nr_min = g->p.nr_tasks; in calc_convergence()
958 for (node = 0; node < g->p.nr_nodes; node++) { in calc_convergence()
966 BUG_ON(sum > g->p.nr_tasks); in calc_convergence()
968 if (0 && (sum < g->p.nr_tasks)) in calc_convergence()
978 for (node = 0; node < g->p.nr_nodes; node++) { in calc_convergence()
1002 if (strong && process_groups == g->p.nr_proc) { in calc_convergence()
1006 if (g->p.measure_convergence) { in calc_convergence()
1023 (double)(l+1)/g->p.nr_loops*100.0, runtime_ns_max/1e9 / 60.0); in show_summary()
1027 if (g->p.show_details >= 0) in show_summary()
1039 int details = g->p.show_details; in worker_thread()
1059 thread_data = setup_private_data(g->p.bytes_thread); in worker_thread()
1064 if (process_nr == g->p.nr_proc-1 && thread_nr == g->p.nr_threads-1) in worker_thread()
1076 if (g->p.serialize_startup) { in worker_thread()
1086 if (g->nr_tasks_working == g->p.nr_tasks) in worker_thread()
1097 for (l = 0; l < g->p.nr_loops; l++) { in worker_thread()
1103 val += do_work(global_data, g->p.bytes_global, process_nr, g->p.nr_proc, l, val); in worker_thread()
1104 val += do_work(process_data, g->p.bytes_process, thread_nr, g->p.nr_threads, l, val); in worker_thread()
1105 val += do_work(thread_data, g->p.bytes_thread, 0, 1, l, val); in worker_thread()
1107 if (g->p.sleep_usecs) { in worker_thread()
1109 usleep(g->p.sleep_usecs); in worker_thread()
1115 if (g->p.bytes_process_locked) { in worker_thread()
1117 val += do_work(process_data, g->p.bytes_process_locked, thread_nr, g->p.nr_threads, l, val); in worker_thread()
1121 work_done = g->p.bytes_global + g->p.bytes_process + in worker_thread()
1122 g->p.bytes_process_locked + g->p.bytes_thread; in worker_thread()
1127 if (details < 0 && !g->p.perturb_secs && !g->p.measure_convergence && !g->p.nr_secs) in worker_thread()
1135 if (g->p.nr_secs) { in worker_thread()
1137 if ((u32)diff.tv_sec >= g->p.nr_secs) { in worker_thread()
1151 …if (first_task && g->p.perturb_secs && (int)(stop.tv_sec - last_perturbance) >= g->p.perturb_secs)… in worker_thread()
1164 if (this_cpu < g->p.nr_cpus/2) in worker_thread()
1165 target_cpu = g->p.nr_cpus-1; in worker_thread()
1211 free_data(thread_data, g->p.bytes_thread); in worker_thread()
1240 task_nr = process_nr*g->p.nr_threads; in worker_process()
1246 pthreads = zalloc(g->p.nr_threads * sizeof(pthread_t)); in worker_process()
1247 process_data = setup_private_data(g->p.bytes_process); in worker_process()
1249 if (g->p.show_details >= 3) { in worker_process()
1254 for (t = 0; t < g->p.nr_threads; t++) { in worker_process()
1255 task_nr = process_nr*g->p.nr_threads + t; in worker_process()
1270 for (t = 0; t < g->p.nr_threads; t++) { in worker_process()
1275 free_data(process_data, g->p.bytes_process); in worker_process()
1281 if (g->p.show_details < 0) in print_summary()
1286 g->p.nr_tasks, g->p.nr_tasks == 1 ? "task" : "tasks", g->p.nr_nodes, g->p.nr_cpus); in print_summary()
1288 g->p.nr_loops, g->p.bytes_global/1024/1024); in print_summary()
1290 g->p.nr_loops, g->p.bytes_process/1024/1024); in print_summary()
1292 g->p.nr_loops, g->p.bytes_thread/1024/1024); in print_summary()
1301 ssize_t size = sizeof(*g->threads)*g->p.nr_tasks; in init_thread_data()
1306 for (t = 0; t < g->p.nr_tasks; t++) { in init_thread_data()
1315 for (cpu = 0; cpu < g->p.nr_cpus; cpu++) in init_thread_data()
1322 ssize_t size = sizeof(*g->threads)*g->p.nr_tasks; in deinit_thread_data()
1332 g->p = p0; in init()
1334 g->p.nr_cpus = numa_num_configured_cpus(); in init()
1336 g->p.nr_nodes = numa_max_node() + 1; in init()
1339 BUG_ON(g->p.nr_nodes > MAX_NR_NODES || g->p.nr_nodes < 0); in init()
1341 if (g->p.show_quiet && !g->p.show_details) in init()
1342 g->p.show_details = -1; in init()
1345 if (!g->p.mb_global_str && !g->p.mb_proc_str && !g->p.mb_thread_str) in init()
1348 if (g->p.mb_global_str) { in init()
1349 g->p.mb_global = atof(g->p.mb_global_str); in init()
1350 BUG_ON(g->p.mb_global < 0); in init()
1353 if (g->p.mb_proc_str) { in init()
1354 g->p.mb_proc = atof(g->p.mb_proc_str); in init()
1355 BUG_ON(g->p.mb_proc < 0); in init()
1358 if (g->p.mb_proc_locked_str) { in init()
1359 g->p.mb_proc_locked = atof(g->p.mb_proc_locked_str); in init()
1360 BUG_ON(g->p.mb_proc_locked < 0); in init()
1361 BUG_ON(g->p.mb_proc_locked > g->p.mb_proc); in init()
1364 if (g->p.mb_thread_str) { in init()
1365 g->p.mb_thread = atof(g->p.mb_thread_str); in init()
1366 BUG_ON(g->p.mb_thread < 0); in init()
1369 BUG_ON(g->p.nr_threads <= 0); in init()
1370 BUG_ON(g->p.nr_proc <= 0); in init()
1372 g->p.nr_tasks = g->p.nr_proc*g->p.nr_threads; in init()
1374 g->p.bytes_global = g->p.mb_global *1024L*1024L; in init()
1375 g->p.bytes_process = g->p.mb_proc *1024L*1024L; in init()
1376 g->p.bytes_process_locked = g->p.mb_proc_locked *1024L*1024L; in init()
1377 g->p.bytes_thread = g->p.mb_thread *1024L*1024L; in init()
1379 g->data = setup_shared_data(g->p.bytes_global); in init()
1401 free_data(g->data, g->p.bytes_global); in deinit()
1419 if (!g->p.show_quiet) in print_res()
1436 int i, t, p; in __bench_numa() local
1441 pids = zalloc(g->p.nr_proc * sizeof(*pids)); in __bench_numa()
1447 if (g->p.serialize_startup) { in __bench_numa()
1454 for (i = 0; i < g->p.nr_proc; i++) { in __bench_numa()
1469 while (g->nr_tasks_started != g->p.nr_tasks) in __bench_numa()
1472 BUG_ON(g->nr_tasks_started != g->p.nr_tasks); in __bench_numa()
1474 if (g->p.serialize_startup) { in __bench_numa()
1505 for (i = 0; i < g->p.nr_proc; i++) { in __bench_numa()
1515 for (t = 0; t < g->p.nr_tasks; t++) { in __bench_numa()
1537 runtime_avg = (double)runtime_ns_sum / g->p.nr_tasks / 1e9; in __bench_numa()
1539 if (g->p.measure_convergence) { in __bench_numa()
1557 print_res(name, bytes / g->p.nr_tasks / 1e9, in __bench_numa()
1563 print_res(name, runtime_sec_max * 1e9 / (bytes / g->p.nr_tasks), in __bench_numa()
1566 print_res(name, bytes / g->p.nr_tasks / 1e9 / runtime_sec_max, in __bench_numa()
1572 if (g->p.show_details >= 2) { in __bench_numa()
1575 for (p = 0; p < g->p.nr_proc; p++) { in __bench_numa()
1576 for (t = 0; t < g->p.nr_threads; t++) { in __bench_numa()
1578 td = g->threads + p*g->p.nr_threads + t; in __bench_numa()
1579 snprintf(tname, 32, "process%d:thread%d", p, t); in __bench_numa()
1613 static void init_params(struct params *p, const char *name, int argc, const char **argv) in init_params() argument
1624 memset(p, 0, sizeof(*p)); in init_params()
1628 p->serialize_startup = 1; in init_params()
1629 p->data_reads = true; in init_params()
1630 p->data_writes = true; in init_params()
1631 p->data_backwards = true; in init_params()
1632 p->data_rand_walk = true; in init_params()
1633 p->nr_loops = -1; in init_params()
1634 p->init_random = true; in init_params()
1635 p->mb_global_str = "1"; in init_params()
1636 p->nr_proc = 1; in init_params()
1637 p->nr_threads = 1; in init_params()
1638 p->nr_secs = 5; in init_params()
1639 p->run_all = argc == 1; in init_params()