Date: Wed, 28 Apr 2010 17:13:24 GMT From: pluknet <pluknet@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/146119: [patch] (attempt to) cleanup tools/tools/umastat Message-ID: <201004281713.o3SHDODL058411@www.freebsd.org> Resent-Message-ID: <201004281720.o3SHK1uU016305@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 146119 >Category: misc >Synopsis: [patch] (attempt to) cleanup tools/tools/umastat >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Apr 28 17:20:00 UTC 2010 >Closed-Date: >Last-Modified: >Originator: pluknet >Release: HEAD r207204 >Organization: >Environment: >Description: 1) printf() modifiers on LP64 2) warning "dereferencing type-punned pointer will break strict-aliasing rules" I had to change cast (struct bucketlist *) to (void *) to shut up this warning without much rewrite. *sigh 3) s/kvm_open/kvm_openfiles/; when using kvm_open, kvm_nlist returns "No such file or directory". that fixes this warning. I didn't find much difference umastat output. >How-To-Repeat: >Fix: Patch attached with submission follows: Index: tools/tools/umastat/umastat.c =================================================================== --- tools/tools/umastat/umastat.c (revision 207204) +++ tools/tools/umastat/umastat.c (working copy) @@ -37,6 +37,7 @@ #include <err.h> #include <kvm.h> +#include <limits.h> #include <memstat.h> #include <stdio.h> #include <stdlib.h> @@ -196,7 +197,7 @@ LIST_HEAD(bucketlist, uma_bucket); static void -uma_print_bucket(struct uma_bucket *ubp, const char *spaces) +uma_print_bucket(struct uma_bucket *ubp, const char *spaces __unused) { printf("{ ub_cnt = %d, ub_entries = %d }", ubp->ub_cnt, @@ -230,7 +231,7 @@ } printf("\n"); - printf("%s}; // total cnt %llu, total entries %llu\n", spaces, + printf("%s}; // total cnt %ju, total entries %ju\n", spaces, total_cnt, total_entries); } @@ -242,8 +243,8 @@ int ret; printf("%s%s[%d] = {\n", spaces, name, cpu); - printf("%s uc_frees = %llu;\n", spaces, cache->uc_frees); - printf("%s uc_allocs = %llu;\n", spaces, cache->uc_allocs); + printf("%s uc_frees = %ju;\n", spaces, cache->uc_frees); + printf("%s uc_allocs = %ju;\n", spaces, cache->uc_allocs); if (cache->uc_freebucket != NULL) { ret = kread(kvm, cache->uc_freebucket, &ub, sizeof(ub), 0); @@ -286,6 +287,7 @@ size_t uzp_userspace_len; char *memf, *nlistf; int ch; + char errbuf[_POSIX2_LINE_MAX]; memf = nlistf = NULL; while ((ch = getopt(argc, argv, "M:N:")) != -1) { @@ -308,9 +310,9 @@ if (nlistf != NULL && memf == NULL) usage(); - kvm = kvm_open(nlistf, memf, NULL, 0, "umastat"); + kvm = kvm_open(nlistf, memf, NULL, 0, errbuf); if (kvm == NULL) - err(-1, "kvm_open"); + errx(1, "kvm_openfiles: %s", errbuf); if (kvm_nlist(kvm, namelist) != 0) err(-1, "kvm_nlist"); @@ -412,20 +414,20 @@ } printf(" Zone {\n"); printf(" uz_name = \"%s\";\n", name); - printf(" uz_allocs = %llu;\n", + printf(" uz_allocs = %ju;\n", uzp_userspace->uz_allocs); - printf(" uz_frees = %llu;\n", + printf(" uz_frees = %ju;\n", uzp_userspace->uz_frees); - printf(" uz_fails = %llu;\n", + printf(" uz_fails = %ju;\n", uzp_userspace->uz_fails); printf(" uz_fills = %u;\n", uzp_userspace->uz_fills); printf(" uz_count = %u;\n", uzp_userspace->uz_count); - uma_print_bucketlist(kvm, (struct bucketlist *) + uma_print_bucketlist(kvm, (void *) &uzp_userspace->uz_full_bucket, "uz_full_bucket", " "); - uma_print_bucketlist(kvm, (struct bucketlist *) + uma_print_bucketlist(kvm, (void *) &uzp_userspace->uz_free_bucket, "uz_free_bucket", " "); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004281713.o3SHDODL058411>