bprocps: fix order of operations for %use of slabinfo
authorTakayuki Nagata <tnagata@redhat.com>
Mon, 25 Apr 2016 09:30:36 +0000 (05:30 -0400)
committerCraig Small <csmall@enc.com.au>
Mon, 25 Apr 2016 10:20:08 +0000 (20:20 +1000)
In some environments, 100 * nr_active_objs is calculated at first,
and lower 32bit of the result is divided by nr_objs.
If 100 * nr_active_objs > 42949672, %use will be incorrect.

Signed-off-by: Takayuki Nagata <tnagata@redhat.com>
proc/slab.c

index 444b79cc4e8ff6d9dc7f97aa2813d0479782bf50..2d7f96786a69e108b151e322838d881722ce4eb4 100644 (file)
@@ -179,7 +179,7 @@ static int parse_slabinfo20(struct slab_info **list, struct slab_stat *stats,
                curr->cache_size = (unsigned long)curr->nr_slabs * curr->pages_per_slab * page_size;
 
                if (curr->nr_objs) {
-                       curr->use = 100 * curr->nr_active_objs / curr->nr_objs;
+                       curr->use = 100 * (curr->nr_active_objs / curr->nr_objs);
                        stats->nr_active_caches++;
                } else
                        curr->use = 0;