diff mbox series

[v2] linux: Modify kernel configuration to fix runqlat issue

Message ID 20241120121923.3675835-1-Harish.Sadineni@windriver.com
State New
Headers show
Series [v2] linux: Modify kernel configuration to fix runqlat issue | expand

Commit Message

Sadineni, Harish Nov. 20, 2024, 12:19 p.m. UTC
From: Harish Sadineni <Harish.Sadineni@windriver.com>

In Qemu Running "/usr/share/bcc/tools/runqlat 1 5" gives following error:-

libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
libbpf: failed to find valid kernel BTF
modprobe: FATAL: Module kheaders not found in directory /lib/modules/6.10.14-yocto-standard
Unable to find kernel headers. Try rebuilding kernel with CONFIG_IKHEADERS=m (module) or installing
the kernel development package for your running kernel version.
chdir(/lib/modules/6.10.14-yocto-standard/build): No such file or directory
Traceback (most recent call last):
  File "/usr/share/bcc/tools/./runqlat", line 293, in <module>
    b = BPF(text=bpf_text)
  File "/usr/lib/python3.13/site-packages/bcc/__init__.py", line 479, in __init__
    raise Exception("Failed to compile BPF module %s" % (src_file or "<text>"))

the following patch fixes the error.

BCC test summary for x86_64:

Before applying the patch:
 TOTAL: 95
 PASS: 29
 FAIL: 66
After applying the patch:
 TOTAL: 95
 PASS: 79
 FAIL: 16

50 new test cases passed

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
 meta/recipes-kernel/linux/linux-yocto_6.10.bb | 1 +
 1 file changed, 1 insertion(+)

Comments

Randy MacLeod Nov. 20, 2024, 10:38 p.m. UTC | #1
Hi Harish,


When you are changing the kernel config or any part of the system that
you don't normally work on, it's a good idea to CC the people who work 
on that
part of the system. Doubly so, since this is a v2 and Bruce commented on 
v1. ;-)


On 2024-11-20 7:19 a.m., Harish.Sadineni@windriver.com wrote:
> From: Harish Sadineni<Harish.Sadineni@windriver.com>
>
> In Qemu Running "/usr/share/bcc/tools/runqlat 1 5" gives following error:-

Using fewer capitals is usually better:

s/In Qemu Running/In qemu, running:/


>
> libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> libbpf: failed to find valid kernel BTF
> modprobe: FATAL: Module kheaders not found in directory /lib/modules/6.10.14-yocto-standard
> Unable to find kernel headers. Try rebuilding kernel with CONFIG_IKHEADERS=m (module) or installing
> the kernel development package for your running kernel version.
> chdir(/lib/modules/6.10.14-yocto-standard/build): No such file or directory
> Traceback (most recent call last):
>    File "/usr/share/bcc/tools/./runqlat", line 293, in <module>
>      b = BPF(text=bpf_text)
>    File "/usr/lib/python3.13/site-packages/bcc/__init__.py", line 479, in __init__
>      raise Exception("Failed to compile BPF module %s" % (src_file or "<text>"))
>
> the following patch fixes the error.
>
> BCC test summary for x86_64:
>
> Before applying the patch:
>   TOTAL: 95
>   PASS: 29
>   FAIL: 66
> After applying the patch:
>   TOTAL: 95
>   PASS: 79
>   FAIL: 16

|Better as: State TOTAL PASS FAIL Before 95 29 66 After 95 79 16 |

>
> 50 new test cases passed

s/50 new test cases passed/Note that 50 additional cases pass./

Please explain if the remaining issues are yet to be looked at or if you 
know something about the failures. Ideally, you'd fix all the ptests or 
deliberately skip them with a sensible reason in your commit log. I'm 
not requiring you to do that yet, I just want to understand the current 
state.

Please explain why you added: 
features/reproducibility/reproducibility.scc both here and in the v3 
commit log. I not sure if we want these features as a defaults for debug 
kernels but I expect that Bruce or Zhe will comment.

Good work and I look forward having all of the bcc ptests pass.

../Randy


>
> Signed-off-by: Harish Sadineni<Harish.Sadineni@windriver.com>
> ---
>   meta/recipes-kernel/linux/linux-yocto_6.10.bb | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-kernel/linux/linux-yocto_6.10.bb b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> index 9b2334afd0..d678bce254 100644
> --- a/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> +++ b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> @@ -64,6 +64,7 @@ KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
>   KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
>   KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}"
>   KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
> +KERNEL_FEATURES:append = " ${@bb.utils.contains("KERNEL_DEBUG", "True", " features/reproducibility/reproducibility.scc features/debug/debug-btf.scc", "", d)}"
>   # libteam ptests from meta-oe needs it
>   KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}"
>   # openl2tp tests from meta-networking needs it
Bruce Ashfield Nov. 21, 2024, 3:10 a.m. UTC | #2
On Wed, Nov 20, 2024 at 5:38 PM Randy MacLeod <randy.macleod@windriver.com>
wrote:

> Hi Harish,
>
>
> When you are changing the kernel config or any part of the system that
> you don't normally work on, it's a good idea to CC the people who work on
> that
> part of the system. Doubly so, since this is a v2 and Bruce commented on
> v1. ;-)
>

Thanks Randy! I had completely missed this, and didn't even remember my
comments on v1. I just had to go back and find them!

Another tip we could add is that on any new version of a patch, summarize
the new changes in the throw away section, so us with bad memories can
remember what was motivating the v2.



>
>
> On 2024-11-20 7:19 a.m., Harish.Sadineni@windriver.com wrote:
>
> From: Harish Sadineni <Harish.Sadineni@windriver.com> <Harish.Sadineni@windriver.com>
>
> In Qemu Running "/usr/share/bcc/tools/runqlat 1 5" gives following error:-
>
> Using fewer capitals is usually better:
>
> s/In Qemu Running/In qemu, running:/
>
>
> libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> libbpf: failed to find valid kernel BTF
> modprobe: FATAL: Module kheaders not found in directory /lib/modules/6.10.14-yocto-standard
> Unable to find kernel headers. Try rebuilding kernel with CONFIG_IKHEADERS=m (module) or installing
> the kernel development package for your running kernel version.
> chdir(/lib/modules/6.10.14-yocto-standard/build): No such file or directory
> Traceback (most recent call last):
>   File "/usr/share/bcc/tools/./runqlat", line 293, in <module>
>     b = BPF(text=bpf_text)
>   File "/usr/lib/python3.13/site-packages/bcc/__init__.py", line 479, in __init__
>     raise Exception("Failed to compile BPF module %s" % (src_file or "<text>"))
>
> the following patch fixes the error.
>
> BCC test summary for x86_64:
>
> Before applying the patch:
>  TOTAL: 95
>  PASS: 29
>  FAIL: 66
> After applying the patch:
>  TOTAL: 95
>  PASS: 79
>  FAIL: 16
>
> Better as:
>
>  State    TOTAL  PASS  FAIL
>  Before    95     29    66
>  After     95     79    16
>
>  50 new test cases passed
>
> s/50 new test cases passed/Note that 50 additional cases pass./
>
> Please explain if the remaining issues are yet to be looked at or if you
> know something about the failures. Ideally, you'd fix all the ptests or
> deliberately skip them with a sensible reason in your commit log. I'm not
> requiring you to do that yet, I just want to understand the current state.
>
> Please explain why you added: features/reproducibility/reproducibility.scc
> both here and in the v3 commit log.
>

Agreed on this! If something is being provided by that fragment that the
tests need, it might actually be something that the btf fragment should
automatically include, or maybe we should be splitting out an option.

I not sure if we want these features as a defaults for debug kernels but I
> expect that Bruce or Zhe will comment.
>
For debug, it is probably ok. We don't guard against bloat/size nearly as
carefully on this.  That being said, there definitely is a difference
between a debug kernel and "a kernel for running yocto's ptests" and we
have to guard against that.

Bruce



> Good work and I look forward having all of the bcc ptests pass.
>
> ../Randy
>
> Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> <Harish.Sadineni@windriver.com>
> ---
>  meta/recipes-kernel/linux/linux-yocto_6.10.bb | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-kernel/linux/linux-yocto_6.10.bb b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> index 9b2334afd0..d678bce254 100644
> --- a/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> +++ b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
> @@ -64,6 +64,7 @@ KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
>  KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
>  KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}"
>  KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
> +KERNEL_FEATURES:append = " ${@bb.utils.contains("KERNEL_DEBUG", "True", " features/reproducibility/reproducibility.scc features/debug/debug-btf.scc", "", d)}"
>  # libteam ptests from meta-oe needs it
>  KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}"
>  # openl2tp tests from meta-networking needs it
>
>
> --
> # Randy MacLeod
> # Wind River Linux
>
>
diff mbox series

Patch

diff --git a/meta/recipes-kernel/linux/linux-yocto_6.10.bb b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
index 9b2334afd0..d678bce254 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.10.bb
@@ -64,6 +64,7 @@  KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("KERNEL_DEBUG", "True", " features/reproducibility/reproducibility.scc features/debug/debug-btf.scc", "", d)}"
 # libteam ptests from meta-oe needs it
 KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}"
 # openl2tp tests from meta-networking needs it