Lines Matching refs:rec

340 static void map_collect_percpu(struct datarec *values, struct record *rec)  in map_collect_percpu()  argument
353 rec->timestamp = gettime(); in map_collect_percpu()
357 rec->cpu[i].processed = READ_ONCE(values[i].processed); in map_collect_percpu()
358 rec->cpu[i].dropped = READ_ONCE(values[i].dropped); in map_collect_percpu()
359 rec->cpu[i].issue = READ_ONCE(values[i].issue); in map_collect_percpu()
360 rec->cpu[i].xdp_pass = READ_ONCE(values[i].xdp_pass); in map_collect_percpu()
361 rec->cpu[i].xdp_drop = READ_ONCE(values[i].xdp_drop); in map_collect_percpu()
362 rec->cpu[i].xdp_redirect = READ_ONCE(values[i].xdp_redirect); in map_collect_percpu()
364 sum_processed += rec->cpu[i].processed; in map_collect_percpu()
365 sum_dropped += rec->cpu[i].dropped; in map_collect_percpu()
366 sum_issue += rec->cpu[i].issue; in map_collect_percpu()
367 sum_xdp_pass += rec->cpu[i].xdp_pass; in map_collect_percpu()
368 sum_xdp_drop += rec->cpu[i].xdp_drop; in map_collect_percpu()
369 sum_xdp_redirect += rec->cpu[i].xdp_redirect; in map_collect_percpu()
372 rec->total.processed = sum_processed; in map_collect_percpu()
373 rec->total.dropped = sum_dropped; in map_collect_percpu()
374 rec->total.issue = sum_issue; in map_collect_percpu()
375 rec->total.xdp_pass = sum_xdp_pass; in map_collect_percpu()
376 rec->total.xdp_drop = sum_xdp_drop; in map_collect_percpu()
377 rec->total.xdp_redirect = sum_xdp_redirect; in map_collect_percpu()
380 static int map_collect_percpu_devmap(int map_fd, struct stats_record *rec) in map_collect_percpu_devmap() argument
415 hash_for_each_possible(rec->xmit_map, e, node, pair) { in map_collect_percpu_devmap()
429 hash_add(rec->xmit_map, &x->node, pair); in map_collect_percpu_devmap()
450 struct stats_record *rec; in alloc_stats_record() local
453 rec = calloc(1, sizeof(*rec) + sample_n_cpus * sizeof(struct record)); in alloc_stats_record()
454 if (!rec) { in alloc_stats_record()
460 rec->rx_cnt.cpu = alloc_record_per_cpu(); in alloc_stats_record()
461 if (!rec->rx_cnt.cpu) { in alloc_stats_record()
469 rec->redir_err[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
470 if (!rec->redir_err[i].cpu) { in alloc_stats_record()
476 free(rec->redir_err[i].cpu); in alloc_stats_record()
482 rec->kthread.cpu = alloc_record_per_cpu(); in alloc_stats_record()
483 if (!rec->kthread.cpu) { in alloc_stats_record()
491 rec->exception[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
492 if (!rec->exception[i].cpu) { in alloc_stats_record()
498 free(rec->exception[i].cpu); in alloc_stats_record()
504 rec->devmap_xmit.cpu = alloc_record_per_cpu(); in alloc_stats_record()
505 if (!rec->devmap_xmit.cpu) { in alloc_stats_record()
512 hash_init(rec->xmit_map); in alloc_stats_record()
515 rec->enq[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
516 if (!rec->enq[i].cpu) { in alloc_stats_record()
522 free(rec->enq[i].cpu); in alloc_stats_record()
528 return rec; in alloc_stats_record()
531 free(rec->devmap_xmit.cpu); in alloc_stats_record()
534 free(rec->exception[i].cpu); in alloc_stats_record()
536 free(rec->kthread.cpu); in alloc_stats_record()
539 free(rec->redir_err[i].cpu); in alloc_stats_record()
541 free(rec->rx_cnt.cpu); in alloc_stats_record()
543 free(rec); in alloc_stats_record()
652 struct record *rec, *prev; in stats_get_rx_cnt() local
656 rec = &stats_rec->rx_cnt; in stats_get_rx_cnt()
658 t = calc_period(rec, prev); in stats_get_rx_cnt()
661 struct datarec *r = &rec->cpu[i]; in stats_get_rx_cnt()
678 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
679 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
680 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
695 struct record *rec, *prev; in stats_get_cpumap_enqueue() local
701 rec = &stats_rec->enq[to_cpu]; in stats_get_cpumap_enqueue()
703 t = calc_period(rec, prev); in stats_get_cpumap_enqueue()
705 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
706 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
707 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
724 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_enqueue()
750 struct record *rec, *prev; in stats_get_cpumap_remote() local
754 rec = &stats_rec->kthread; in stats_get_cpumap_remote()
756 t = calc_period(rec, prev); in stats_get_cpumap_remote()
758 calc_xdp_pps(&rec->total, &prev->total, &xdp_pass, &xdp_drop, in stats_get_cpumap_remote()
768 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_remote()
788 struct record *rec, *prev; in stats_get_cpumap_kthread() local
792 rec = &stats_rec->kthread; in stats_get_cpumap_kthread()
794 t = calc_period(rec, prev); in stats_get_cpumap_kthread()
796 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
797 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
798 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
805 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_kthread()
827 struct record *rec, *prev; in stats_get_redirect_cnt() local
831 rec = &stats_rec->redir_err[0]; in stats_get_redirect_cnt()
833 t = calc_period(rec, prev); in stats_get_redirect_cnt()
835 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_cnt()
848 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_redirect_cnt()
859 struct record *rec, *prev; in stats_get_redirect_err_cnt() local
866 rec = &stats_rec->redir_err[rec_i]; in stats_get_redirect_err_cnt()
868 t = calc_period(rec, prev); in stats_get_redirect_err_cnt()
870 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_redirect_err_cnt()
881 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_err_cnt()
909 struct record *rec, *prev; in stats_get_exception_cnt() local
913 rec = &stats_rec->exception[rec_i]; in stats_get_exception_cnt()
915 t = calc_period(rec, prev); in stats_get_exception_cnt()
917 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_exception_cnt()
926 struct datarec *r = &rec->cpu[i]; in stats_get_exception_cnt()
954 struct record *rec, *prev; in stats_get_devmap_xmit() local
958 rec = &stats_rec->devmap_xmit; in stats_get_devmap_xmit()
960 t = calc_period(rec, prev); in stats_get_devmap_xmit()
962 struct datarec *r = &rec->cpu[i]; in stats_get_devmap_xmit()
983 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
984 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
985 info = calc_info_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
988 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
1386 static int sample_stats_collect(struct stats_record *rec) in sample_stats_collect() argument
1391 map_collect_percpu(sample_mmap[MAP_RX], &rec->rx_cnt); in sample_stats_collect()
1394 map_collect_percpu(sample_mmap[MAP_REDIRECT_ERR], &rec->redir_err[0]); in sample_stats_collect()
1399 &rec->redir_err[i]); in sample_stats_collect()
1405 &rec->enq[i]); in sample_stats_collect()
1409 &rec->kthread); in sample_stats_collect()
1414 &rec->exception[i]); in sample_stats_collect()
1417 map_collect_percpu(sample_mmap[MAP_DEVMAP_XMIT], &rec->devmap_xmit); in sample_stats_collect()
1420 if (map_collect_percpu_devmap(bpf_map__fd(sample_map[MAP_DEVMAP_XMIT_MULTI]), rec) < 0) in sample_stats_collect()
1497 static int sample_timer_cb(int timerfd, struct stats_record **rec, in sample_timer_cb() argument
1508 swap(prev, rec); in sample_timer_cb()
1509 ret = sample_stats_collect(*rec); in sample_timer_cb()
1527 sample_stats_print(sample_mask, *rec, *prev, line); in sample_timer_cb()
1535 struct stats_record *rec, *prev; in sample_run() local
1559 rec = alloc_stats_record(); in sample_run()
1560 if (!rec) in sample_run()
1566 ret = sample_stats_collect(rec); in sample_run()
1582 ret = sample_timer_cb(timerfd, &rec, &prev); in sample_run()
1594 free_stats_record(rec); in sample_run()