Exemple #1
0
/*
 * Query all available memory allocator sources.  Currently this consists of
 * malloc(9) and UMA(9).
 */
int
memstat_sysctl_all(struct memory_type_list *mtlp, int flags)
{

	if (memstat_sysctl_malloc(mtlp, flags) < 0)
		return (-1);
	if (memstat_sysctl_uma(mtlp, flags) < 0)
		return (-1);
	return (0);
}
Exemple #2
0
static void
domemstat_zone(void)
{
	struct memory_type_list *mtlp;
	struct memory_type *mtp;
	char name[MEMTYPE_MAXNAME + 1];
	int error;

	mtlp = memstat_mtl_alloc();
	if (mtlp == NULL) {
		warn("memstat_mtl_alloc");
		return;
	}
	if (kd == NULL) {
		if (memstat_sysctl_uma(mtlp, 0) < 0) {
			warnx("memstat_sysctl_uma: %s",
			    memstat_strerror(memstat_mtl_geterror(mtlp)));
			return;
		}
	} else {
		if (memstat_kvm_uma(mtlp, kd) < 0) {
			error = memstat_mtl_geterror(mtlp);
			if (error == MEMSTAT_ERROR_KVM)
				warnx("memstat_kvm_uma: %s",
				    kvm_geterr(kd));
			else
				warnx("memstat_kvm_uma: %s",
				    memstat_strerror(error));
		}
	}
	printf("%-20s %6s %6s %8s %8s %8s %4s %4s\n\n", "ITEM", "SIZE",
	    "LIMIT", "USED", "FREE", "REQ", "FAIL", "SLEEP");
	for (mtp = memstat_mtl_first(mtlp); mtp != NULL;
	    mtp = memstat_mtl_next(mtp)) {
		strlcpy(name, memstat_get_name(mtp), MEMTYPE_MAXNAME);
		strcat(name, ":");
		printf("%-20s %6" PRIu64 ", %6" PRIu64 ",%8" PRIu64 ",%8" PRIu64
		    ",%8" PRIu64 ",%4" PRIu64 ",%4" PRIu64 "\n", name,
		    memstat_get_size(mtp), memstat_get_countlimit(mtp),
		    memstat_get_count(mtp), memstat_get_free(mtp),
		    memstat_get_numallocs(mtp), memstat_get_failures(mtp),
		    memstat_get_sleeps(mtp));
	}
	memstat_mtl_free(mtlp);
	printf("\n");
}