Commit 4b57ad939263935e4e3aec4d74a11dd02a3421e4
Committed by
Pekka Enberg
1 parent
a164f89628
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
mm: Fix signal SIGFPE in slabinfo.c.
In function slab_stats(), if total_free is equal zero, it will error. So fix it. Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: majianpeng <majianpeng@gmail.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Showing 1 changed file with 7 additions and 7 deletions Side-by-side Diff
tools/vm/slabinfo.c
... | ... | @@ -437,34 +437,34 @@ |
437 | 437 | printf("Fastpath %8lu %8lu %3lu %3lu\n", |
438 | 438 | s->alloc_fastpath, s->free_fastpath, |
439 | 439 | s->alloc_fastpath * 100 / total_alloc, |
440 | - s->free_fastpath * 100 / total_free); | |
440 | + total_free ? s->free_fastpath * 100 / total_free : 0); | |
441 | 441 | printf("Slowpath %8lu %8lu %3lu %3lu\n", |
442 | 442 | total_alloc - s->alloc_fastpath, s->free_slowpath, |
443 | 443 | (total_alloc - s->alloc_fastpath) * 100 / total_alloc, |
444 | - s->free_slowpath * 100 / total_free); | |
444 | + total_free ? s->free_slowpath * 100 / total_free : 0); | |
445 | 445 | printf("Page Alloc %8lu %8lu %3lu %3lu\n", |
446 | 446 | s->alloc_slab, s->free_slab, |
447 | 447 | s->alloc_slab * 100 / total_alloc, |
448 | - s->free_slab * 100 / total_free); | |
448 | + total_free ? s->free_slab * 100 / total_free : 0); | |
449 | 449 | printf("Add partial %8lu %8lu %3lu %3lu\n", |
450 | 450 | s->deactivate_to_head + s->deactivate_to_tail, |
451 | 451 | s->free_add_partial, |
452 | 452 | (s->deactivate_to_head + s->deactivate_to_tail) * 100 / total_alloc, |
453 | - s->free_add_partial * 100 / total_free); | |
453 | + total_free ? s->free_add_partial * 100 / total_free : 0); | |
454 | 454 | printf("Remove partial %8lu %8lu %3lu %3lu\n", |
455 | 455 | s->alloc_from_partial, s->free_remove_partial, |
456 | 456 | s->alloc_from_partial * 100 / total_alloc, |
457 | - s->free_remove_partial * 100 / total_free); | |
457 | + total_free ? s->free_remove_partial * 100 / total_free : 0); | |
458 | 458 | |
459 | 459 | printf("Cpu partial list %8lu %8lu %3lu %3lu\n", |
460 | 460 | s->cpu_partial_alloc, s->cpu_partial_free, |
461 | 461 | s->cpu_partial_alloc * 100 / total_alloc, |
462 | - s->cpu_partial_free * 100 / total_free); | |
462 | + total_free ? s->cpu_partial_free * 100 / total_free : 0); | |
463 | 463 | |
464 | 464 | printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n", |
465 | 465 | s->deactivate_remote_frees, s->free_frozen, |
466 | 466 | s->deactivate_remote_frees * 100 / total_alloc, |
467 | - s->free_frozen * 100 / total_free); | |
467 | + total_free ? s->free_frozen * 100 / total_free : 0); | |
468 | 468 | |
469 | 469 | printf("Total %8lu %8lu\n\n", total_alloc, total_free); |
470 | 470 |