Lines Matching refs:rec
338 static void map_collect_percpu(struct datarec *values, struct record *rec) in map_collect_percpu() argument
351 rec->timestamp = gettime(); in map_collect_percpu()
355 rec->cpu[i].processed = READ_ONCE(values[i].processed); in map_collect_percpu()
356 rec->cpu[i].dropped = READ_ONCE(values[i].dropped); in map_collect_percpu()
357 rec->cpu[i].issue = READ_ONCE(values[i].issue); in map_collect_percpu()
358 rec->cpu[i].xdp_pass = READ_ONCE(values[i].xdp_pass); in map_collect_percpu()
359 rec->cpu[i].xdp_drop = READ_ONCE(values[i].xdp_drop); in map_collect_percpu()
360 rec->cpu[i].xdp_redirect = READ_ONCE(values[i].xdp_redirect); in map_collect_percpu()
362 sum_processed += rec->cpu[i].processed; in map_collect_percpu()
363 sum_dropped += rec->cpu[i].dropped; in map_collect_percpu()
364 sum_issue += rec->cpu[i].issue; in map_collect_percpu()
365 sum_xdp_pass += rec->cpu[i].xdp_pass; in map_collect_percpu()
366 sum_xdp_drop += rec->cpu[i].xdp_drop; in map_collect_percpu()
367 sum_xdp_redirect += rec->cpu[i].xdp_redirect; in map_collect_percpu()
370 rec->total.processed = sum_processed; in map_collect_percpu()
371 rec->total.dropped = sum_dropped; in map_collect_percpu()
372 rec->total.issue = sum_issue; in map_collect_percpu()
373 rec->total.xdp_pass = sum_xdp_pass; in map_collect_percpu()
374 rec->total.xdp_drop = sum_xdp_drop; in map_collect_percpu()
375 rec->total.xdp_redirect = sum_xdp_redirect; in map_collect_percpu()
378 static int map_collect_percpu_devmap(int map_fd, struct stats_record *rec) in map_collect_percpu_devmap() argument
413 hash_for_each_possible(rec->xmit_map, e, node, pair) { in map_collect_percpu_devmap()
427 hash_add(rec->xmit_map, &x->node, pair); in map_collect_percpu_devmap()
448 struct stats_record *rec; in alloc_stats_record() local
451 rec = calloc(1, sizeof(*rec) + sample_n_cpus * sizeof(struct record)); in alloc_stats_record()
452 if (!rec) { in alloc_stats_record()
458 rec->rx_cnt.cpu = alloc_record_per_cpu(); in alloc_stats_record()
459 if (!rec->rx_cnt.cpu) { in alloc_stats_record()
467 rec->redir_err[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
468 if (!rec->redir_err[i].cpu) { in alloc_stats_record()
474 free(rec->redir_err[i].cpu); in alloc_stats_record()
480 rec->kthread.cpu = alloc_record_per_cpu(); in alloc_stats_record()
481 if (!rec->kthread.cpu) { in alloc_stats_record()
489 rec->exception[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
490 if (!rec->exception[i].cpu) { in alloc_stats_record()
496 free(rec->exception[i].cpu); in alloc_stats_record()
502 rec->devmap_xmit.cpu = alloc_record_per_cpu(); in alloc_stats_record()
503 if (!rec->devmap_xmit.cpu) { in alloc_stats_record()
510 hash_init(rec->xmit_map); in alloc_stats_record()
513 rec->enq[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
514 if (!rec->enq[i].cpu) { in alloc_stats_record()
520 free(rec->enq[i].cpu); in alloc_stats_record()
526 return rec; in alloc_stats_record()
529 free(rec->devmap_xmit.cpu); in alloc_stats_record()
532 free(rec->exception[i].cpu); in alloc_stats_record()
534 free(rec->kthread.cpu); in alloc_stats_record()
537 free(rec->redir_err[i].cpu); in alloc_stats_record()
539 free(rec->rx_cnt.cpu); in alloc_stats_record()
541 free(rec); in alloc_stats_record()
650 struct record *rec, *prev; in stats_get_rx_cnt() local
654 rec = &stats_rec->rx_cnt; in stats_get_rx_cnt()
656 t = calc_period(rec, prev); in stats_get_rx_cnt()
659 struct datarec *r = &rec->cpu[i]; in stats_get_rx_cnt()
676 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
677 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
678 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
693 struct record *rec, *prev; in stats_get_cpumap_enqueue() local
699 rec = &stats_rec->enq[to_cpu]; in stats_get_cpumap_enqueue()
701 t = calc_period(rec, prev); in stats_get_cpumap_enqueue()
703 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
704 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
705 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
722 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_enqueue()
748 struct record *rec, *prev; in stats_get_cpumap_remote() local
752 rec = &stats_rec->kthread; in stats_get_cpumap_remote()
754 t = calc_period(rec, prev); in stats_get_cpumap_remote()
756 calc_xdp_pps(&rec->total, &prev->total, &xdp_pass, &xdp_drop, in stats_get_cpumap_remote()
766 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_remote()
786 struct record *rec, *prev; in stats_get_cpumap_kthread() local
790 rec = &stats_rec->kthread; in stats_get_cpumap_kthread()
792 t = calc_period(rec, prev); in stats_get_cpumap_kthread()
794 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
795 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
796 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
803 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_kthread()
825 struct record *rec, *prev; in stats_get_redirect_cnt() local
829 rec = &stats_rec->redir_err[0]; in stats_get_redirect_cnt()
831 t = calc_period(rec, prev); in stats_get_redirect_cnt()
833 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_cnt()
846 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_redirect_cnt()
857 struct record *rec, *prev; in stats_get_redirect_err_cnt() local
864 rec = &stats_rec->redir_err[rec_i]; in stats_get_redirect_err_cnt()
866 t = calc_period(rec, prev); in stats_get_redirect_err_cnt()
868 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_redirect_err_cnt()
879 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_err_cnt()
907 struct record *rec, *prev; in stats_get_exception_cnt() local
911 rec = &stats_rec->exception[rec_i]; in stats_get_exception_cnt()
913 t = calc_period(rec, prev); in stats_get_exception_cnt()
915 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_exception_cnt()
924 struct datarec *r = &rec->cpu[i]; in stats_get_exception_cnt()
952 struct record *rec, *prev; in stats_get_devmap_xmit() local
956 rec = &stats_rec->devmap_xmit; in stats_get_devmap_xmit()
958 t = calc_period(rec, prev); in stats_get_devmap_xmit()
960 struct datarec *r = &rec->cpu[i]; in stats_get_devmap_xmit()
981 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
982 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
983 info = calc_info_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
986 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
1385 static int sample_stats_collect(struct stats_record *rec) in sample_stats_collect() argument
1390 map_collect_percpu(sample_mmap[MAP_RX], &rec->rx_cnt); in sample_stats_collect()
1393 map_collect_percpu(sample_mmap[MAP_REDIRECT_ERR], &rec->redir_err[0]); in sample_stats_collect()
1398 &rec->redir_err[i]); in sample_stats_collect()
1404 &rec->enq[i]); in sample_stats_collect()
1408 &rec->kthread); in sample_stats_collect()
1413 &rec->exception[i]); in sample_stats_collect()
1416 map_collect_percpu(sample_mmap[MAP_DEVMAP_XMIT], &rec->devmap_xmit); in sample_stats_collect()
1419 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, interval); 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, interval); in sample_run()
1594 free_stats_record(rec); in sample_run()