All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>,
	Jussi Maki <joamaki@gmail.com>, Hangbin Liu <haliu@redhat.com>,
	Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
	Yonghong Song <yhs@fb.com>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@chromium.org>
Subject: Re: [PATCH] bpf/selftests: Fix namespace mount setup in tc_redirect
Date: Wed, 5 Jan 2022 12:40:34 -0800	[thread overview]
Message-ID: <CAEf4BzZK1=zdy1_ZdwWXK7Ryk+uWQeSApcpxFT9yMp4bRNanDQ@mail.gmail.com> (raw)
In-Reply-To: <20220104121030.138216-1-jolsa@kernel.org>

On Tue, Jan 4, 2022 at 4:10 AM Jiri Olsa <jolsa@redhat.com> wrote:
>
> The tc_redirect umounts /sys in the new namespace, which can be
> mounted as shared and cause global umount. The lazy umount also
> takes down mounted trees under /sys like debugfs, which won't be
> available after sysfs mounts again and could cause fails in other
> tests.
>
>   # cat /proc/self/mountinfo | grep debugfs
>   34 23 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime shared:14 - debugfs debugfs rw
>   # cat /proc/self/mountinfo | grep sysfs
>   23 86 0:22 / /sys rw,nosuid,nodev,noexec,relatime shared:2 - sysfs sysfs rw
>   # mount | grep debugfs
>   debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
>
>   # ./test_progs -t tc_redirect
>   #164 tc_redirect:OK
>   Summary: 1/4 PASSED, 0 SKIPPED, 0 FAILED
>
>   # mount | grep debugfs
>   # cat /proc/self/mountinfo | grep debugfs
>   # cat /proc/self/mountinfo | grep sysfs
>   25 86 0:22 / /sys rw,relatime shared:2 - sysfs sysfs rw
>
> Making the sysfs private under the new namespace so the umount won't
> trigger the global sysfs umount.

Hey Jiri,

Thanks for the fix. Did you try making tc_redirect non-serial again
(s/serial_test_tc_redirect/test_tc_redirect/) and doing parallelized
test_progs run (./test_progs -j) in a tight loop for a while? I
suspect this might have been an issue forcing us to make this test
serial in the first place, so now that it's fixed, we can make
parallel test_progs a bit faster.

>
> Cc: Jussi Maki <joamaki@gmail.com>
> Reported-by: Hangbin Liu <haliu@redhat.com>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
>  tools/testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
> index 4b18b73df10b..c2426df58e17 100644
> --- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
> +++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
> @@ -105,6 +105,13 @@ static int setns_by_fd(int nsfd)
>         if (!ASSERT_OK(err, "unshare"))
>                 return err;
>
> +       /* Make our /sys mount private, so the following umount won't
> +        * trigger the global umount in case it's shared.
> +        */
> +       err = mount("none", "/sys", NULL, MS_PRIVATE, NULL);
> +       if (!ASSERT_OK(err, "remount private /sys"))
> +               return err;
> +
>         err = umount2("/sys", MNT_DETACH);
>         if (!ASSERT_OK(err, "umount2 /sys"))
>                 return err;
> --
> 2.33.1
>

  parent reply	other threads:[~2022-01-05 20:40 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-04 12:10 [PATCH] bpf/selftests: Fix namespace mount setup in tc_redirect Jiri Olsa
2022-01-05 12:40 ` patchwork-bot+netdevbpf
2022-01-05 20:40 ` Andrii Nakryiko [this message]
2022-01-06  7:35   ` Jiri Olsa
2022-01-17 19:25     ` Jiri Olsa
2022-01-19  3:48       ` Andrii Nakryiko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAEf4BzZK1=zdy1_ZdwWXK7Ryk+uWQeSApcpxFT9yMp4bRNanDQ@mail.gmail.com' \
    --to=andrii.nakryiko@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=haliu@redhat.com \
    --cc=joamaki@gmail.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=kafai@fb.com \
    --cc=kpsingh@chromium.org \
    --cc=netdev@vger.kernel.org \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.