Exemple #1
0
void
pmem_dump2console(void)
{
	struct pmem_region query, result;
	int status;

	query.start = 0;
	query.end = 0xfffffffffffffffful; /* ULONG_MAX */
	pmem_region_unset_all(&query);

	print("Physical Memory Map:\n");
	while ((status = pmem_query(&query, &result)) == 0) {
		print("  [%#016lx, %#016lx) %-10s numa_node=%d alloc=%d\n",
			result.start,
			result.end,
			(result.type_is_set)
				? pmem_type_to_string(result.type)
				: "UNSET",
			(result.numa_node_is_set)
				? (int) result.numa_node
				: -1,
			(result.allocated_is_set)
				? (int) result.allocated
				: -1 
		);
		query.start = result.end;
	}
}
Exemple #2
0
static int
pmem_api_test(void)
{
	struct pmem_region query, result;
	unsigned long bytes_umem = 0;
	int status;

	printf("\n");
	printf("TEST BEGIN: Physical Memory Management\n");

	query.start = 0;
	query.end = ULONG_MAX;
	pmem_region_unset_all(&query);

	printf("  Physical Memory Map:\n");
	while ((status = pmem_query(&query, &result)) == 0) {
		printf("    [%#016lx, %#016lx) %-10s numa_node=%u\n",
			result.start,
			result.end,
			(result.type_is_set)
				? pmem_type_to_string(result.type)
				: "UNSET",
			(result.numa_node_is_set)
				? result.numa_node
				: 0
		);

		if (result.type == PMEM_TYPE_UMEM)
			bytes_umem += (result.end - result.start);

		query.start = result.end;
	}

	if (status != -ENOENT) {
		printf("ERROR: pmem_query() status=%d\n", status);
		return -1;
	}

	printf("  Total User-Level Managed Memory: %lu bytes\n", bytes_umem);

	printf("TEST END:   Physical Memory Management\n");
	return 0;
}