[SRU][Bionic][PATCH 0/1] Fix for LP: #1753941

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU][Bionic][PATCH 0/1] Fix for LP: #1753941

Kleber Souza
BugLink: https://bugs.launchpad.net/bugs/1753941

== SRU Justification ==
The ubuntu_bpf_jit test will fail with the following 5 test cases:

test_bpf: #292 BPF_MAXINSNS: Ctx heavy transformations FAIL to prog_create err=-524 len=4096
test_bpf: #293 BPF_MAXINSNS: Call heavy transformations FAIL to prog_create err=-524 len=4096
test_bpf: #298 BPF_MAXINSNS: ld_abs+get_processor_id FAIL to prog_create err=-524 len=4096
test_bpf: #299 BPF_MAXINSNS: ld_abs+vlan_push/pop FAIL to select_runtime err=-524
test_bpf: #300 BPF_MAXINSNS: jump around ld_abs FAIL to select_runtime err=-524

test_bpf: Summary: 337 PASSED, 5 FAILED, [329/329 JIT'ed]

And modprobe error can be found in the report as well:
modprobe: ERROR: could not insert 'test_bpf': Invalid argument

Issue can be reproduce on both zVM and Ubuntu on LPAR s390x systems.

== Fix ==
3203c9010060 ("test_bpf: flag tests that cannot be jited on s390")

A backport of the fix is needed to compile out "BPF_MAXINSNS:
ld_abs+vlan_push/pop" and "BPF_MAXINSNS: jump around ld_abs" testcases. They
have been removed from lib/test_bpf.c with 93731ef086ce ("bpf: migrate ebpf
ld_abs/ld_ind tests to test_verifier"), however, backporting this patch would
require pulling other patches as prereqs.

== Regression Potential ==
None, the fix is in a test module and only masks failing testcases on s390 only.

== Test Case ==
Load the test_bpf module, it should load without errors.

Kleber Sacilotto de Souza (1):
  test_bpf: flag tests that cannot be jited on s390

 lib/test_bpf.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[SRU][Bionic][PATCH 1/1] test_bpf: flag tests that cannot be jited on s390

Kleber Souza
BugLink: https://bugs.launchpad.net/bugs/1753941

Flag with FLAG_EXPECTED_FAIL the BPF_MAXINSNS tests that cannot be jited
on s390 because they exceed BPF_SIZE_MAX and fail when
CONFIG_BPF_JIT_ALWAYS_ON is set. Also set .expected_errcode to -ENOTSUPP
so the tests pass in that case.

Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>
Acked-by: Song Liu <[hidden email]>
Signed-off-by: Daniel Borkmann <[hidden email]>
(backported from commit 3203c9010060806ff88c9989aeab4dc8d9a474dc)
[ klebers: compile out for s390 also the testcases:
  - BPF_MAXINSNS: ld_abs+vlan_push/pop
  - BPF_MAXINSNS: jump around ld_abs ]
Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>
---
 lib/test_bpf.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/test_bpf.c b/lib/test_bpf.c
index 59359aad645d..1fe4d4b33217 100644
--- a/lib/test_bpf.c
+++ b/lib/test_bpf.c
@@ -5419,21 +5419,31 @@ static struct bpf_test tests[] = {
  { /* Mainly checking JIT here. */
  "BPF_MAXINSNS: Ctx heavy transformations",
  { },
+#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
+ CLASSIC | FLAG_EXPECTED_FAIL,
+#else
  CLASSIC,
+#endif
  { },
  {
  {  1, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) },
  { 10, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) }
  },
  .fill_helper = bpf_fill_maxinsns6,
+ .expected_errcode = -ENOTSUPP,
  },
  { /* Mainly checking JIT here. */
  "BPF_MAXINSNS: Call heavy transformations",
  { },
+#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
+ CLASSIC | FLAG_NO_DATA | FLAG_EXPECTED_FAIL,
+#else
  CLASSIC | FLAG_NO_DATA,
+#endif
  { },
  { { 1, 0 }, { 10, 0 } },
  .fill_helper = bpf_fill_maxinsns7,
+ .expected_errcode = -ENOTSUPP,
  },
  { /* Mainly checking JIT here. */
  "BPF_MAXINSNS: Jump heavy test",
@@ -5475,11 +5485,17 @@ static struct bpf_test tests[] = {
  {
  "BPF_MAXINSNS: ld_abs+get_processor_id",
  { },
+#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
+ CLASSIC | FLAG_EXPECTED_FAIL,
+#else
  CLASSIC,
+#endif
  { },
  { { 1, 0xbee } },
  .fill_helper = bpf_fill_ld_abs_get_processor_id,
+ .expected_errcode = -ENOTSUPP,
  },
+#if !(defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390))
  {
  "BPF_MAXINSNS: ld_abs+vlan_push/pop",
  { },
@@ -5496,6 +5512,7 @@ static struct bpf_test tests[] = {
  { { 2, 10 } },
  .fill_helper = bpf_fill_jump_around_ld_abs,
  },
+#endif
  /*
  * LD_IND / LD_ABS on fragmented SKBs
  */
--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU][Bionic][PATCH 1/1] test_bpf: flag tests that cannot be jited on s390

Stefan Bader-2
On 10.07.2018 13:13, Kleber Sacilotto de Souza wrote:

> BugLink: https://bugs.launchpad.net/bugs/1753941
>
> Flag with FLAG_EXPECTED_FAIL the BPF_MAXINSNS tests that cannot be jited
> on s390 because they exceed BPF_SIZE_MAX and fail when
> CONFIG_BPF_JIT_ALWAYS_ON is set. Also set .expected_errcode to -ENOTSUPP
> so the tests pass in that case.
>
> Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>
> Acked-by: Song Liu <[hidden email]>
> Signed-off-by: Daniel Borkmann <[hidden email]>
> (backported from commit 3203c9010060806ff88c9989aeab4dc8d9a474dc)
> [ klebers: compile out for s390 also the testcases:
>   - BPF_MAXINSNS: ld_abs+vlan_push/pop
>   - BPF_MAXINSNS: jump around ld_abs ]
> Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>
Acked-by: Stefan Bader <[hidden email]>

> ---
>  lib/test_bpf.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/lib/test_bpf.c b/lib/test_bpf.c
> index 59359aad645d..1fe4d4b33217 100644
> --- a/lib/test_bpf.c
> +++ b/lib/test_bpf.c
> @@ -5419,21 +5419,31 @@ static struct bpf_test tests[] = {
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Ctx heavy transformations",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC,
> +#endif
>   { },
>   {
>   {  1, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) },
>   { 10, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) }
>   },
>   .fill_helper = bpf_fill_maxinsns6,
> + .expected_errcode = -ENOTSUPP,
>   },
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Call heavy transformations",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_NO_DATA | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC | FLAG_NO_DATA,
> +#endif
>   { },
>   { { 1, 0 }, { 10, 0 } },
>   .fill_helper = bpf_fill_maxinsns7,
> + .expected_errcode = -ENOTSUPP,
>   },
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Jump heavy test",
> @@ -5475,11 +5485,17 @@ static struct bpf_test tests[] = {
>   {
>   "BPF_MAXINSNS: ld_abs+get_processor_id",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC,
> +#endif
>   { },
>   { { 1, 0xbee } },
>   .fill_helper = bpf_fill_ld_abs_get_processor_id,
> + .expected_errcode = -ENOTSUPP,
>   },
> +#if !(defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390))
>   {
>   "BPF_MAXINSNS: ld_abs+vlan_push/pop",
>   { },
> @@ -5496,6 +5512,7 @@ static struct bpf_test tests[] = {
>   { { 2, 10 } },
>   .fill_helper = bpf_fill_jump_around_ld_abs,
>   },
> +#endif
>   /*
>   * LD_IND / LD_ABS on fragmented SKBs
>   */
>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU][Bionic][PATCH 1/1] test_bpf: flag tests that cannot be jited on s390

Thadeu Lima de Souza Cascardo-3
In reply to this post by Kleber Souza
On Tue, Jul 10, 2018 at 01:13:45PM +0200, Kleber Sacilotto de Souza wrote:

> BugLink: https://bugs.launchpad.net/bugs/1753941
>
> Flag with FLAG_EXPECTED_FAIL the BPF_MAXINSNS tests that cannot be jited
> on s390 because they exceed BPF_SIZE_MAX and fail when
> CONFIG_BPF_JIT_ALWAYS_ON is set. Also set .expected_errcode to -ENOTSUPP
> so the tests pass in that case.
>
> Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>
> Acked-by: Song Liu <[hidden email]>
> Signed-off-by: Daniel Borkmann <[hidden email]>
> (backported from commit 3203c9010060806ff88c9989aeab4dc8d9a474dc)
> [ klebers: compile out for s390 also the testcases:
>   - BPF_MAXINSNS: ld_abs+vlan_push/pop
>   - BPF_MAXINSNS: jump around ld_abs ]
> Signed-off-by: Kleber Sacilotto de Souza <[hidden email]>

Applies only to the tests, so shouldn't break the kernel. And should fix our
test results, and applied upstream. Looking at the upstream commits, it's
possible to understand the changes.

Acked-by: Thadeu Lima de Souza Cascardo <[hidden email]>

> ---
>  lib/test_bpf.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/lib/test_bpf.c b/lib/test_bpf.c
> index 59359aad645d..1fe4d4b33217 100644
> --- a/lib/test_bpf.c
> +++ b/lib/test_bpf.c
> @@ -5419,21 +5419,31 @@ static struct bpf_test tests[] = {
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Ctx heavy transformations",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC,
> +#endif
>   { },
>   {
>   {  1, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) },
>   { 10, !!(SKB_VLAN_TCI & VLAN_TAG_PRESENT) }
>   },
>   .fill_helper = bpf_fill_maxinsns6,
> + .expected_errcode = -ENOTSUPP,
>   },
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Call heavy transformations",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_NO_DATA | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC | FLAG_NO_DATA,
> +#endif
>   { },
>   { { 1, 0 }, { 10, 0 } },
>   .fill_helper = bpf_fill_maxinsns7,
> + .expected_errcode = -ENOTSUPP,
>   },
>   { /* Mainly checking JIT here. */
>   "BPF_MAXINSNS: Jump heavy test",
> @@ -5475,11 +5485,17 @@ static struct bpf_test tests[] = {
>   {
>   "BPF_MAXINSNS: ld_abs+get_processor_id",
>   { },
> +#if defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390)
> + CLASSIC | FLAG_EXPECTED_FAIL,
> +#else
>   CLASSIC,
> +#endif
>   { },
>   { { 1, 0xbee } },
>   .fill_helper = bpf_fill_ld_abs_get_processor_id,
> + .expected_errcode = -ENOTSUPP,
>   },
> +#if !(defined(CONFIG_BPF_JIT_ALWAYS_ON) && defined(CONFIG_S390))
>   {
>   "BPF_MAXINSNS: ld_abs+vlan_push/pop",
>   { },
> @@ -5496,6 +5512,7 @@ static struct bpf_test tests[] = {
>   { { 2, 10 } },
>   .fill_helper = bpf_fill_jump_around_ld_abs,
>   },
> +#endif
>   /*
>   * LD_IND / LD_ABS on fragmented SKBs
>   */
> --
> 2.17.1

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED: [SRU][Bionic][PATCH 0/1] Fix for LP: #1753941

Kleber Souza
In reply to this post by Kleber Souza
On 07/10/18 13:13, Kleber Sacilotto de Souza wrote:

> BugLink: https://bugs.launchpad.net/bugs/1753941
>
> == SRU Justification ==
> The ubuntu_bpf_jit test will fail with the following 5 test cases:
>
> test_bpf: #292 BPF_MAXINSNS: Ctx heavy transformations FAIL to prog_create err=-524 len=4096
> test_bpf: #293 BPF_MAXINSNS: Call heavy transformations FAIL to prog_create err=-524 len=4096
> test_bpf: #298 BPF_MAXINSNS: ld_abs+get_processor_id FAIL to prog_create err=-524 len=4096
> test_bpf: #299 BPF_MAXINSNS: ld_abs+vlan_push/pop FAIL to select_runtime err=-524
> test_bpf: #300 BPF_MAXINSNS: jump around ld_abs FAIL to select_runtime err=-524
>
> test_bpf: Summary: 337 PASSED, 5 FAILED, [329/329 JIT'ed]
>
> And modprobe error can be found in the report as well:
> modprobe: ERROR: could not insert 'test_bpf': Invalid argument
>
> Issue can be reproduce on both zVM and Ubuntu on LPAR s390x systems.
>
> == Fix ==
> 3203c9010060 ("test_bpf: flag tests that cannot be jited on s390")
>
> A backport of the fix is needed to compile out "BPF_MAXINSNS:
> ld_abs+vlan_push/pop" and "BPF_MAXINSNS: jump around ld_abs" testcases. They
> have been removed from lib/test_bpf.c with 93731ef086ce ("bpf: migrate ebpf
> ld_abs/ld_ind tests to test_verifier"), however, backporting this patch would
> require pulling other patches as prereqs.
>
> == Regression Potential ==
> None, the fix is in a test module and only masks failing testcases on s390 only.
>
> == Test Case ==
> Load the test_bpf module, it should load without errors.
>
> Kleber Sacilotto de Souza (1):
>   test_bpf: flag tests that cannot be jited on s390
>
>  lib/test_bpf.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>

Applied to bionic/master-next branch.

Thanks,
Kleber

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team