* [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap
[not found] <20200123165934.9584-1-lmb@cloudflare.com>
@ 2020-01-23 16:59 ` Lorenz Bauer
2020-01-23 18:34 ` Martin Lau
` (2 more replies)
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
` (3 subsequent siblings)
4 siblings, 3 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-23 16:59 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Use a proper temporary file for sendpage tests. This means that running
the tests doesn't clutter the working directory, and allows running the
test on read-only filesystems.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
---
tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
index 4a851513c842..779e11da979c 100644
--- a/tools/testing/selftests/bpf/test_sockmap.c
+++ b/tools/testing/selftests/bpf/test_sockmap.c
@@ -331,7 +331,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
FILE *file;
int i, fp;
- file = fopen(".sendpage_tst.tmp", "w+");
+ file = tmpfile();
if (!file) {
perror("create file for sendpage");
return 1;
@@ -340,13 +340,8 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
fwrite(&k, sizeof(char), 1, file);
fflush(file);
fseek(file, 0, SEEK_SET);
- fclose(file);
- fp = open(".sendpage_tst.tmp", O_RDONLY);
- if (fp < 0) {
- perror("reopen file for sendpage");
- return 1;
- }
+ fp = fileno(file);
clock_gettime(CLOCK_MONOTONIC, &s->start);
for (i = 0; i < cnt; i++) {
@@ -354,11 +349,11 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
if (!drop && sent < 0) {
perror("send loop error");
- close(fp);
+ fclose(file);
return sent;
} else if (drop && sent >= 0) {
printf("sendpage loop error expected: %i\n", sent);
- close(fp);
+ fclose(file);
return -EIO;
}
@@ -366,7 +361,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
s->bytes_sent += sent;
}
clock_gettime(CLOCK_MONOTONIC, &s->end);
- close(fp);
+ fclose(file);
return 0;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
[not found] <20200123165934.9584-1-lmb@cloudflare.com>
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
@ 2020-01-23 16:59 ` Lorenz Bauer
2020-01-23 17:16 ` Martin Lau
` (2 more replies)
2020-01-23 16:59 ` [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
` (2 subsequent siblings)
4 siblings, 3 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-23 16:59 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
The reuseport tests currently suffer from a race condition: RST
packets count towards DROP_ERR_SKB_DATA, since they don't contain
a valid struct cmd. Tests will spuriously fail depending on whether
check_results is called before or after the RST is processed.
Exit the BPF program early if FIN is set.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
---
.../selftests/bpf/progs/test_select_reuseport_kern.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
index d69a1f2bbbfd..26e77dcc7e91 100644
--- a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
+++ b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
@@ -113,6 +113,12 @@ int _select_by_skb_data(struct sk_reuseport_md *reuse_md)
data_check.skb_ports[0] = th->source;
data_check.skb_ports[1] = th->dest;
+ if (th->fin)
+ /* The connection is being torn down at the end of a
+ * test. It can't contain a cmd, so return early.
+ */
+ return SK_PASS;
+
if ((th->doff << 2) + sizeof(*cmd) > data_check.len)
GOTO_DONE(DROP_ERR_SKB_DATA);
if (bpf_skb_load_bytes(reuse_md, th->doff << 2, &cmd_copy,
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible
[not found] <20200123165934.9584-1-lmb@cloudflare.com>
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
@ 2020-01-23 16:59 ` Lorenz Bauer
2020-01-23 17:26 ` Martin Lau
2020-01-24 19:46 ` John Fastabend
2020-01-23 16:59 ` [PATCH bpf 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
4 siblings, 2 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-23 16:59 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Include the name of the mismatching result in human readable format
when reporting an error. The new output looks like the following:
unexpected result
result: [1, 0, 0, 0, 0, 0]
expected: [0, 0, 0, 0, 0, 0]
mismatch on DROP_ERR_INNER_MAP (bpf_prog_linum:153)
check_results:FAIL:382
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
---
.../bpf/prog_tests/select_reuseport.c | 30 ++++++++++++++++---
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
index 2c37ae7dc214..09a536af139a 100644
--- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
@@ -316,6 +316,28 @@ static void check_data(int type, sa_family_t family, const struct cmd *cmd,
expected.len, result.len, get_linum());
}
+static const char *result_to_str(enum result res)
+{
+ switch (res) {
+ case DROP_ERR_INNER_MAP:
+ return "DROP_ERR_INNER_MAP";
+ case DROP_ERR_SKB_DATA:
+ return "DROP_ERR_SKB_DATA";
+ case DROP_ERR_SK_SELECT_REUSEPORT:
+ return "DROP_ERR_SK_SELECT_REUSEPORT";
+ case DROP_MISC:
+ return "DROP_MISC";
+ case PASS:
+ return "PASS";
+ case PASS_ERR_SK_SELECT_REUSEPORT:
+ return "PASS_ERR_SK_SELECT_REUSEPORT";
+ case NR_RESULTS:
+ return "NR_RESULTS";
+ default:
+ return "UNKNOWN";
+ }
+}
+
static void check_results(void)
{
__u32 results[NR_RESULTS];
@@ -351,10 +373,10 @@ static void check_results(void)
printf(", %u", expected_results[i]);
printf("]\n");
- RET_IF(expected_results[broken] != results[broken],
- "unexpected result",
- "expected_results[%u] != results[%u] bpf_prog_linum:%ld\n",
- broken, broken, get_linum());
+ printf("mismatch on %s (bpf_prog_linum:%ld)\n", result_to_str(broken),
+ get_linum());
+
+ CHECK_FAIL(true);
}
static int send_data(int type, sa_family_t family, void *data, size_t len,
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf 4/4] selftests: bpf: reset global state between reuseport test runs
[not found] <20200123165934.9584-1-lmb@cloudflare.com>
` (2 preceding siblings ...)
2020-01-23 16:59 ` [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
@ 2020-01-23 16:59 ` Lorenz Bauer
2020-01-23 17:56 ` Martin Lau
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
4 siblings, 1 reply; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-23 16:59 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Currently, there is a lot of false positives if a single reuseport test
fails. This is because expected_results and the result map are not cleared.
Zero both after individual test runs, which fixes the mentioned false
positives.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
---
.../selftests/bpf/prog_tests/select_reuseport.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
index 09a536af139a..0bab8b1ca1c3 100644
--- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
@@ -699,7 +699,19 @@ static void setup_per_test(int type, sa_family_t family, bool inany,
static void cleanup_per_test(bool no_inner_map)
{
- int i, err;
+ int i, err, zero = 0;
+
+ memset(expected_results, 0, sizeof(expected_results));
+
+ for (i = 0; i < NR_RESULTS; i++) {
+ err = bpf_map_update_elem(result_map, &i, &zero, BPF_ANY);
+ RET_IF(err, "reset elem in result_map",
+ "i:%u err:%d errno:%d\n", i, err, errno);
+ }
+
+ err = bpf_map_update_elem(linum_map, &zero, &zero, BPF_ANY);
+ RET_IF(err, "reset line number in linum_map", "err:%d errno:%d\n",
+ err, errno);
for (i = 0; i < REUSEPORT_ARRAY_SIZE; i++)
close(sk_fds[i]);
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
@ 2020-01-23 17:16 ` Martin Lau
2020-01-23 17:18 ` Lorenz Bauer
2020-01-23 21:53 ` Martin Lau
2020-01-24 19:45 ` John Fastabend
2 siblings, 1 reply; 21+ messages in thread
From: Martin Lau @ 2020-01-23 17:16 UTC (permalink / raw)
To: Lorenz Bauer
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, Jan 23, 2020 at 04:59:31PM +0000, Lorenz Bauer wrote:
> The reuseport tests currently suffer from a race condition: RST
> packets count towards DROP_ERR_SKB_DATA, since they don't contain
> a valid struct cmd. Tests will spuriously fail depending on whether
> check_results is called before or after the RST is processed.
>
> Exit the BPF program early if FIN is set.
Make sense.
Is it a RST or FIN? The earlier commit message said RST.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-23 17:16 ` Martin Lau
@ 2020-01-23 17:18 ` Lorenz Bauer
0 siblings, 0 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-23 17:18 UTC (permalink / raw)
To: Martin Lau
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, 23 Jan 2020 at 17:16, Martin Lau <kafai@fb.com> wrote:
>
> On Thu, Jan 23, 2020 at 04:59:31PM +0000, Lorenz Bauer wrote:
> > The reuseport tests currently suffer from a race condition: RST
> > packets count towards DROP_ERR_SKB_DATA, since they don't contain
> > a valid struct cmd. Tests will spuriously fail depending on whether
> > check_results is called before or after the RST is processed.
> >
> > Exit the BPF program early if FIN is set.
> Make sense.
> Is it a RST or FIN? The earlier commit message said RST.
FIN, sorry. I'll update in a follow up.
--
Lorenz Bauer | Systems Engineer
6th Floor, County Hall/The Riverside Building, SE1 7PB, UK
www.cloudflare.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible
2020-01-23 16:59 ` [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
@ 2020-01-23 17:26 ` Martin Lau
2020-01-24 19:46 ` John Fastabend
1 sibling, 0 replies; 21+ messages in thread
From: Martin Lau @ 2020-01-23 17:26 UTC (permalink / raw)
To: Lorenz Bauer
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, Jan 23, 2020 at 04:59:32PM +0000, Lorenz Bauer wrote:
> Include the name of the mismatching result in human readable format
> when reporting an error. The new output looks like the following:
>
> unexpected result
> result: [1, 0, 0, 0, 0, 0]
> expected: [0, 0, 0, 0, 0, 0]
> mismatch on DROP_ERR_INNER_MAP (bpf_prog_linum:153)
> check_results:FAIL:382
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> .../bpf/prog_tests/select_reuseport.c | 30 ++++++++++++++++---
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> index 2c37ae7dc214..09a536af139a 100644
> --- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> +++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> @@ -316,6 +316,28 @@ static void check_data(int type, sa_family_t family, const struct cmd *cmd,
> expected.len, result.len, get_linum());
> }
>
> +static const char *result_to_str(enum result res)
> +{
> + switch (res) {
> + case DROP_ERR_INNER_MAP:
> + return "DROP_ERR_INNER_MAP";
> + case DROP_ERR_SKB_DATA:
> + return "DROP_ERR_SKB_DATA";
> + case DROP_ERR_SK_SELECT_REUSEPORT:
> + return "DROP_ERR_SK_SELECT_REUSEPORT";
> + case DROP_MISC:
> + return "DROP_MISC";
> + case PASS:
> + return "PASS";
> + case PASS_ERR_SK_SELECT_REUSEPORT:
> + return "PASS_ERR_SK_SELECT_REUSEPORT";
> + case NR_RESULTS:
This should return "UNKNOWN" also.
> + return "NR_RESULTS";
> + default:
> + return "UNKNOWN";
> + }
> +}
> +
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 4/4] selftests: bpf: reset global state between reuseport test runs
2020-01-23 16:59 ` [PATCH bpf 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
@ 2020-01-23 17:56 ` Martin Lau
0 siblings, 0 replies; 21+ messages in thread
From: Martin Lau @ 2020-01-23 17:56 UTC (permalink / raw)
To: Lorenz Bauer
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, Jan 23, 2020 at 04:59:33PM +0000, Lorenz Bauer wrote:
> Currently, there is a lot of false positives if a single reuseport test
> fails. This is because expected_results and the result map are not cleared.
Ah, right. An earlier test failure has ripple effect on the following tests.
I notice another embarrassing typo. Can you also make this change in this fix?
-static enum result expected_results[NR_RESULTS];
+static __u32 expected_results[NR_RESULTS];
>
> Zero both after individual test runs, which fixes the mentioned false
> positives.
Thanks for the fix!
Acked-by: Martin KaFai Lau <kafai@fb.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
@ 2020-01-23 18:34 ` Martin Lau
2020-01-24 19:50 ` John Fastabend
2020-01-24 9:20 ` Jakub Sitnicki
2020-01-24 19:43 ` John Fastabend
2 siblings, 1 reply; 21+ messages in thread
From: Martin Lau @ 2020-01-23 18:34 UTC (permalink / raw)
To: Lorenz Bauer, John Fastabend
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, Jan 23, 2020 at 04:59:30PM +0000, Lorenz Bauer wrote:
> Use a proper temporary file for sendpage tests. This means that running
> the tests doesn't clutter the working directory, and allows running the
> test on read-only filesystems.
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
> 1 file changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
> index 4a851513c842..779e11da979c 100644
> --- a/tools/testing/selftests/bpf/test_sockmap.c
> +++ b/tools/testing/selftests/bpf/test_sockmap.c
> @@ -331,7 +331,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
> FILE *file;
> int i, fp;
>
> - file = fopen(".sendpage_tst.tmp", "w+");
> + file = tmpfile();
> if (!file) {
> perror("create file for sendpage");
> return 1;
> @@ -340,13 +340,8 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
> fwrite(&k, sizeof(char), 1, file);
> fflush(file);
> fseek(file, 0, SEEK_SET);
> - fclose(file);
>
> - fp = open(".sendpage_tst.tmp", O_RDONLY);
> - if (fp < 0) {
> - perror("reopen file for sendpage");
> - return 1;
> - }
> + fp = fileno(file);
It may be better to keep fp == -1 check here.
It is not clear to me the original intention of reopen.
I would defer to John for comment.
>
> clock_gettime(CLOCK_MONOTONIC, &s->start);
> for (i = 0; i < cnt; i++) {
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
2020-01-23 17:16 ` Martin Lau
@ 2020-01-23 21:53 ` Martin Lau
2020-01-24 9:00 ` Lorenz Bauer
2020-01-24 19:45 ` John Fastabend
2 siblings, 1 reply; 21+ messages in thread
From: Martin Lau @ 2020-01-23 21:53 UTC (permalink / raw)
To: Lorenz Bauer
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, Jan 23, 2020 at 04:59:31PM +0000, Lorenz Bauer wrote:
> The reuseport tests currently suffer from a race condition: RST
> packets count towards DROP_ERR_SKB_DATA, since they don't contain
> a valid struct cmd. Tests will spuriously fail depending on whether
> check_results is called before or after the RST is processed.
>
> Exit the BPF program early if FIN is set.
btw, it needs a Fixes tag.
Patch 4 and Patch 1 also need a Fixes tag.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-23 21:53 ` Martin Lau
@ 2020-01-24 9:00 ` Lorenz Bauer
2020-01-24 9:32 ` Daniel Borkmann
0 siblings, 1 reply; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-24 9:00 UTC (permalink / raw)
To: Martin Lau
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
On Thu, 23 Jan 2020 at 21:54, Martin Lau <kafai@fb.com> wrote:
>
> btw, it needs a Fixes tag.
>
> Patch 4 and Patch 1 also need a Fixes tag.
This makes me wonder, should these go via bpf or bpf-next? Do I have
to split the series then?
--
Lorenz Bauer | Systems Engineer
6th Floor, County Hall/The Riverside Building, SE1 7PB, UK
www.cloudflare.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-23 18:34 ` Martin Lau
@ 2020-01-24 9:20 ` Jakub Sitnicki
2020-01-24 19:43 ` John Fastabend
2 siblings, 0 replies; 21+ messages in thread
From: Jakub Sitnicki @ 2020-01-24 9:20 UTC (permalink / raw)
To: Lorenz Bauer
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko,
linux-kselftest, netdev, bpf, linux-kernel
On Thu, Jan 23, 2020 at 05:59 PM CET, Lorenz Bauer wrote:
> Use a proper temporary file for sendpage tests. This means that running
> the tests doesn't clutter the working directory, and allows running the
> test on read-only filesystems.
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
> 1 file changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
> index 4a851513c842..779e11da979c 100644
> --- a/tools/testing/selftests/bpf/test_sockmap.c
> +++ b/tools/testing/selftests/bpf/test_sockmap.c
> @@ -331,7 +331,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
> FILE *file;
> int i, fp;
>
> - file = fopen(".sendpage_tst.tmp", "w+");
> + file = tmpfile();
> if (!file) {
> perror("create file for sendpage");
> return 1;
memfd_create() would be an alternative that doesn't clutter anything.
[...]
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-24 9:00 ` Lorenz Bauer
@ 2020-01-24 9:32 ` Daniel Borkmann
0 siblings, 0 replies; 21+ messages in thread
From: Daniel Borkmann @ 2020-01-24 9:32 UTC (permalink / raw)
To: Lorenz Bauer, Martin Lau
Cc: Shuah Khan, Alexei Starovoitov, Song Liu, Yonghong Song,
Andrii Nakryiko, linux-kselftest, netdev, bpf, linux-kernel
On 1/24/20 10:00 AM, Lorenz Bauer wrote:
> On Thu, 23 Jan 2020 at 21:54, Martin Lau <kafai@fb.com> wrote:
>>
>> btw, it needs a Fixes tag.
>>
>> Patch 4 and Patch 1 also need a Fixes tag.
>
> This makes me wonder, should these go via bpf or bpf-next? Do I have
> to split the series then?
Lets do all of these for bpf-next since timing is very close before v5.5 release.
If needed, we can later have them picked up for 5.5 stable.
Thanks,
Daniel
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH bpf-next v2 1/4] selftests: bpf: use a temporary file in test_sockmap
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
@ 2020-01-24 11:27 ` Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 2/4] selftests: bpf: ignore FIN packets for reuseport tests Lorenz Bauer
` (2 subsequent siblings)
3 siblings, 0 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-24 11:27 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko,
John Fastabend
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Use a proper temporary file for sendpage tests. This means that running
the tests doesn't clutter the working directory, and allows running the
test on read-only filesystems.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Fixes: 16962b2404ac ("bpf: sockmap, add selftests")
---
tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
index 4a851513c842..779e11da979c 100644
--- a/tools/testing/selftests/bpf/test_sockmap.c
+++ b/tools/testing/selftests/bpf/test_sockmap.c
@@ -331,7 +331,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
FILE *file;
int i, fp;
- file = fopen(".sendpage_tst.tmp", "w+");
+ file = tmpfile();
if (!file) {
perror("create file for sendpage");
return 1;
@@ -340,13 +340,8 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
fwrite(&k, sizeof(char), 1, file);
fflush(file);
fseek(file, 0, SEEK_SET);
- fclose(file);
- fp = open(".sendpage_tst.tmp", O_RDONLY);
- if (fp < 0) {
- perror("reopen file for sendpage");
- return 1;
- }
+ fp = fileno(file);
clock_gettime(CLOCK_MONOTONIC, &s->start);
for (i = 0; i < cnt; i++) {
@@ -354,11 +349,11 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
if (!drop && sent < 0) {
perror("send loop error");
- close(fp);
+ fclose(file);
return sent;
} else if (drop && sent >= 0) {
printf("sendpage loop error expected: %i\n", sent);
- close(fp);
+ fclose(file);
return -EIO;
}
@@ -366,7 +361,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
s->bytes_sent += sent;
}
clock_gettime(CLOCK_MONOTONIC, &s->end);
- close(fp);
+ fclose(file);
return 0;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf-next v2 2/4] selftests: bpf: ignore FIN packets for reuseport tests
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
2020-01-24 11:27 ` [PATCH bpf-next v2 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
@ 2020-01-24 11:27 ` Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
3 siblings, 0 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-24 11:27 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
The reuseport tests currently suffer from a race condition: FIN
packets count towards DROP_ERR_SKB_DATA, since they don't contain
a valid struct cmd. Tests will spuriously fail depending on whether
check_results is called before or after the FIN is processed.
Exit the BPF program early if FIN is set.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Fixes: 91134d849a0e ("bpf: Test BPF_PROG_TYPE_SK_REUSEPORT")
---
.../selftests/bpf/progs/test_select_reuseport_kern.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
index d69a1f2bbbfd..26e77dcc7e91 100644
--- a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
+++ b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
@@ -113,6 +113,12 @@ int _select_by_skb_data(struct sk_reuseport_md *reuse_md)
data_check.skb_ports[0] = th->source;
data_check.skb_ports[1] = th->dest;
+ if (th->fin)
+ /* The connection is being torn down at the end of a
+ * test. It can't contain a cmd, so return early.
+ */
+ return SK_PASS;
+
if ((th->doff << 2) + sizeof(*cmd) > data_check.len)
GOTO_DONE(DROP_ERR_SKB_DATA);
if (bpf_skb_load_bytes(reuse_md, th->doff << 2, &cmd_copy,
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf-next v2 3/4] selftests: bpf: make reuseport test output more legible
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
2020-01-24 11:27 ` [PATCH bpf-next v2 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 2/4] selftests: bpf: ignore FIN packets for reuseport tests Lorenz Bauer
@ 2020-01-24 11:27 ` Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
3 siblings, 0 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-24 11:27 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Include the name of the mismatching result in human readable format
when reporting an error. The new output looks like the following:
unexpected result
result: [1, 0, 0, 0, 0, 0]
expected: [0, 0, 0, 0, 0, 0]
mismatch on DROP_ERR_INNER_MAP (bpf_prog_linum:153)
check_results:FAIL:382
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
---
.../bpf/prog_tests/select_reuseport.c | 28 ++++++++++++++++---
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
index 2c37ae7dc214..e7e56929751c 100644
--- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
@@ -316,6 +316,26 @@ static void check_data(int type, sa_family_t family, const struct cmd *cmd,
expected.len, result.len, get_linum());
}
+static const char *result_to_str(enum result res)
+{
+ switch (res) {
+ case DROP_ERR_INNER_MAP:
+ return "DROP_ERR_INNER_MAP";
+ case DROP_ERR_SKB_DATA:
+ return "DROP_ERR_SKB_DATA";
+ case DROP_ERR_SK_SELECT_REUSEPORT:
+ return "DROP_ERR_SK_SELECT_REUSEPORT";
+ case DROP_MISC:
+ return "DROP_MISC";
+ case PASS:
+ return "PASS";
+ case PASS_ERR_SK_SELECT_REUSEPORT:
+ return "PASS_ERR_SK_SELECT_REUSEPORT";
+ default:
+ return "UNKNOWN";
+ }
+}
+
static void check_results(void)
{
__u32 results[NR_RESULTS];
@@ -351,10 +371,10 @@ static void check_results(void)
printf(", %u", expected_results[i]);
printf("]\n");
- RET_IF(expected_results[broken] != results[broken],
- "unexpected result",
- "expected_results[%u] != results[%u] bpf_prog_linum:%ld\n",
- broken, broken, get_linum());
+ printf("mismatch on %s (bpf_prog_linum:%ld)\n", result_to_str(broken),
+ get_linum());
+
+ CHECK_FAIL(true);
}
static int send_data(int type, sa_family_t family, void *data, size_t len,
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH bpf-next v2 4/4] selftests: bpf: reset global state between reuseport test runs
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
` (2 preceding siblings ...)
2020-01-24 11:27 ` [PATCH bpf-next v2 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
@ 2020-01-24 11:27 ` Lorenz Bauer
3 siblings, 0 replies; 21+ messages in thread
From: Lorenz Bauer @ 2020-01-24 11:27 UTC (permalink / raw)
To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Currently, there is a lot of false positives if a single reuseport test
fails. This is because expected_results and the result map are not cleared.
Zero both after individual test runs, which fixes the mentioned false
positives.
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Fixes: 91134d849a0e ("bpf: Test BPF_PROG_TYPE_SK_REUSEPORT")
---
.../selftests/bpf/prog_tests/select_reuseport.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
index e7e56929751c..098bcae5f827 100644
--- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
@@ -33,7 +33,7 @@
#define REUSEPORT_ARRAY_SIZE 32
static int result_map, tmp_index_ovr_map, linum_map, data_check_map;
-static enum result expected_results[NR_RESULTS];
+static __u32 expected_results[NR_RESULTS];
static int sk_fds[REUSEPORT_ARRAY_SIZE];
static int reuseport_array = -1, outer_map = -1;
static int select_by_skb_data_prog;
@@ -697,7 +697,19 @@ static void setup_per_test(int type, sa_family_t family, bool inany,
static void cleanup_per_test(bool no_inner_map)
{
- int i, err;
+ int i, err, zero = 0;
+
+ memset(expected_results, 0, sizeof(expected_results));
+
+ for (i = 0; i < NR_RESULTS; i++) {
+ err = bpf_map_update_elem(result_map, &i, &zero, BPF_ANY);
+ RET_IF(err, "reset elem in result_map",
+ "i:%u err:%d errno:%d\n", i, err, errno);
+ }
+
+ err = bpf_map_update_elem(linum_map, &zero, &zero, BPF_ANY);
+ RET_IF(err, "reset line number in linum_map", "err:%d errno:%d\n",
+ err, errno);
for (i = 0; i < REUSEPORT_ARRAY_SIZE; i++)
close(sk_fds[i]);
--
2.20.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* RE: [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-23 18:34 ` Martin Lau
2020-01-24 9:20 ` Jakub Sitnicki
@ 2020-01-24 19:43 ` John Fastabend
2 siblings, 0 replies; 21+ messages in thread
From: John Fastabend @ 2020-01-24 19:43 UTC (permalink / raw)
To: Lorenz Bauer, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Lorenz Bauer wrote:
> Use a proper temporary file for sendpage tests. This means that running
> the tests doesn't clutter the working directory, and allows running the
> test on read-only filesystems.
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
> 1 file changed, 5 insertions(+), 10 deletions(-)
>
Agree nice bit of cleanup. We should merge this in bpf-next though
considering its late in the bpf tree.
Acked-by: John Fastabend <john.fastabend@gmail.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
2020-01-23 17:16 ` Martin Lau
2020-01-23 21:53 ` Martin Lau
@ 2020-01-24 19:45 ` John Fastabend
2 siblings, 0 replies; 21+ messages in thread
From: John Fastabend @ 2020-01-24 19:45 UTC (permalink / raw)
To: Lorenz Bauer, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Lorenz Bauer wrote:
> The reuseport tests currently suffer from a race condition: RST
> packets count towards DROP_ERR_SKB_DATA, since they don't contain
> a valid struct cmd. Tests will spuriously fail depending on whether
> check_results is called before or after the RST is processed.
>
> Exit the BPF program early if FIN is set.
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> .../selftests/bpf/progs/test_select_reuseport_kern.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
> index d69a1f2bbbfd..26e77dcc7e91 100644
> --- a/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
> +++ b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
> @@ -113,6 +113,12 @@ int _select_by_skb_data(struct sk_reuseport_md *reuse_md)
> data_check.skb_ports[0] = th->source;
> data_check.skb_ports[1] = th->dest;
>
> + if (th->fin)
> + /* The connection is being torn down at the end of a
> + * test. It can't contain a cmd, so return early.
> + */
> + return SK_PASS;
> +
> if ((th->doff << 2) + sizeof(*cmd) > data_check.len)
> GOTO_DONE(DROP_ERR_SKB_DATA);
> if (bpf_skb_load_bytes(reuse_md, th->doff << 2, &cmd_copy,
> --
> 2.20.1
>
Acked-by: John Fastabend <john.fastabend@gmail.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible
2020-01-23 16:59 ` [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
2020-01-23 17:26 ` Martin Lau
@ 2020-01-24 19:46 ` John Fastabend
1 sibling, 0 replies; 21+ messages in thread
From: John Fastabend @ 2020-01-24 19:46 UTC (permalink / raw)
To: Lorenz Bauer, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
Martin KaFai Lau, Song Liu, Yonghong Song, Andrii Nakryiko
Cc: Lorenz Bauer, linux-kselftest, netdev, bpf, linux-kernel
Lorenz Bauer wrote:
> Include the name of the mismatching result in human readable format
> when reporting an error. The new output looks like the following:
>
> unexpected result
> result: [1, 0, 0, 0, 0, 0]
> expected: [0, 0, 0, 0, 0, 0]
> mismatch on DROP_ERR_INNER_MAP (bpf_prog_linum:153)
> check_results:FAIL:382
>
> Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> ---
> .../bpf/prog_tests/select_reuseport.c | 30 ++++++++++++++++---
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> index 2c37ae7dc214..09a536af139a 100644
> --- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> +++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> @@ -316,6 +316,28 @@ static void check_data(int type, sa_family_t family, const struct cmd *cmd,
> expected.len, result.len, get_linum());
> }
>
> +static const char *result_to_str(enum result res)
> +{
> + switch (res) {
> + case DROP_ERR_INNER_MAP:
> + return "DROP_ERR_INNER_MAP";
> + case DROP_ERR_SKB_DATA:
> + return "DROP_ERR_SKB_DATA";
> + case DROP_ERR_SK_SELECT_REUSEPORT:
> + return "DROP_ERR_SK_SELECT_REUSEPORT";
> + case DROP_MISC:
> + return "DROP_MISC";
> + case PASS:
> + return "PASS";
> + case PASS_ERR_SK_SELECT_REUSEPORT:
> + return "PASS_ERR_SK_SELECT_REUSEPORT";
> + case NR_RESULTS:
> + return "NR_RESULTS";
> + default:
> + return "UNKNOWN";
> + }
> +}
> +
> static void check_results(void)
> {
> __u32 results[NR_RESULTS];
> @@ -351,10 +373,10 @@ static void check_results(void)
> printf(", %u", expected_results[i]);
> printf("]\n");
>
> - RET_IF(expected_results[broken] != results[broken],
> - "unexpected result",
> - "expected_results[%u] != results[%u] bpf_prog_linum:%ld\n",
> - broken, broken, get_linum());
> + printf("mismatch on %s (bpf_prog_linum:%ld)\n", result_to_str(broken),
> + get_linum());
> +
> + CHECK_FAIL(true);
> }
>
> static int send_data(int type, sa_family_t family, void *data, size_t len,
> --
> 2.20.1
>
Acked-by: John Fastabend <john.fastabend@gmail.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap
2020-01-23 18:34 ` Martin Lau
@ 2020-01-24 19:50 ` John Fastabend
0 siblings, 0 replies; 21+ messages in thread
From: John Fastabend @ 2020-01-24 19:50 UTC (permalink / raw)
To: Martin Lau, Lorenz Bauer, John Fastabend
Cc: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Song Liu,
Yonghong Song, Andrii Nakryiko, linux-kselftest, netdev, bpf,
linux-kernel
Martin Lau wrote:
> On Thu, Jan 23, 2020 at 04:59:30PM +0000, Lorenz Bauer wrote:
> > Use a proper temporary file for sendpage tests. This means that running
> > the tests doesn't clutter the working directory, and allows running the
> > test on read-only filesystems.
> >
> > Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
> > ---
> > tools/testing/selftests/bpf/test_sockmap.c | 15 +++++----------
> > 1 file changed, 5 insertions(+), 10 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
> > index 4a851513c842..779e11da979c 100644
> > --- a/tools/testing/selftests/bpf/test_sockmap.c
> > +++ b/tools/testing/selftests/bpf/test_sockmap.c
> > @@ -331,7 +331,7 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
> > FILE *file;
> > int i, fp;
> >
> > - file = fopen(".sendpage_tst.tmp", "w+");
> > + file = tmpfile();
> > if (!file) {
> > perror("create file for sendpage");
> > return 1;
> > @@ -340,13 +340,8 @@ static int msg_loop_sendpage(int fd, int iov_length, int cnt,
> > fwrite(&k, sizeof(char), 1, file);
> > fflush(file);
> > fseek(file, 0, SEEK_SET);
> > - fclose(file);
> >
> > - fp = open(".sendpage_tst.tmp", O_RDONLY);
> > - if (fp < 0) {
> > - perror("reopen file for sendpage");
> > - return 1;
> > - }
> > + fp = fileno(file);
> It may be better to keep fp == -1 check here.
> It is not clear to me the original intention of reopen.
> I would defer to John for comment.
>
Seeing fileno shouldn't fail seems OK to me.
> >
> > clock_gettime(CLOCK_MONOTONIC, &s->start);
> > for (i = 0; i < cnt; i++) {
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2020-01-24 19:51 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20200123165934.9584-1-lmb@cloudflare.com>
2020-01-23 16:59 ` [PATCH bpf 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-23 18:34 ` Martin Lau
2020-01-24 19:50 ` John Fastabend
2020-01-24 9:20 ` Jakub Sitnicki
2020-01-24 19:43 ` John Fastabend
2020-01-23 16:59 ` [PATCH bpf 2/4] selftests: bpf: ignore RST packets for reuseport tests Lorenz Bauer
2020-01-23 17:16 ` Martin Lau
2020-01-23 17:18 ` Lorenz Bauer
2020-01-23 21:53 ` Martin Lau
2020-01-24 9:00 ` Lorenz Bauer
2020-01-24 9:32 ` Daniel Borkmann
2020-01-24 19:45 ` John Fastabend
2020-01-23 16:59 ` [PATCH bpf 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
2020-01-23 17:26 ` Martin Lau
2020-01-24 19:46 ` John Fastabend
2020-01-23 16:59 ` [PATCH bpf 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
2020-01-23 17:56 ` Martin Lau
[not found] ` <20200124112754.19664-1-lmb@cloudflare.com>
2020-01-24 11:27 ` [PATCH bpf-next v2 1/4] selftests: bpf: use a temporary file in test_sockmap Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 2/4] selftests: bpf: ignore FIN packets for reuseport tests Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 3/4] selftests: bpf: make reuseport test output more legible Lorenz Bauer
2020-01-24 11:27 ` [PATCH bpf-next v2 4/4] selftests: bpf: reset global state between reuseport test runs Lorenz Bauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).