52b07f5322ebcf5b3aee7fdff502be76dd8c2ae1
[dragonfly.git] / test / dsched_fq / fqstats.c
1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <sys/sysctl.h>
4
5 #include <db.h>
6 #include <err.h>
7 #include <fcntl.h>
8 #include <paths.h>
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <string.h>
12
13 #include "../../sys/dsched/fq/dsched_fq.h"
14
15
16 int main(void)
17 {
18         struct dsched_fq_stats  fq_stats;
19         size_t n = sizeof(struct dsched_fq_stats);
20
21         if (sysctlbyname("kern.fq_stats", &fq_stats, &n, NULL, 0) != 0)
22                 err(1, "sysctlbyname");
23
24         printf( "Allocations\n"
25                 "thread_ctx:\t%d\n"
26                 "thread_io:\t%d\n"
27                 "disk_ctx:\t%d\n"
28                 "---------------------------------------------\n"
29                 "Procs/Threads tracked\n"
30                 "procs:\t\t%d\n"
31                 "threads:\t%d\n"
32                 "---------------------------------------------\n"
33                 "Proccesses\n"
34                 "Rate limited:\t%d\n"
35                 "---------------------------------------------\n"
36                 "Transactions\n"
37                 "Issued:\t\t%d\n"
38                 "Completed:\t%d\n"
39                 "without thread_ctx:\t%d\n",
40
41                 fq_stats.tdctx_allocations,
42                 fq_stats.tdio_allocations,
43                 fq_stats.diskctx_allocations,
44
45                 fq_stats.nprocs,
46                 fq_stats.nthreads,
47
48                 fq_stats.procs_limited,
49
50                 fq_stats.transactions,
51                 fq_stats.transactions_completed,
52                 fq_stats.no_tdctx
53                 );
54
55
56         return 0;
57 }