Skip site navigation (1)Skip section navigation (2)
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>