Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'trace-tools-v6.13-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull tracing tool fix from Steven Rostedt:

- Fix rtla divide by zero when the count is zero in histograms

* tag 'trace-tools-v6.13-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
rtla/timerlat: Fix histogram ALL for zero samples

+96 -81
+96 -81
tools/tracing/rtla/src/timerlat_hist.c
··· 282 282 } 283 283 284 284 /* 285 + * format_summary_value - format a line of summary value (min, max or avg) 286 + * of hist data 287 + */ 288 + static void format_summary_value(struct trace_seq *seq, 289 + int count, 290 + unsigned long long val, 291 + bool avg) 292 + { 293 + if (count) 294 + trace_seq_printf(seq, "%9llu ", avg ? val / count : val); 295 + else 296 + trace_seq_printf(seq, "%9c ", '-'); 297 + } 298 + 299 + /* 285 300 * timerlat_print_summary - print the summary of the hist data to the output 286 301 */ 287 302 static void ··· 343 328 if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count) 344 329 continue; 345 330 346 - if (!params->no_irq) { 347 - if (data->hist[cpu].irq_count) 348 - trace_seq_printf(trace->seq, "%9llu ", 349 - data->hist[cpu].min_irq); 350 - else 351 - trace_seq_printf(trace->seq, " - "); 352 - } 331 + if (!params->no_irq) 332 + format_summary_value(trace->seq, 333 + data->hist[cpu].irq_count, 334 + data->hist[cpu].min_irq, 335 + false); 353 336 354 - if (!params->no_thread) { 355 - if (data->hist[cpu].thread_count) 356 - trace_seq_printf(trace->seq, "%9llu ", 357 - data->hist[cpu].min_thread); 358 - else 359 - trace_seq_printf(trace->seq, " - "); 360 - } 337 + if (!params->no_thread) 338 + format_summary_value(trace->seq, 339 + data->hist[cpu].thread_count, 340 + data->hist[cpu].min_thread, 341 + false); 361 342 362 - if (params->user_hist) { 363 - if (data->hist[cpu].user_count) 364 - trace_seq_printf(trace->seq, "%9llu ", 365 - data->hist[cpu].min_user); 366 - else 367 - trace_seq_printf(trace->seq, " - "); 368 - } 343 + if (params->user_hist) 344 + format_summary_value(trace->seq, 345 + data->hist[cpu].user_count, 346 + data->hist[cpu].min_user, 347 + false); 369 348 } 370 349 trace_seq_printf(trace->seq, "\n"); 371 350 ··· 373 364 if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count) 374 365 continue; 375 366 376 - if (!params->no_irq) { 377 - if (data->hist[cpu].irq_count) 378 - trace_seq_printf(trace->seq, "%9llu ", 379 - data->hist[cpu].sum_irq / data->hist[cpu].irq_count); 380 - else 381 - trace_seq_printf(trace->seq, " - "); 382 - } 367 + if (!params->no_irq) 368 + format_summary_value(trace->seq, 369 + data->hist[cpu].irq_count, 370 + data->hist[cpu].sum_irq, 371 + true); 383 372 384 - if (!params->no_thread) { 385 - if (data->hist[cpu].thread_count) 386 - trace_seq_printf(trace->seq, "%9llu ", 387 - data->hist[cpu].sum_thread / data->hist[cpu].thread_count); 388 - else 389 - trace_seq_printf(trace->seq, " - "); 390 - } 373 + if (!params->no_thread) 374 + format_summary_value(trace->seq, 375 + data->hist[cpu].thread_count, 376 + data->hist[cpu].sum_thread, 377 + true); 391 378 392 - if (params->user_hist) { 393 - if (data->hist[cpu].user_count) 394 - trace_seq_printf(trace->seq, "%9llu ", 395 - data->hist[cpu].sum_user / data->hist[cpu].user_count); 396 - else 397 - trace_seq_printf(trace->seq, " - "); 398 - } 379 + if (params->user_hist) 380 + format_summary_value(trace->seq, 381 + data->hist[cpu].user_count, 382 + data->hist[cpu].sum_user, 383 + true); 399 384 } 400 385 trace_seq_printf(trace->seq, "\n"); 401 386 ··· 403 400 if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count) 404 401 continue; 405 402 406 - if (!params->no_irq) { 407 - if (data->hist[cpu].irq_count) 408 - trace_seq_printf(trace->seq, "%9llu ", 409 - data->hist[cpu].max_irq); 410 - else 411 - trace_seq_printf(trace->seq, " - "); 412 - } 403 + if (!params->no_irq) 404 + format_summary_value(trace->seq, 405 + data->hist[cpu].irq_count, 406 + data->hist[cpu].max_irq, 407 + false); 413 408 414 - if (!params->no_thread) { 415 - if (data->hist[cpu].thread_count) 416 - trace_seq_printf(trace->seq, "%9llu ", 417 - data->hist[cpu].max_thread); 418 - else 419 - trace_seq_printf(trace->seq, " - "); 420 - } 409 + if (!params->no_thread) 410 + format_summary_value(trace->seq, 411 + data->hist[cpu].thread_count, 412 + data->hist[cpu].max_thread, 413 + false); 421 414 422 - if (params->user_hist) { 423 - if (data->hist[cpu].user_count) 424 - trace_seq_printf(trace->seq, "%9llu ", 425 - data->hist[cpu].max_user); 426 - else 427 - trace_seq_printf(trace->seq, " - "); 428 - } 415 + if (params->user_hist) 416 + format_summary_value(trace->seq, 417 + data->hist[cpu].user_count, 418 + data->hist[cpu].max_user, 419 + false); 429 420 } 430 421 trace_seq_printf(trace->seq, "\n"); 431 422 trace_seq_do_printf(trace->seq); ··· 503 506 trace_seq_printf(trace->seq, "min: "); 504 507 505 508 if (!params->no_irq) 506 - trace_seq_printf(trace->seq, "%9llu ", 507 - sum.min_irq); 509 + format_summary_value(trace->seq, 510 + sum.irq_count, 511 + sum.min_irq, 512 + false); 508 513 509 514 if (!params->no_thread) 510 - trace_seq_printf(trace->seq, "%9llu ", 511 - sum.min_thread); 515 + format_summary_value(trace->seq, 516 + sum.thread_count, 517 + sum.min_thread, 518 + false); 512 519 513 520 if (params->user_hist) 514 - trace_seq_printf(trace->seq, "%9llu ", 515 - sum.min_user); 521 + format_summary_value(trace->seq, 522 + sum.user_count, 523 + sum.min_user, 524 + false); 516 525 517 526 trace_seq_printf(trace->seq, "\n"); 518 527 ··· 526 523 trace_seq_printf(trace->seq, "avg: "); 527 524 528 525 if (!params->no_irq) 529 - trace_seq_printf(trace->seq, "%9llu ", 530 - sum.sum_irq / sum.irq_count); 526 + format_summary_value(trace->seq, 527 + sum.irq_count, 528 + sum.sum_irq, 529 + true); 531 530 532 531 if (!params->no_thread) 533 - trace_seq_printf(trace->seq, "%9llu ", 534 - sum.sum_thread / sum.thread_count); 532 + format_summary_value(trace->seq, 533 + sum.thread_count, 534 + sum.sum_thread, 535 + true); 535 536 536 537 if (params->user_hist) 537 - trace_seq_printf(trace->seq, "%9llu ", 538 - sum.sum_user / sum.user_count); 538 + format_summary_value(trace->seq, 539 + sum.user_count, 540 + sum.sum_user, 541 + true); 539 542 540 543 trace_seq_printf(trace->seq, "\n"); 541 544 ··· 549 540 trace_seq_printf(trace->seq, "max: "); 550 541 551 542 if (!params->no_irq) 552 - trace_seq_printf(trace->seq, "%9llu ", 553 - sum.max_irq); 543 + format_summary_value(trace->seq, 544 + sum.irq_count, 545 + sum.max_irq, 546 + false); 554 547 555 548 if (!params->no_thread) 556 - trace_seq_printf(trace->seq, "%9llu ", 557 - sum.max_thread); 549 + format_summary_value(trace->seq, 550 + sum.thread_count, 551 + sum.max_thread, 552 + false); 558 553 559 554 if (params->user_hist) 560 - trace_seq_printf(trace->seq, "%9llu ", 561 - sum.max_user); 555 + format_summary_value(trace->seq, 556 + sum.user_count, 557 + sum.max_user, 558 + false); 562 559 563 560 trace_seq_printf(trace->seq, "\n"); 564 561 trace_seq_do_printf(trace->seq);