MCPcopy Create free account
hub / github.com/axboe/liburing / __show_stats

Function __show_stats

examples/proxy.c:550–611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

548}
549
550static void __show_stats(struct conn *c)
551{
552 unsigned long msec, qps;
553 unsigned long bytes, bw;
554 struct conn_dir *cd;
555 int i;
556
557 if (c->flags & (CONN_F_STATS_SHOWN | CONN_F_REAPED))
558 return;
559 if (!(c->flags & CONN_F_STARTED))
560 return;
561
562 if (!(c->flags & CONN_F_END_TIME))
563 gettimeofday(&c->end_time, NULL);
564
565 msec = (c->end_time.tv_sec - c->start_time.tv_sec) * 1000;
566 msec += (c->end_time.tv_usec - c->start_time.tv_usec) / 1000;
567
568 qps = 0;
569 for (i = 0; i < 2; i++)
570 qps += c->cd[i].rcv + c->cd[i].snd;
571
572 if (!qps)
573 return;
574
575 if (msec)
576 qps = (qps * 1000) / msec;
577
578 printf("Conn %d/(in_fd=%d, out_fd=%d): qps=%lu, msec=%lu\n", c->tid,
579 c->in_fd, c->out_fd, qps, msec);
580
581 bytes = 0;
582 for (i = 0; i < 2; i++) {
583 cd = &c->cd[i];
584
585 if (!cd->in_bytes && !cd->out_bytes && !cd->snd && !cd->rcv)
586 continue;
587
588 bytes += cd->in_bytes;
589 bytes += cd->out_bytes;
590
591 printf("\t%3d: rcv=%u (short=%u, enobufs=%d), snd=%u (short=%u,"
592 " busy=%u, enobufs=%d)\n", i, cd->rcv, cd->rcv_shrt,
593 cd->rcv_enobufs, cd->snd, cd->snd_shrt, cd->snd_busy,
594 cd->snd_enobufs);
595 printf("\t : in_bytes=%lu (Kb %lu), out_bytes=%lu (Kb %lu)\n",
596 cd->in_bytes, cd->in_bytes >> 10,
597 cd->out_bytes, cd->out_bytes >> 10);
598 printf("\t : mshot_rcv=%d, mshot_snd=%d\n", cd->rcv_mshot,
599 cd->snd_mshot);
600 show_buckets(cd);
601
602 }
603 if (msec) {
604 bytes *= 8UL;
605 bw = bytes / 1000;
606 bw /= msec;
607 printf("\tBW=%'luMbit\n", bw);

Callers 2

show_statsFunction · 0.85
handle_closeFunction · 0.85

Calls 1

show_bucketsFunction · 0.85

Tested by

no test coverage detected