diff options
| author | majianpeng <majianpeng@gmail.com> | 2012-06-26 09:30:31 +0800 | 
|---|---|---|
| committer | Pekka Enberg <penberg@kernel.org> | 2012-07-02 23:11:14 +0300 | 
| commit | 4b57ad939263935e4e3aec4d74a11dd02a3421e4 (patch) | |
| tree | 3c29075138935c378e0b014d695c0d2725a701b5 /tools/vm | |
| parent | a164f89628fa813a2b012ec033625e9e507c29bb (diff) | |
| download | linux-4b57ad939263935e4e3aec4d74a11dd02a3421e4.tar.bz2 | |
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)  	printf("Fastpath             %8lu %8lu %3lu %3lu\n",  		s->alloc_fastpath, s->free_fastpath,  		s->alloc_fastpath * 100 / total_alloc, -		s->free_fastpath * 100 / total_free); +		total_free ? s->free_fastpath * 100 / total_free : 0);  	printf("Slowpath             %8lu %8lu %3lu %3lu\n",  		total_alloc - s->alloc_fastpath, s->free_slowpath,  		(total_alloc - s->alloc_fastpath) * 100 / total_alloc, -		s->free_slowpath * 100 / total_free); +		total_free ? s->free_slowpath * 100 / total_free : 0);  	printf("Page Alloc           %8lu %8lu %3lu %3lu\n",  		s->alloc_slab, s->free_slab,  		s->alloc_slab * 100 / total_alloc, -		s->free_slab * 100 / total_free); +		total_free ? s->free_slab * 100 / total_free : 0);  	printf("Add partial          %8lu %8lu %3lu %3lu\n",  		s->deactivate_to_head + s->deactivate_to_tail,  		s->free_add_partial,  		(s->deactivate_to_head + s->deactivate_to_tail) * 100 / total_alloc, -		s->free_add_partial * 100 / total_free); +		total_free ? s->free_add_partial * 100 / total_free : 0);  	printf("Remove partial       %8lu %8lu %3lu %3lu\n",  		s->alloc_from_partial, s->free_remove_partial,  		s->alloc_from_partial * 100 / total_alloc, -		s->free_remove_partial * 100 / total_free); +		total_free ? s->free_remove_partial * 100 / total_free : 0);  	printf("Cpu partial list     %8lu %8lu %3lu %3lu\n",  		s->cpu_partial_alloc, s->cpu_partial_free,  		s->cpu_partial_alloc * 100 / total_alloc, -		s->cpu_partial_free * 100 / total_free); +		total_free ? s->cpu_partial_free * 100 / total_free : 0);  	printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n",  		s->deactivate_remote_frees, s->free_frozen,  		s->deactivate_remote_frees * 100 / total_alloc, -		s->free_frozen * 100 / total_free); +		total_free ? s->free_frozen * 100 / total_free : 0);  	printf("Total                %8lu %8lu\n\n", total_alloc, total_free); |