diff options
author | majianpeng <majianpeng@gmail.com> | 2012-06-25 21:30:31 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2012-07-02 16:11:14 -0400 |
commit | 4b57ad939263935e4e3aec4d74a11dd02a3421e4 (patch) | |
tree | 3c29075138935c378e0b014d695c0d2725a701b5 /tools/vm | |
parent | a164f89628fa813a2b012ec033625e9e507c29bb (diff) |
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>
Diffstat (limited to 'tools/vm')
-rw-r--r-- | tools/vm/slabinfo.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/vm/slabinfo.c b/tools/vm/slabinfo.c index 164cbcf61106..808d5a9d5dcf 100644 --- a/tools/vm/slabinfo.c +++ b/tools/vm/slabinfo.c | |||
@@ -437,34 +437,34 @@ static void slab_stats(struct slabinfo *s) | |||
437 | printf("Fastpath %8lu %8lu %3lu %3lu\n", | 437 | printf("Fastpath %8lu %8lu %3lu %3lu\n", |
438 | s->alloc_fastpath, s->free_fastpath, | 438 | s->alloc_fastpath, s->free_fastpath, |
439 | s->alloc_fastpath * 100 / total_alloc, | 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 | printf("Slowpath %8lu %8lu %3lu %3lu\n", | 441 | printf("Slowpath %8lu %8lu %3lu %3lu\n", |
442 | total_alloc - s->alloc_fastpath, s->free_slowpath, | 442 | total_alloc - s->alloc_fastpath, s->free_slowpath, |
443 | (total_alloc - s->alloc_fastpath) * 100 / total_alloc, | 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 | printf("Page Alloc %8lu %8lu %3lu %3lu\n", | 445 | printf("Page Alloc %8lu %8lu %3lu %3lu\n", |
446 | s->alloc_slab, s->free_slab, | 446 | s->alloc_slab, s->free_slab, |
447 | s->alloc_slab * 100 / total_alloc, | 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 | printf("Add partial %8lu %8lu %3lu %3lu\n", | 449 | printf("Add partial %8lu %8lu %3lu %3lu\n", |
450 | s->deactivate_to_head + s->deactivate_to_tail, | 450 | s->deactivate_to_head + s->deactivate_to_tail, |
451 | s->free_add_partial, | 451 | s->free_add_partial, |
452 | (s->deactivate_to_head + s->deactivate_to_tail) * 100 / total_alloc, | 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 | printf("Remove partial %8lu %8lu %3lu %3lu\n", | 454 | printf("Remove partial %8lu %8lu %3lu %3lu\n", |
455 | s->alloc_from_partial, s->free_remove_partial, | 455 | s->alloc_from_partial, s->free_remove_partial, |
456 | s->alloc_from_partial * 100 / total_alloc, | 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 | printf("Cpu partial list %8lu %8lu %3lu %3lu\n", | 459 | printf("Cpu partial list %8lu %8lu %3lu %3lu\n", |
460 | s->cpu_partial_alloc, s->cpu_partial_free, | 460 | s->cpu_partial_alloc, s->cpu_partial_free, |
461 | s->cpu_partial_alloc * 100 / total_alloc, | 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 | printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n", | 464 | printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n", |
465 | s->deactivate_remote_frees, s->free_frozen, | 465 | s->deactivate_remote_frees, s->free_frozen, |
466 | s->deactivate_remote_frees * 100 / total_alloc, | 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 | printf("Total %8lu %8lu\n\n", total_alloc, total_free); | 469 | printf("Total %8lu %8lu\n\n", total_alloc, total_free); |
470 | 470 | ||