tools/testing/selftests/vm/gup_test.c: clarify error statement
Print three possible reasons /sys/kernel/debug/gup_test cannot be opened to help users of this test diagnose failures. Link: https://lkml.kernel.org/r/20220405214809.3351223-1-sidhartha.kumar@oracle.com Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Родитель
0e5e64c0b0
Коммит
62e80f2b50
|
@ -1,7 +1,9 @@
|
|||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -9,6 +11,7 @@
|
|||
#include <pthread.h>
|
||||
#include <assert.h>
|
||||
#include "../../../../mm/gup_test.h"
|
||||
#include "../kselftest.h"
|
||||
|
||||
#include "util.h"
|
||||
|
||||
|
@ -206,8 +209,23 @@ int main(int argc, char **argv)
|
|||
|
||||
gup_fd = open("/sys/kernel/debug/gup_test", O_RDWR);
|
||||
if (gup_fd == -1) {
|
||||
perror("open");
|
||||
exit(1);
|
||||
switch (errno) {
|
||||
case EACCES:
|
||||
if (getuid())
|
||||
printf("Please run this test as root\n");
|
||||
break;
|
||||
case ENOENT:
|
||||
if (opendir("/sys/kernel/debug") == NULL) {
|
||||
printf("mount debugfs at /sys/kernel/debug\n");
|
||||
break;
|
||||
}
|
||||
printf("check if CONFIG_GUP_TEST is enabled in kernel config\n");
|
||||
break;
|
||||
default:
|
||||
perror("failed to open /sys/kernel/debug/gup_test");
|
||||
break;
|
||||
}
|
||||
exit(KSFT_SKIP);
|
||||
}
|
||||
|
||||
p = mmap(NULL, size, PROT_READ | PROT_WRITE, flags, filed, 0);
|
||||
|
|
|
@ -162,22 +162,32 @@ echo "------------------------------------------------------"
|
|||
echo "running: gup_test -u # get_user_pages_fast() benchmark"
|
||||
echo "------------------------------------------------------"
|
||||
./gup_test -u
|
||||
if [ $? -ne 0 ]; then
|
||||
ret_val=$?
|
||||
|
||||
if [ $ret_val -eq 0 ]; then
|
||||
echo "[PASS]"
|
||||
elif [ $ret_val -eq $ksft_skip ]; then
|
||||
echo "[SKIP]"
|
||||
exitcode=$ksft_skip
|
||||
else
|
||||
echo "[FAIL]"
|
||||
exitcode=1
|
||||
else
|
||||
echo "[PASS]"
|
||||
fi
|
||||
|
||||
echo "------------------------------------------------------"
|
||||
echo "running: gup_test -a # pin_user_pages_fast() benchmark"
|
||||
echo "------------------------------------------------------"
|
||||
./gup_test -a
|
||||
if [ $? -ne 0 ]; then
|
||||
ret_val=$?
|
||||
|
||||
if [ $ret_val -eq 0 ]; then
|
||||
echo "[PASS]"
|
||||
elif [ $ret_val -eq $ksft_skip ]; then
|
||||
echo "[SKIP]"
|
||||
exitcode=$ksft_skip
|
||||
else
|
||||
echo "[FAIL]"
|
||||
exitcode=1
|
||||
else
|
||||
echo "[PASS]"
|
||||
fi
|
||||
|
||||
echo "------------------------------------------------------------"
|
||||
|
@ -185,11 +195,16 @@ echo "# Dump pages 0, 19, and 4096, using pin_user_pages:"
|
|||
echo "running: gup_test -ct -F 0x1 0 19 0x1000 # dump_page() test"
|
||||
echo "------------------------------------------------------------"
|
||||
./gup_test -ct -F 0x1 0 19 0x1000
|
||||
if [ $? -ne 0 ]; then
|
||||
ret_val=$?
|
||||
|
||||
if [ $ret_val -eq 0 ]; then
|
||||
echo "[PASS]"
|
||||
elif [ $ret_val -eq $ksft_skip ]; then
|
||||
echo "[SKIP]"
|
||||
exitcode=$ksft_skip
|
||||
else
|
||||
echo "[FAIL]"
|
||||
exitcode=1
|
||||
else
|
||||
echo "[PASS]"
|
||||
fi
|
||||
|
||||
echo "-------------------"
|
||||
|
|
Загрузка…
Ссылка в новой задаче