Lines Matching refs:rec
341 static void map_collect_percpu(struct datarec *values, struct record *rec) in map_collect_percpu() argument
354 rec->timestamp = gettime(); in map_collect_percpu()
358 rec->cpu[i].processed = READ_ONCE(values[i].processed); in map_collect_percpu()
359 rec->cpu[i].dropped = READ_ONCE(values[i].dropped); in map_collect_percpu()
360 rec->cpu[i].issue = READ_ONCE(values[i].issue); in map_collect_percpu()
361 rec->cpu[i].xdp_pass = READ_ONCE(values[i].xdp_pass); in map_collect_percpu()
362 rec->cpu[i].xdp_drop = READ_ONCE(values[i].xdp_drop); in map_collect_percpu()
363 rec->cpu[i].xdp_redirect = READ_ONCE(values[i].xdp_redirect); in map_collect_percpu()
365 sum_processed += rec->cpu[i].processed; in map_collect_percpu()
366 sum_dropped += rec->cpu[i].dropped; in map_collect_percpu()
367 sum_issue += rec->cpu[i].issue; in map_collect_percpu()
368 sum_xdp_pass += rec->cpu[i].xdp_pass; in map_collect_percpu()
369 sum_xdp_drop += rec->cpu[i].xdp_drop; in map_collect_percpu()
370 sum_xdp_redirect += rec->cpu[i].xdp_redirect; in map_collect_percpu()
373 rec->total.processed = sum_processed; in map_collect_percpu()
374 rec->total.dropped = sum_dropped; in map_collect_percpu()
375 rec->total.issue = sum_issue; in map_collect_percpu()
376 rec->total.xdp_pass = sum_xdp_pass; in map_collect_percpu()
377 rec->total.xdp_drop = sum_xdp_drop; in map_collect_percpu()
378 rec->total.xdp_redirect = sum_xdp_redirect; in map_collect_percpu()
381 static int map_collect_percpu_devmap(int map_fd, struct stats_record *rec) in map_collect_percpu_devmap() argument
416 hash_for_each_possible(rec->xmit_map, e, node, pair) { in map_collect_percpu_devmap()
430 hash_add(rec->xmit_map, &x->node, pair); in map_collect_percpu_devmap()
451 struct stats_record *rec; in alloc_stats_record() local
454 rec = calloc(1, sizeof(*rec) + sample_n_cpus * sizeof(struct record)); in alloc_stats_record()
455 if (!rec) { in alloc_stats_record()
461 rec->rx_cnt.cpu = alloc_record_per_cpu(); in alloc_stats_record()
462 if (!rec->rx_cnt.cpu) { in alloc_stats_record()
470 rec->redir_err[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
471 if (!rec->redir_err[i].cpu) { in alloc_stats_record()
477 free(rec->redir_err[i].cpu); in alloc_stats_record()
483 rec->kthread.cpu = alloc_record_per_cpu(); in alloc_stats_record()
484 if (!rec->kthread.cpu) { in alloc_stats_record()
492 rec->exception[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
493 if (!rec->exception[i].cpu) { in alloc_stats_record()
499 free(rec->exception[i].cpu); in alloc_stats_record()
505 rec->devmap_xmit.cpu = alloc_record_per_cpu(); in alloc_stats_record()
506 if (!rec->devmap_xmit.cpu) { in alloc_stats_record()
513 hash_init(rec->xmit_map); in alloc_stats_record()
516 rec->enq[i].cpu = alloc_record_per_cpu(); in alloc_stats_record()
517 if (!rec->enq[i].cpu) { in alloc_stats_record()
523 free(rec->enq[i].cpu); in alloc_stats_record()
529 return rec; in alloc_stats_record()
532 free(rec->devmap_xmit.cpu); in alloc_stats_record()
535 free(rec->exception[i].cpu); in alloc_stats_record()
537 free(rec->kthread.cpu); in alloc_stats_record()
540 free(rec->redir_err[i].cpu); in alloc_stats_record()
542 free(rec->rx_cnt.cpu); in alloc_stats_record()
544 free(rec); in alloc_stats_record()
653 struct record *rec, *prev; in stats_get_rx_cnt() local
657 rec = &stats_rec->rx_cnt; in stats_get_rx_cnt()
659 t = calc_period(rec, prev); in stats_get_rx_cnt()
662 struct datarec *r = &rec->cpu[i]; in stats_get_rx_cnt()
679 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
680 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
681 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_rx_cnt()
696 struct record *rec, *prev; in stats_get_cpumap_enqueue() local
702 rec = &stats_rec->enq[to_cpu]; in stats_get_cpumap_enqueue()
704 t = calc_period(rec, prev); in stats_get_cpumap_enqueue()
706 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
707 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
708 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_enqueue()
725 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_enqueue()
751 struct record *rec, *prev; in stats_get_cpumap_remote() local
755 rec = &stats_rec->kthread; in stats_get_cpumap_remote()
757 t = calc_period(rec, prev); in stats_get_cpumap_remote()
759 calc_xdp_pps(&rec->total, &prev->total, &xdp_pass, &xdp_drop, in stats_get_cpumap_remote()
769 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_remote()
789 struct record *rec, *prev; in stats_get_cpumap_kthread() local
793 rec = &stats_rec->kthread; in stats_get_cpumap_kthread()
795 t = calc_period(rec, prev); in stats_get_cpumap_kthread()
797 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
798 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
799 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_cpumap_kthread()
806 struct datarec *r = &rec->cpu[i]; in stats_get_cpumap_kthread()
828 struct record *rec, *prev; in stats_get_redirect_cnt() local
832 rec = &stats_rec->redir_err[0]; in stats_get_redirect_cnt()
834 t = calc_period(rec, prev); in stats_get_redirect_cnt()
836 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_cnt()
849 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_redirect_cnt()
860 struct record *rec, *prev; in stats_get_redirect_err_cnt() local
867 rec = &stats_rec->redir_err[rec_i]; in stats_get_redirect_err_cnt()
869 t = calc_period(rec, prev); in stats_get_redirect_err_cnt()
871 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_redirect_err_cnt()
882 struct datarec *r = &rec->cpu[i]; in stats_get_redirect_err_cnt()
910 struct record *rec, *prev; in stats_get_exception_cnt() local
914 rec = &stats_rec->exception[rec_i]; in stats_get_exception_cnt()
916 t = calc_period(rec, prev); in stats_get_exception_cnt()
918 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_exception_cnt()
927 struct datarec *r = &rec->cpu[i]; in stats_get_exception_cnt()
955 struct record *rec, *prev; in stats_get_devmap_xmit() local
959 rec = &stats_rec->devmap_xmit; in stats_get_devmap_xmit()
961 t = calc_period(rec, prev); in stats_get_devmap_xmit()
963 struct datarec *r = &rec->cpu[i]; in stats_get_devmap_xmit()
984 pps = calc_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
985 drop = calc_drop_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
986 info = calc_info_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
989 err = calc_errs_pps(&rec->total, &prev->total, t); in stats_get_devmap_xmit()
1388 static int sample_stats_collect(struct stats_record *rec) in sample_stats_collect() argument
1393 map_collect_percpu(sample_mmap[MAP_RX], &rec->rx_cnt); in sample_stats_collect()
1396 map_collect_percpu(sample_mmap[MAP_REDIRECT_ERR], &rec->redir_err[0]); in sample_stats_collect()
1401 &rec->redir_err[i]); in sample_stats_collect()
1407 &rec->enq[i]); in sample_stats_collect()
1411 &rec->kthread); in sample_stats_collect()
1416 &rec->exception[i]); in sample_stats_collect()
1419 map_collect_percpu(sample_mmap[MAP_DEVMAP_XMIT], &rec->devmap_xmit); in sample_stats_collect()
1422 if (map_collect_percpu_devmap(bpf_map__fd(sample_map[MAP_DEVMAP_XMIT_MULTI]), rec) < 0) in sample_stats_collect()
1499 static int sample_timer_cb(int timerfd, struct stats_record **rec, in sample_timer_cb() argument
1510 swap(prev, rec); in sample_timer_cb()
1511 ret = sample_stats_collect(*rec); in sample_timer_cb()
1529 sample_stats_print(sample_mask, *rec, *prev, line); in sample_timer_cb()
1537 struct stats_record *rec, *prev; in sample_run() local
1561 rec = alloc_stats_record(); in sample_run()
1562 if (!rec) in sample_run()
1568 ret = sample_stats_collect(rec); in sample_run()
1584 ret = sample_timer_cb(timerfd, &rec, &prev); in sample_run()
1596 free_stats_record(rec); in sample_run()