Re: [PATCH 3/3] tools/vm/slabinfo: update struct slabinfo members' types

From: David Rientjes
Date: Wed Nov 11 2015 - 15:55:14 EST


On Tue, 10 Nov 2015, Sergey Senozhatsky wrote:

> Align some of `struct slabinfo' members' types with
> `struct kmem_cache' to suppress gcc warnings:
>
> slabinfo.c:847:22: warning: comparison between signed
> and unsigned integer expressions [-Wsign-compare]
> slabinfo.c:869:20: warning: comparison between signed
> and unsigned integer expressions [-Wsign-compare]
> slabinfo.c:872:22: warning: comparison between signed
> and unsigned integer expressions [-Wsign-compare]
> slabinfo.c:894:20: warning: comparison between signed
> and unsigned integer expressions [-Wsign-compare]
>
> Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
> ---
> tools/vm/slabinfo.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/tools/vm/slabinfo.c b/tools/vm/slabinfo.c
> index 86e698d0..1813854 100644
> --- a/tools/vm/slabinfo.c
> +++ b/tools/vm/slabinfo.c
> @@ -19,6 +19,7 @@
> #include <getopt.h>
> #include <regex.h>
> #include <errno.h>
> +#include <limits.h>
>
> #define MAX_SLABS 500
> #define MAX_ALIASES 500
> @@ -28,10 +29,11 @@ struct slabinfo {
> char *name;
> int alias;
> int refs;
> - int aliases, align, cache_dma, cpu_slabs, destroy_by_rcu;
> - int hwcache_align, object_size, objs_per_slab;
> - int sanity_checks, slab_size, store_user, trace;
> + int aliases, cache_dma, cpu_slabs, destroy_by_rcu;
> + int sanity_checks, store_user, trace;
> int order, poison, reclaim_account, red_zone;
> + unsigned int hwcache_align, align, object_size;
> + unsigned int objs_per_slab, slab_size;
> unsigned long partial, objects, slabs, objects_partial, objects_total;
> unsigned long alloc_fastpath, alloc_slowpath;
> unsigned long free_fastpath, free_slowpath;
> @@ -766,10 +768,10 @@ static void totals(void)
>
> int used_slabs = 0;
> char b1[20], b2[20], b3[20], b4[20];
> - unsigned long long max = 1ULL << 63;
> + unsigned long long max = ULLONG_MAX;
>
> /* Object size */
> - unsigned long long min_objsize = max, max_objsize = 0, avg_objsize;
> + unsigned int min_objsize = UINT_MAX, max_objsize = 0, avg_objsize;
>
> /* Number of partial slabs in a slabcache */
> unsigned long long min_partial = max, max_partial = 0,

avg_objsize should not be unsigned int.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/