Lines Matching refs:pci
346 struct per_cpu_info *pci = &pdi->cpus[new_count]; in resize_cpu_info() local
348 if (!pci->fd) { in resize_cpu_info()
349 pci->fd = -1; in resize_cpu_info()
350 memset(&pci->rb_last, 0, sizeof(pci->rb_last)); in resize_cpu_info()
351 pci->rb_last_entries = 0; in resize_cpu_info()
352 pci->last_sequence = -1; in resize_cpu_info()
359 struct per_cpu_info *pci; in get_cpu_info() local
364 pci = &pdi->cpus[cpu]; in get_cpu_info()
365 pci->cpu = cpu; in get_cpu_info()
366 return pci; in get_cpu_info()
408 static void insert_skip(struct per_cpu_info *pci, unsigned long start, in insert_skip() argument
413 for (sip = pci->skips_tail; sip != NULL; sip = sip->prev) { in insert_skip()
427 if (pci->skips_tail == NULL) in insert_skip()
428 pci->skips_head = pci->skips_tail = sip; in insert_skip()
430 sip->prev = pci->skips_tail; in insert_skip()
431 pci->skips_tail->next = sip; in insert_skip()
432 pci->skips_tail = sip; in insert_skip()
436 static void remove_sip(struct per_cpu_info *pci, struct skip_info *sip) in remove_sip() argument
440 pci->skips_head = pci->skips_tail = NULL; in remove_sip()
442 pci->skips_head = sip->next; in remove_sip()
446 pci->skips_tail = sip->prev; in remove_sip()
458 static int check_current_skips(struct per_cpu_info *pci, unsigned long seq) in check_current_skips() argument
462 for (sip = pci->skips_tail; sip != NULL; sip = sip->prev) { in check_current_skips()
466 remove_sip(pci, sip); in check_current_skips()
473 insert_skip(pci, seq + 1, sip->end); in check_current_skips()
491 struct per_cpu_info *pci = &pdi->cpus[cpu]; in collect_pdi_skips() local
493 for (sip = pci->skips_head; sip != NULL; sip = sip->next) { in collect_pdi_skips()
780 struct per_cpu_info *pci = get_cpu_info(pdi, t->bit->cpu); in __put_trace_last() local
782 rb_erase(&t->rb_node, &pci->rb_last); in __put_trace_last()
783 pci->rb_last_entries--; in __put_trace_last()
839 struct per_cpu_info *pci = get_cpu_info(pdi, t->bit->cpu); in trace_rb_insert_last() local
841 if (trace_rb_insert(t, &pci->rb_last)) in trace_rb_insert_last()
844 pci->rb_last_entries++; in trace_rb_insert_last()
846 if (pci->rb_last_entries > rb_batch * pdi->nfiles) { in trace_rb_insert_last()
847 struct rb_node *n = rb_first(&pci->rb_last); in trace_rb_insert_last()
904 struct per_cpu_info *pci, in trace_rb_find_last() argument
907 return trace_rb_find(pdi->dev, seq, &pci->rb_last, 0); in trace_rb_find_last()
1189 static inline void account_m(struct blk_io_trace *t, struct per_cpu_info *pci, in account_m() argument
1192 __account_m(&pci->io_stats, t, rw); in account_m()
1214 struct per_cpu_info *pci, int rw) in account_pc_queue() argument
1216 __account_pc_queue(&pci->io_stats, t, rw); in account_pc_queue()
1238 struct per_cpu_info *pci, int rw) in account_pc_issue() argument
1240 __account_pc_issue(&pci->io_stats, rw, t->bytes); in account_pc_issue()
1262 struct per_cpu_info *pci, int rw) in account_pc_requeue() argument
1264 __account_pc_requeue(&pci->io_stats, t, rw); in account_pc_requeue()
1282 struct per_cpu_info *pci, int rw) in account_pc_c() argument
1284 __account_pc_c(&pci->io_stats, rw); in account_pc_c()
1306 struct per_cpu_info *pci, int rw) in account_queue() argument
1308 __account_queue(&pci->io_stats, t, rw); in account_queue()
1328 static inline void account_c(struct blk_io_trace *t, struct per_cpu_info *pci, in account_c() argument
1331 __account_c(&pci->io_stats, rw, bytes); in account_c()
1353 struct per_cpu_info *pci, int rw) in account_issue() argument
1355 __account_issue(&pci->io_stats, rw, t->bytes); in account_issue()
1373 struct per_cpu_info *pci, int timer) in account_unplug() argument
1375 __account_unplug(&pci->io_stats, timer); in account_unplug()
1397 struct per_cpu_info *pci, int rw) in account_requeue() argument
1399 __account_requeue(&pci->io_stats, t, rw); in account_requeue()
1408 static void log_complete(struct per_dev_info *pdi, struct per_cpu_info *pci, in log_complete() argument
1411 process_fmt(act, pci, t, log_track_complete(pdi, t), 0, NULL); in log_complete()
1414 static void log_insert(struct per_dev_info *pdi, struct per_cpu_info *pci, in log_insert() argument
1417 process_fmt(act, pci, t, log_track_insert(pdi, t), 0, NULL); in log_insert()
1420 static void log_queue(struct per_cpu_info *pci, struct blk_io_trace *t, in log_queue() argument
1423 process_fmt(act, pci, t, -1, 0, NULL); in log_queue()
1426 static void log_issue(struct per_dev_info *pdi, struct per_cpu_info *pci, in log_issue() argument
1429 process_fmt(act, pci, t, log_track_issue(pdi, t), 0, NULL); in log_issue()
1432 static void log_merge(struct per_dev_info *pdi, struct per_cpu_info *pci, in log_merge() argument
1438 process_fmt(act, pci, t, -1ULL, 0, NULL); in log_merge()
1441 static void log_action(struct per_cpu_info *pci, struct blk_io_trace *t, in log_action() argument
1444 process_fmt(act, pci, t, -1ULL, 0, NULL); in log_action()
1447 static void log_generic(struct per_cpu_info *pci, struct blk_io_trace *t, in log_generic() argument
1450 process_fmt(act, pci, t, -1ULL, 0, NULL); in log_generic()
1453 static void log_unplug(struct per_cpu_info *pci, struct blk_io_trace *t, in log_unplug() argument
1456 process_fmt(act, pci, t, -1ULL, 0, NULL); in log_unplug()
1459 static void log_split(struct per_cpu_info *pci, struct blk_io_trace *t, in log_split() argument
1462 process_fmt(act, pci, t, -1ULL, 0, NULL); in log_split()
1465 static void log_pc(struct per_cpu_info *pci, struct blk_io_trace *t, char *act) in log_pc() argument
1469 process_fmt(act, pci, t, -1ULL, t->pdu_len, buf); in log_pc()
1473 struct per_cpu_info *pci) in dump_trace_pc() argument
1480 log_generic(pci, t, "Q"); in dump_trace_pc()
1481 account_pc_queue(t, pci, w); in dump_trace_pc()
1484 log_generic(pci, t, "G"); in dump_trace_pc()
1487 log_generic(pci, t, "S"); in dump_trace_pc()
1496 account_pc_requeue(t, pci, w); in dump_trace_pc()
1497 log_generic(pci, t, "R"); in dump_trace_pc()
1500 account_pc_issue(t, pci, w); in dump_trace_pc()
1504 log_pc(pci, t, "D"); in dump_trace_pc()
1509 log_pc(pci, t, "C"); in dump_trace_pc()
1510 account_pc_c(t, pci, w); in dump_trace_pc()
1513 log_pc(pci, t, "I"); in dump_trace_pc()
1522 struct per_cpu_info *pci) in dump_trace_fs() argument
1530 account_queue(t, pci, w); in dump_trace_fs()
1531 log_queue(pci, t, "Q"); in dump_trace_fs()
1534 log_insert(pdi, pci, t, "I"); in dump_trace_fs()
1537 account_m(t, pci, w); in dump_trace_fs()
1538 log_merge(pdi, pci, t, "M"); in dump_trace_fs()
1541 account_m(t, pci, w); in dump_trace_fs()
1542 log_merge(pdi, pci, t, "F"); in dump_trace_fs()
1546 log_generic(pci, t, "G"); in dump_trace_fs()
1549 log_generic(pci, t, "S"); in dump_trace_fs()
1558 account_requeue(t, pci, w); in dump_trace_fs()
1559 log_queue(pci, t, "R"); in dump_trace_fs()
1562 account_issue(t, pci, w); in dump_trace_fs()
1566 log_issue(pdi, pci, t, "D"); in dump_trace_fs()
1571 account_c(t, pci, w, t->bytes); in dump_trace_fs()
1572 log_complete(pdi, pci, t, "C"); in dump_trace_fs()
1575 log_action(pci, t, "P"); in dump_trace_fs()
1578 account_unplug(t, pci, 0); in dump_trace_fs()
1579 log_unplug(pci, t, "U"); in dump_trace_fs()
1582 account_unplug(t, pci, 1); in dump_trace_fs()
1583 log_unplug(pci, t, "UT"); in dump_trace_fs()
1586 log_split(pci, t, "X"); in dump_trace_fs()
1589 log_generic(pci, t, "B"); in dump_trace_fs()
1592 log_generic(pci, t, "A"); in dump_trace_fs()
1604 static void dump_trace(struct blk_io_trace *t, struct per_cpu_info *pci, in dump_trace() argument
1611 dump_trace_pc(t, pdi, pci); in dump_trace()
1613 dump_trace_fs(t, pdi, pci); in dump_trace()
1770 struct per_cpu_info *pci; in show_device_and_cpu_stats() local
1786 for (pci = pdi->cpus, j = 0; j < pdi->ncpus; j++, pci++) { in show_device_and_cpu_stats()
1787 if (!pci->nelems) in show_device_and_cpu_stats()
1790 ios = &pci->io_stats; in show_device_and_cpu_stats()
1909 struct per_cpu_info *pci = NULL; in sort_entries() local
1928 pci = NULL; in sort_entries()
1931 if (!pci || pci->cpu != bit->cpu) in sort_entries()
1932 pci = get_cpu_info(pdi, bit->cpu); in sort_entries()
1934 if (bit->sequence < pci->smallest_seq_read) in sort_entries()
1935 pci->smallest_seq_read = bit->sequence; in sort_entries()
1994 struct per_cpu_info *pci; in check_sequence() local
1997 pci = get_cpu_info(pdi, bit->cpu); in check_sequence()
1998 expected_sequence = pci->last_sequence + 1; in check_sequence()
2006 if (bit->sequence == pci->smallest_seq_read) in check_sequence()
2019 if (expected_sequence < pci->smallest_seq_read) { in check_sequence()
2020 __t = trace_rb_find_last(pdi, pci, expected_sequence); in check_sequence()
2030 if (check_current_skips(pci, bit->sequence)) in check_sequence()
2034 insert_skip(pci, expected_sequence, bit->sequence - 1); in check_sequence()
2042 struct per_cpu_info *pci = NULL; in show_entries_rb() local
2059 pci = NULL; in show_entries_rb()
2076 if (!pci || pci->cpu != bit->cpu) in show_entries_rb()
2077 pci = get_cpu_info(pdi, bit->cpu); in show_entries_rb()
2079 pci->last_sequence = bit->sequence; in show_entries_rb()
2081 pci->nelems++; in show_entries_rb()
2084 dump_trace(bit, pci, pdi); in show_entries_rb()
2317 struct per_cpu_info *pci = get_cpu_info(pdi, msp->cpu); in ms_prime() local
2321 for (i = 0; !is_done() && pci->fd >= 0 && i < rb_batch; i++) { in ms_prime()
2323 ret = read_data(pci->fd, bit, sizeof(*bit), 1, &pci->fdblock); in ms_prime()
2340 ret = read_data(pci->fd, ptr + sizeof(*bit), pdu_len, in ms_prime()
2341 1, &pci->fdblock); in ms_prime()
2386 cpu_mark_offline(pdi, pci->cpu); in ms_prime()
2387 close(pci->fd); in ms_prime()
2388 pci->fd = -1; in ms_prime()
2413 struct per_cpu_info *pci = get_cpu_info(pdi, cpu); in setup_file() local
2415 pci->cpu = cpu; in setup_file()
2416 pci->fdblock = -1; in setup_file()
2428 len = sprintf(pci->fname, "%s/", input_dir); in setup_file()
2430 snprintf(pci->fname + len, sizeof(pci->fname)-1-len, in setup_file()
2431 "%s.blktrace.%d", pdi->name, pci->cpu); in setup_file()
2432 if (stat(pci->fname, &st) < 0) in setup_file()
2437 pci->fd = open(pci->fname, O_RDONLY); in setup_file()
2438 if (pci->fd < 0) { in setup_file()
2439 perror(pci->fname); in setup_file()
2443 printf("Input file %s added\n", pci->fname); in setup_file()
2444 cpu_mark_online(pdi, pci->cpu); in setup_file()
2447 ms_alloc(pdi, pci->cpu); in setup_file()
2456 struct per_cpu_info *pci; in handle() local
2463 pci = get_cpu_info(pdi, msp->cpu); in handle()
2464 pci->nelems++; in handle()
2473 dump_trace(bit, pci, pdi); in handle()