• Home
  • Raw
  • Download

Lines Matching +full:1 +full:- +full:15

1 // SPDX-License-Identifier: GPL-2.0
4 * Utility to get per-pid and per-tgid delay accounting statistics
12 * gcc -I/usr/src/linux/include getdelays.c -o getdelays
38 #define GENLMSG_PAYLOAD(glh) (NLMSG_PAYLOAD(glh, 0) - GENL_HDRLEN)
40 #define NLA_PAYLOAD(len) (len - NLA_HDRLEN)
77 fprintf(stderr, "getdelays [-dilv] [-w logfile] [-r bufsize] " in usage()
78 "[-m cpumask] [-t tgid] [-p pid]\n"); in usage()
79 fprintf(stderr, " -d: print delayacct stats\n"); in usage()
80 fprintf(stderr, " -i: print IO accounting (works only with -p)\n"); in usage()
81 fprintf(stderr, " -l: listen forever\n"); in usage()
82 fprintf(stderr, " -v: debug on\n"); in usage()
83 fprintf(stderr, " -C: container path\n"); in usage()
96 return -1; in create_nl_socket()
115 return -1; in create_nl_socket()
138 na->nla_type = nla_type; in send_cmd()
139 na->nla_len = nla_len + NLA_HDRLEN; in send_cmd()
141 msg.n.nlmsg_len += NLMSG_ALIGN(na->nla_len); in send_cmd()
151 buflen -= r; in send_cmd()
153 return -1; in send_cmd()
178 strlen(TASKSTATS_GENL_NAME)+1); in get_family_id()
188 na = (struct nlattr *) ((char *) na + NLA_ALIGN(na->nla_len)); in get_family_id()
189 if (na->nla_type == CTRL_ATTR_FAMILY_ID) { in get_family_id()
195 #define average_ms(t, c) (t / 1000000ULL / (c ? c : 1))
199 printf("\n\nCPU %15s%15s%15s%15s%15s\n" in print_delayacct()
200 " %15llu%15llu%15llu%15llu%15.3fms\n" in print_delayacct()
201 "IO %15s%15s%15s\n" in print_delayacct()
202 " %15llu%15llu%15llums\n" in print_delayacct()
203 "SWAP %15s%15s%15s\n" in print_delayacct()
204 " %15llu%15llu%15llums\n" in print_delayacct()
205 "RECLAIM %12s%15s%15s\n" in print_delayacct()
206 " %15llu%15llu%15llums\n" in print_delayacct()
207 "THRASHING%12s%15s%15s\n" in print_delayacct()
208 " %15llu%15llu%15llums\n", in print_delayacct()
211 (unsigned long long)t->cpu_count, in print_delayacct()
212 (unsigned long long)t->cpu_run_real_total, in print_delayacct()
213 (unsigned long long)t->cpu_run_virtual_total, in print_delayacct()
214 (unsigned long long)t->cpu_delay_total, in print_delayacct()
215 average_ms((double)t->cpu_delay_total, t->cpu_count), in print_delayacct()
217 (unsigned long long)t->blkio_count, in print_delayacct()
218 (unsigned long long)t->blkio_delay_total, in print_delayacct()
219 average_ms(t->blkio_delay_total, t->blkio_count), in print_delayacct()
221 (unsigned long long)t->swapin_count, in print_delayacct()
222 (unsigned long long)t->swapin_delay_total, in print_delayacct()
223 average_ms(t->swapin_delay_total, t->swapin_count), in print_delayacct()
225 (unsigned long long)t->freepages_count, in print_delayacct()
226 (unsigned long long)t->freepages_delay_total, in print_delayacct()
227 average_ms(t->freepages_delay_total, t->freepages_count), in print_delayacct()
229 (unsigned long long)t->thrashing_count, in print_delayacct()
230 (unsigned long long)t->thrashing_delay_total, in print_delayacct()
231 average_ms(t->thrashing_delay_total, t->thrashing_count)); in print_delayacct()
236 printf("\n\nTask %15s%15s\n" in task_context_switch_counts()
237 " %15llu%15llu\n", in task_context_switch_counts()
239 (unsigned long long)t->nvcsw, (unsigned long long)t->nivcsw); in task_context_switch_counts()
245 "uninterruptible %llu\n", (unsigned long long)c->nr_sleeping, in print_cgroupstats()
246 (unsigned long long)c->nr_io_wait, in print_cgroupstats()
247 (unsigned long long)c->nr_running, in print_cgroupstats()
248 (unsigned long long)c->nr_stopped, in print_cgroupstats()
249 (unsigned long long)c->nr_uninterruptible); in print_cgroupstats()
256 t->ac_comm, in print_ioacct()
257 (unsigned long long)t->read_bytes, in print_ioacct()
258 (unsigned long long)t->write_bytes, in print_ioacct()
259 (unsigned long long)t->cancelled_write_bytes); in print_ioacct()
270 int nl_sd = -1; in main()
297 print_delays = 1; in main()
301 print_io_accounting = 1; in main()
305 print_task_context_switch_counts = 1; in main()
308 containerset = 1; in main()
314 write_file = 1; in main()
320 err(1, "Invalid rcv buf size\n"); in main()
324 cpumask[sizeof(cpumask) - 1] = '\0'; in main()
325 maskset = 1; in main()
331 err(1, "Invalid tgid\n"); in main()
337 err(1, "Invalid pid\n"); in main()
343 if (sigemptyset(&sigset) == -1) in main()
344 err(1, "Failed to empty sigset"); in main()
346 err(1, "Failed to set sigchld in sigset"); in main()
352 err(1, "Fork failed\n"); in main()
354 if (execvp(argv[optind - 1], in main()
355 &argv[optind - 1]) < 0) in main()
356 exit(-1); in main()
360 forking = 1; in main()
364 dbg = 1; in main()
368 loop = 1; in main()
372 exit(-1); in main()
379 if (fd == -1) { in main()
381 exit(1); in main()
387 err(1, "error creating Netlink socket\n"); in main()
401 &cpumask, strlen(cpumask) + 1); in main()
410 fprintf(stderr, "Select either -t or -C, not both\n"); in main()
464 err->error); in main()
477 len += NLA_ALIGN(na->nla_len); in main()
478 switch (na->nla_type) { in main()
482 aggr_len = NLA_PAYLOAD(na->nla_len); in main()
488 switch (na->nla_type) { in main()
508 if (write(fd, NLA_DATA(na), na->nla_len) < 0) { in main()
509 err(1,"write error\n"); in main()
520 na->nla_type); in main()
523 len2 += NLA_ALIGN(na->nla_len); in main()
525 NLA_ALIGN(na->nla_len)); in main()
534 na->nla_type); in main()
545 &cpumask, strlen(cpumask) + 1); in main()