diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
| commit | 34c55367af96f62e89221444f04487440ebc6487 (patch) | |
| tree | fdb36ba67d7dea09455b55037e26043b7e051ef9 /tools/testing/selftests/kvm/lib/test_util.c | |
| parent | 7247efca0dcbc8ac6147db9200ed1549c0662465 (diff) | |
| parent | 19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff) | |
| download | linux-34c55367af96f62e89221444f04487440ebc6487.tar.xz | |
Merge drm/drm-next into drm-intel-next
Sync to v6.16-rc1, among other things to get the fixed size GENMASK_U*()
and BIT_U*() macros.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'tools/testing/selftests/kvm/lib/test_util.c')
| -rw-r--r-- | tools/testing/selftests/kvm/lib/test_util.c | 42 | 
1 files changed, 31 insertions, 11 deletions
diff --git a/tools/testing/selftests/kvm/lib/test_util.c b/tools/testing/selftests/kvm/lib/test_util.c index 8ed0b74ae837..03eb99af9b8d 100644 --- a/tools/testing/selftests/kvm/lib/test_util.c +++ b/tools/testing/selftests/kvm/lib/test_util.c @@ -132,37 +132,57 @@ void print_skip(const char *fmt, ...)  	puts(", skipping test");  } -bool thp_configured(void) +static bool test_sysfs_path(const char *path)  { -	int ret;  	struct stat statbuf; +	int ret; -	ret = stat("/sys/kernel/mm/transparent_hugepage", &statbuf); +	ret = stat(path, &statbuf);  	TEST_ASSERT(ret == 0 || (ret == -1 && errno == ENOENT), -		    "Error in stating /sys/kernel/mm/transparent_hugepage"); +		    "Error in stat()ing '%s'", path);  	return ret == 0;  } -size_t get_trans_hugepagesz(void) +bool thp_configured(void) +{ +	return test_sysfs_path("/sys/kernel/mm/transparent_hugepage"); +} + +static size_t get_sysfs_val(const char *path)  {  	size_t size;  	FILE *f;  	int ret; -	TEST_ASSERT(thp_configured(), "THP is not configured in host kernel"); - -	f = fopen("/sys/kernel/mm/transparent_hugepage/hpage_pmd_size", "r"); -	TEST_ASSERT(f != NULL, "Error in opening transparent_hugepage/hpage_pmd_size"); +	f = fopen(path, "r"); +	TEST_ASSERT(f, "Error opening '%s'", path);  	ret = fscanf(f, "%ld", &size); +	TEST_ASSERT(ret > 0, "Error reading '%s'", path); + +	/* Re-scan the input stream to verify the entire file was read. */  	ret = fscanf(f, "%ld", &size); -	TEST_ASSERT(ret < 1, "Error reading transparent_hugepage/hpage_pmd_size"); -	fclose(f); +	TEST_ASSERT(ret < 1, "Error reading '%s'", path); +	fclose(f);  	return size;  } +size_t get_trans_hugepagesz(void) +{ +	TEST_ASSERT(thp_configured(), "THP is not configured in host kernel"); + +	return get_sysfs_val("/sys/kernel/mm/transparent_hugepage/hpage_pmd_size"); +} + +bool is_numa_balancing_enabled(void) +{ +	if (!test_sysfs_path("/proc/sys/kernel/numa_balancing")) +		return false; +	return get_sysfs_val("/proc/sys/kernel/numa_balancing") == 1; +} +  size_t get_def_hugetlb_pagesz(void)  {  	char buf[64];  | 
