[LTP] [PATCH v2] syscalls/userfaultfd01: add hint about unprivileged_userfaultfd
Yang Xu
xuyang2018.jy@cn.fujitsu.com
Mon Jan 6 10:10:09 CET 2020
Hi Li
>
>
> On Wed, Dec 18, 2019 at 12:02 PM Yang Xu <xuyang2018.jy@cn.fujitsu.com
> <mailto:xuyang2018.jy@cn.fujitsu.com>> wrote:
>
> Since commit cefdca0a86be ("userfaultfd/sysctl: add
> vm.unprivileged_userfaultfd").
> , it adds a global sysctl knob "vm.unprivileged_userfaultfd" to
> control whether
> unprivileged users can use the userfaultfd system calls. Set this to
> 1 to allow
> unprivileged users to use the userfaultfd system calls, or set this
> to 0 to
> restrict userfaultfd to only privileged users (with SYS_CAP_PTRACE
> capability). The
> default value is 1. Add hint about it.
>
>
> Can we do the "vm.unprivileged_userfaultfd" check in the setup() and do
> set to 1 if it exists?
I remembered Jan Stancek has a patch about bpf hint about
unprivileged_bpf_disabled, I do as same as that patch did.
Also, month agos about acct02 discussion, Cyril points about adjusting
the threshold value of resume and suppend to make case passes.
So, I have a question that we have unified standards about these cases
(bpf, acct02, affected by sysctl)? Report TCONF or modify argument to
make case passes?
@Cyril and @Jan Stancek What do you think about it?
> And maybe we need more tests for the global sysctl knob
> "vm.unprivileged_userfaultfd".Eeven though we don't have case to test unprivileged_bpf_disabled. I
still think testing unprivileged_userfaultfd is meaningful and we can
begin with it.
Best Regards
Yang Xu
>
>
> Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com
> <mailto:xuyang2018.jy@cn.fujitsu.com>>
> ---
> .../syscalls/userfaultfd/userfaultfd01.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c
> b/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c
> index a5e142209..4e178b4f8 100644
> --- a/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c
> +++ b/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c
> @@ -82,12 +82,19 @@ static void run(void)
>
> set_pages();
>
> - uffd = sys_userfaultfd(O_CLOEXEC | O_NONBLOCK);
> -
> - if (uffd == -1)
> - tst_brk(TBROK | TERRNO,
> - "Could not create userfault file descriptor");
> -
> + TEST(sys_userfaultfd(O_CLOEXEC | O_NONBLOCK));
> +
> + if (TST_RET == -1) {
> + if (TST_ERR == EPERM) {
> + tst_res(TCONF, "Hint: check
> /proc/sys/vm/unprivileged_userfaultfd");
> + tst_brk(TCONF | TTERRNO,
> + "userfaultfd() requires
> CAP_SYS_PTRACE on this system");
> + } else
> + tst_brk(TBROK | TTERRNO,
> + "Could not create userfault file
> descriptor");
> + }
> +
> + uffd = TST_RET;
> uffdio_api.api = UFFD_API;
> uffdio_api.features = 0;
> SAFE_IOCTL(uffd, UFFDIO_API, &uffdio_api);
> --
> 2.18.0
>
>
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>
>
> --
> Regards,
> Li Wang
More information about the ltp
mailing list