mbox series

[bpf-next,v2,0/3] Maintain selftest configuration in-tree

Message ID 20220726201126.2486635-1-deso@posteo.net (mailing list archive)
Headers show
Series Maintain selftest configuration in-tree | expand

Message

Daniel Müller July 26, 2022, 8:11 p.m. UTC
BPF selftests mandate certain kernel configuration options to be present in
order to pass. Currently the "reference" config files containing these options
are hosted in a separate repository [0]. From there they are picked up by the
BPF continuous integration system as well as the in-tree vmtest.sh helper
script, which allows for running tests in a VM-based setup locally.

But it gets worse, as "BPF CI" is really two CI systems: one for libbpf
(mentioned above) and one for the bpf-next kernel repository (or more precisely:
family of repositories, as bpf-rc is using the system). As such, we have an
additional -- and slightly divergent -- copy of these configurations.

This patch set proposes the merging of said configurations into this repository.
Doing so provides several benefits:
1) the vmtest.sh script is now self-contained, no longer requiring to pull
   configurations over the network
2) we can have a single copy of these configurations, eliminating the
   maintenance burden of keeping two versions in-sync
3) the kernel tree is the place where most development happens, so it is the
   most natural to adjust configurations as changes are proposed there, as
   opposed to out-of-tree, where they would always remain an afterthought

The patch set is structured in such a way that we first integrate the external
configuration [0] and then adjust the vmtest.sh script to pick up the local
configuration instead of reaching out to GitHub.

[0] https://github.com/libbpf/libbpf/tree/20f03302350a4143825cedcbd210c4d7112c1898/travis-ci/vmtest/configs

---
Changelog:
v2 -> v3:
- removed seven more options from s390x configuration that overlapped with
  pre-existing config
v1 -> v2:
- minimized imported kernel configs and made them build on top of existing
  tools/testing/selftests/bpf/config
  - moved them directly into tools/testing/selftests/bpf/
- sorted and cleaned up tools/testing/selftests/bpf/config
- removed "selftests/bpf: Integrate vmtest configs" from patch set
- removed 4.9 & 5.5 configs

Daniel Müller (3):
  selftests/bpf: Sort configuration
  selftests/bpf: Copy over libbpf configs
  selftests/bpf: Adjust vmtest.sh to use local kernel configuration

 tools/testing/selftests/bpf/DENYLIST       |   6 +
 tools/testing/selftests/bpf/DENYLIST.s390x |  67 ++++++
 tools/testing/selftests/bpf/config         | 101 ++++-----
 tools/testing/selftests/bpf/config.s390x   | 147 ++++++++++++
 tools/testing/selftests/bpf/config.x86_64  | 251 +++++++++++++++++++++
 tools/testing/selftests/bpf/vmtest.sh      |  51 +++--
 6 files changed, 554 insertions(+), 69 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/DENYLIST
 create mode 100644 tools/testing/selftests/bpf/DENYLIST.s390x
 create mode 100644 tools/testing/selftests/bpf/config.s390x
 create mode 100644 tools/testing/selftests/bpf/config.x86_64

Comments

Mykola Lysenko July 26, 2022, 11:04 p.m. UTC | #1
> On Jul 26, 2022, at 1:11 PM, Daniel Müller <deso@posteo.net> wrote:
> 
> BPF selftests mandate certain kernel configuration options to be present in
> order to pass. Currently the "reference" config files containing these options
> are hosted in a separate repository [0]. From there they are picked up by the
> BPF continuous integration system as well as the in-tree vmtest.sh helper
> script, which allows for running tests in a VM-based setup locally.
> 
> But it gets worse, as "BPF CI" is really two CI systems: one for libbpf
> (mentioned above) and one for the bpf-next kernel repository (or more precisely:
> family of repositories, as bpf-rc is using the system). As such, we have an
> additional -- and slightly divergent -- copy of these configurations.
> 
> This patch set proposes the merging of said configurations into this repository.
> Doing so provides several benefits:
> 1) the vmtest.sh script is now self-contained, no longer requiring to pull
>   configurations over the network
> 2) we can have a single copy of these configurations, eliminating the
>   maintenance burden of keeping two versions in-sync
> 3) the kernel tree is the place where most development happens, so it is the
>   most natural to adjust configurations as changes are proposed there, as
>   opposed to out-of-tree, where they would always remain an afterthought
> 
> The patch set is structured in such a way that we first integrate the external
> configuration [0] and then adjust the vmtest.sh script to pick up the local
> configuration instead of reaching out to GitHub.
> 
> [0] https://github.com/libbpf/libbpf/tree/20f03302350a4143825cedcbd210c4d7112c1898/travis-ci/vmtest/configs
> 
> ---
> Changelog:
> v2 -> v3:
> - removed seven more options from s390x configuration that overlapped with
>  pre-existing config
> v1 -> v2:
> - minimized imported kernel configs and made them build on top of existing
>  tools/testing/selftests/bpf/config
>  - moved them directly into tools/testing/selftests/bpf/
> - sorted and cleaned up tools/testing/selftests/bpf/config
> - removed "selftests/bpf: Integrate vmtest configs" from patch set
> - removed 4.9 & 5.5 configs
> 
> Daniel Müller (3):
>  selftests/bpf: Sort configuration
>  selftests/bpf: Copy over libbpf configs
>  selftests/bpf: Adjust vmtest.sh to use local kernel configuration
> 
> tools/testing/selftests/bpf/DENYLIST       |   6 +
> tools/testing/selftests/bpf/DENYLIST.s390x |  67 ++++++
> tools/testing/selftests/bpf/config         | 101 ++++-----
> tools/testing/selftests/bpf/config.s390x   | 147 ++++++++++++
> tools/testing/selftests/bpf/config.x86_64  | 251 +++++++++++++++++++++
> tools/testing/selftests/bpf/vmtest.sh      |  51 +++--
> 6 files changed, 554 insertions(+), 69 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/DENYLIST
> create mode 100644 tools/testing/selftests/bpf/DENYLIST.s390x
> create mode 100644 tools/testing/selftests/bpf/config.s390x
> create mode 100644 tools/testing/selftests/bpf/config.x86_64
> 
> -- 
> 2.30.2
> 

Acked-by: Mykola Lysenko <mykolal@fb.com>
Mykola Lysenko July 26, 2022, 11:14 p.m. UTC | #2
Hey Daniel,

While each patch in series shows v3, the cover latter subject still shows v2, although description shows v2 -> v3 changes. This also explains why CI showed v2 version in PR. Something to check in your setup.

Regards,
Mykola

> On Jul 26, 2022, at 4:04 PM, Mykola Lysenko <mykolal@fb.com> wrote:
> 
> 
> 
>> On Jul 26, 2022, at 1:11 PM, Daniel Müller <deso@posteo.net> wrote:
>> 
>> BPF selftests mandate certain kernel configuration options to be present in
>> order to pass. Currently the "reference" config files containing these options
>> are hosted in a separate repository [0]. From there they are picked up by the
>> BPF continuous integration system as well as the in-tree vmtest.sh helper
>> script, which allows for running tests in a VM-based setup locally.
>> 
>> But it gets worse, as "BPF CI" is really two CI systems: one for libbpf
>> (mentioned above) and one for the bpf-next kernel repository (or more precisely:
>> family of repositories, as bpf-rc is using the system). As such, we have an
>> additional -- and slightly divergent -- copy of these configurations.
>> 
>> This patch set proposes the merging of said configurations into this repository.
>> Doing so provides several benefits:
>> 1) the vmtest.sh script is now self-contained, no longer requiring to pull
>>  configurations over the network
>> 2) we can have a single copy of these configurations, eliminating the
>>  maintenance burden of keeping two versions in-sync
>> 3) the kernel tree is the place where most development happens, so it is the
>>  most natural to adjust configurations as changes are proposed there, as
>>  opposed to out-of-tree, where they would always remain an afterthought
>> 
>> The patch set is structured in such a way that we first integrate the external
>> configuration [0] and then adjust the vmtest.sh script to pick up the local
>> configuration instead of reaching out to GitHub.
>> 
>> [0] https://github.com/libbpf/libbpf/tree/20f03302350a4143825cedcbd210c4d7112c1898/travis-ci/vmtest/configs
>> 
>> ---
>> Changelog:
>> v2 -> v3:
>> - removed seven more options from s390x configuration that overlapped with
>> pre-existing config
>> v1 -> v2:
>> - minimized imported kernel configs and made them build on top of existing
>> tools/testing/selftests/bpf/config
>> - moved them directly into tools/testing/selftests/bpf/
>> - sorted and cleaned up tools/testing/selftests/bpf/config
>> - removed "selftests/bpf: Integrate vmtest configs" from patch set
>> - removed 4.9 & 5.5 configs
>> 
>> Daniel Müller (3):
>> selftests/bpf: Sort configuration
>> selftests/bpf: Copy over libbpf configs
>> selftests/bpf: Adjust vmtest.sh to use local kernel configuration
>> 
>> tools/testing/selftests/bpf/DENYLIST       |   6 +
>> tools/testing/selftests/bpf/DENYLIST.s390x |  67 ++++++
>> tools/testing/selftests/bpf/config         | 101 ++++-----
>> tools/testing/selftests/bpf/config.s390x   | 147 ++++++++++++
>> tools/testing/selftests/bpf/config.x86_64  | 251 +++++++++++++++++++++
>> tools/testing/selftests/bpf/vmtest.sh      |  51 +++--
>> 6 files changed, 554 insertions(+), 69 deletions(-)
>> create mode 100644 tools/testing/selftests/bpf/DENYLIST
>> create mode 100644 tools/testing/selftests/bpf/DENYLIST.s390x
>> create mode 100644 tools/testing/selftests/bpf/config.s390x
>> create mode 100644 tools/testing/selftests/bpf/config.x86_64
>> 
>> -- 
>> 2.30.2
>> 
> 
> Acked-by: Mykola Lysenko <mykolal@fb.com>
Daniel Müller July 26, 2022, 11:59 p.m. UTC | #3
On Tue, Jul 26, 2022 at 11:14:40PM +0000, Mykola Lysenko wrote:
> Hey Daniel,
> 
> While each patch in series shows v3, the cover latter subject still shows v2, although description shows v2 -> v3 changes. This also explains why CI showed v2 version in PR. Something to check in your setup.

Thanks for pointing that out. Let me resend a clean v4 with correct
cover letter (to prevent any confusion from having two v3 floating
around).

Sorry about that.

[..]

Thanks,
Daniel