<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 6, 2020 at 5:10 PM Yang Xu <<a href="mailto:xuyang2018.jy@cn.fujitsu.com">xuyang2018.jy@cn.fujitsu.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Li<br>
> <br>
> <br>
> On Wed, Dec 18, 2019 at 12:02 PM Yang Xu <<a href="mailto:xuyang2018.jy@cn.fujitsu.com" target="_blank">xuyang2018.jy@cn.fujitsu.com</a> <br>
> <mailto:<a href="mailto:xuyang2018.jy@cn.fujitsu.com" target="_blank">xuyang2018.jy@cn.fujitsu.com</a>>> wrote:<br>
> <br>
>     Since commit cefdca0a86be ("userfaultfd/sysctl: add<br>
>     vm.unprivileged_userfaultfd").<br>
>     , it adds a global sysctl knob "vm.unprivileged_userfaultfd" to<br>
>     control whether<br>
>     unprivileged users can use the userfaultfd system calls. Set this to<br>
>     1 to allow<br>
>     unprivileged users to use the userfaultfd system calls, or set this<br>
>     to 0 to<br>
>     restrict userfaultfd to only privileged users (with SYS_CAP_PTRACE<br>
>     capability). The<br>
>     default value is 1. Add hint about it.<br>
> <br>
> <br>
> Can we do the "vm.unprivileged_userfaultfd" check in the setup() and do <br>
> set to 1 if it exists?<br>
I remembered Jan Stancek has a patch about bpf hint about <br>
unprivileged_bpf_disabled, I do as same as that patch did.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">I just echo the nob file <span class="gmail_default">"</span>unprivileged_bpf_disabled" and find it can't be changed at runtime. So if the "vm.unprivileged_userfaultfd" is like this behavior too, probably we can only do TCONF as your original patch. AnywayI will take a close look at the kernel commit later.</div><div class="gmail_default" style="font-size:small"><br></div># cat /proc/sys/kernel/<span class="gmail_default" style="font-size:small"></span>unprivileged_bpf_disabled<br>1<br></div><div># echo 0 > /proc/sys/kernel/unprivileged_bpf_disabled<br>-bash: echo: write error: Invalid argument<br><div class="gmail_default" style="font-size:small"></div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Also, month agos about acct02 discussion, Cyril points about adjusting<br>
the threshold value of resume and suppend to make case passes.<br>
<br>
So, I have a question that we have unified standards about these cases<br>
(bpf, acct02, affected by sysctl)? Report TCONF or modify argument to<br>
make case passes?<br>
<br>
@Cyril and @Jan Stancek What do you think about it?<br>
<br>
> And maybe we need more tests for the global sysctl knob <br>
> "vm.unprivileged_userfaultfd".Eeven though we don't have case to test unprivileged_bpf_disabled. I <br>
still think testing unprivileged_userfaultfd is meaningful and we can <br>
begin with it.<br>
<br>
Best Regards<br>
Yang Xu<br>
> <br>
> <br>
>     Signed-off-by: Yang Xu <<a href="mailto:xuyang2018.jy@cn.fujitsu.com" target="_blank">xuyang2018.jy@cn.fujitsu.com</a><br>
>     <mailto:<a href="mailto:xuyang2018.jy@cn.fujitsu.com" target="_blank">xuyang2018.jy@cn.fujitsu.com</a>>><br>
>     ---<br>
>       .../syscalls/userfaultfd/userfaultfd01.c      | 19 +++++++++++++------<br>
>       1 file changed, 13 insertions(+), 6 deletions(-)<br>
> <br>
>     diff --git a/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c<br>
>     b/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c<br>
>     index a5e142209..4e178b4f8 100644<br>
>     --- a/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c<br>
>     +++ b/testcases/kernel/syscalls/userfaultfd/userfaultfd01.c<br>
>     @@ -82,12 +82,19 @@ static void run(void)<br>
> <br>
>              set_pages();<br>
> <br>
>     -       uffd = sys_userfaultfd(O_CLOEXEC | O_NONBLOCK);<br>
>     -<br>
>     -       if (uffd == -1)<br>
>     -               tst_brk(TBROK | TERRNO,<br>
>     -                       "Could not create userfault file descriptor");<br>
>     -<br>
>     +       TEST(sys_userfaultfd(O_CLOEXEC | O_NONBLOCK));<br>
>     +<br>
>     +       if (TST_RET == -1) {<br>
>     +               if (TST_ERR == EPERM) {<br>
>     +                       tst_res(TCONF, "Hint: check<br>
>     /proc/sys/vm/unprivileged_userfaultfd");<br>
>     +                       tst_brk(TCONF | TTERRNO,<br>
>     +                               "userfaultfd() requires<br>
>     CAP_SYS_PTRACE on this system");<br>
>     +               } else<br>
>     +                       tst_brk(TBROK | TTERRNO,<br>
>     +                               "Could not create userfault file<br>
>     descriptor");<br>
>     +       }<br>
>     +<br>
>     +       uffd = TST_RET;<br>
>              uffdio_api.api = UFFD_API;<br>
>              uffdio_api.features = 0;<br>
>              SAFE_IOCTL(uffd, UFFDIO_API, &uffdio_api);<br>
>     -- <br>
>     2.18.0<br>
> <br>
> <br>
> <br>
> <br>
>     -- <br>
>     Mailing list info: <a href="https://lists.linux.it/listinfo/ltp" rel="noreferrer" target="_blank">https://lists.linux.it/listinfo/ltp</a><br>
> <br>
> <br>
> <br>
> -- <br>
> Regards,<br>
> Li Wang<br>
<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>