[lttng-dev] loading modules with modprobe

François Belias beliasossim at gmail.com
Tue Jul 16 16:34:09 EDT 2024


Hello Kienan,

When I proceed with the following steps:

```
# Warning: this removes all untracked content from the lttng-modules
directory
cd /path/to/lttng-modules-source
git clean -dxf

make
sudo make modules_install
sudo depmod -a
```

I encounter a warning in
`/home/philippe/lttng-modules/src/probes/Kbuild:79` stating "File
./arch/x86/kvm/lapic.h not found. Probe 'kvm' x86-specific is disabled. Use
full kernel source tree to enable it." Although everything compiles fine
and I'm able to load modules, when I execute `sudo lttng list -k`, I don't
see the tracepoints `kvm_entry` and `kvm_exit`, which I believe should be
available. Could this be due to not using my full kernel tree during
compilation?

Here are the answers to your questions:

- *Where did `/usr/src/linux-source-6.5.0` come from?*
  I initially attempted `sudo apt-get update && sudo apt-get install
linux-source`, but it gave me this answer *linux-source is already the
newest version (5.15.0.116.116)*`, which doesn't match my current kernel
version. So, I downloaded it directly from kernel.org using this command:
`wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.5.tar.xz`.

- *Which Linux distribution and version are you using?*
  Running `lsb_release -a` gives me:
  ```
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 22.04.4 LTS
  Release:        22.04
  Codename:       jammy
  ```

- *Assuming your distribution has kernel packages, which do you have
installed, and do you have the corresponding kernel headers package
installed?*

  Running `dpkg -l | grep linux-image` shows these installed packages:
  ```
  ii  linux-image-5.15.0-116-generic           5.15.0-116.126      amd64
Signed kernel image generic
  ii  linux-image-6.5.0-28-generic             6.5.0-28.29~22.04.1  amd64
Signed kernel image generic
  ii  linux-image-6.5.0-41-generic             6.5.0-41.41~22.04.2  amd64
Signed kernel image generic
  ii  linux-image-6.5.0-44-generic             6.5.0-44.44~22.04.1  amd64
Signed kernel image generic
  ii  linux-image-generic                      5.15.0.116.116      amd64
Generic Linux kernel image
  ii  linux-image-generic-hwe-22.04            6.5.0.44.44~22.04.1  amd64
Generic Linux kernel image
  ```

  And `dpkg -l | grep linux-headers` shows these installed header packages:
  ```
  ii  linux-headers-5.15.0-116                 5.15.0-116.126      all
Header files related to Linux kernel version 5.15.0
  ii  linux-headers-5.15.0-116-generic         5.15.0-116.126      amd64
Linux kernel headers for version 5.15.0 on 64 bit x86 SMP
  ii  linux-headers-6.5.0-28-generic           6.5.0-28.29~22.04.1  amd64
Linux kernel headers for version 6.5.0 on 64 bit x86 SMP
  ii  linux-headers-6.5.0-41-generic           6.5.0-41.41~22.04.2  amd64
Linux kernel headers for version 6.5.0 on 64 bit x86 SMP
  ii  linux-headers-6.5.0-44-generic           6.5.0-44.44~22.04.1  amd64
Linux kernel headers for version 6.5.0 on 64 bit x86 SMP
  ii  linux-headers-generic                    5.15.0.116.116      amd64
Generic Linux kernel headers
  ii  linux-headers-generic-hwe-22.04          6.5.0.44.44~22.04.1  amd64
Generic Linux kernel headers
  ```

Thanks.
















Le mar. 16 juill. 2024, à 15 h 41, Kienan Stewart <kstewart at efficios.com> a
écrit :

> Hi François,
>
> On 7/16/24 3:01 PM, François Belias wrote:
> > Hello Kienan,
> >
> > I've continued investigating my issue and discovered something new that
> > might shed some light. Here's the rundown:
> >
> > 1. To ensure my add-ons weren't causing problems, deleted all old
> > modules and I followed the documentation on the LTTng website
> > (https://lttng.org/docs/v2.13/#doc-building-from-source
> > <https://lttng.org/docs/v2.13/#doc-building-from-source>) and
> downloaded
> > `lttng-modules-2.13.13`.
> >
> > 2. Inside the downloaded folder, I successfully executed `make
> > KERNELDIR=/usr/src/linux-source-6.5.0` without any issues.
> >
> > 3. Subsequently, I ran `make KERNELDIR=/usr/src/linux-source-6.5.0
> > modules_install`, which also completed successfully.
> >
> > 4. After that, I updated the module dependencies using `sudo depmod -a`,
> > which went fine.
> >
> > However, when I tried to load a module, such as `sudo modprobe
> > lttng-probe-kvm`, it reported that the module couldn't be found at
> > `/lib/modules/6.5.0-41-generic/`. Upon checking the logs, I confirmed
> > that step 3 had installed the modules in `/lib/modules/6.5.0/`.
> >
> > To address this, I modified step 3 to simply `make modules_install`,
> > which then installed the modules correctly at
> > `/lib/modules/6.5.0-41-generic/` and ran again step 4. But now, when
> > attempting to load a module, I'm encountering the error `modprobe:
> > ERROR: could not insert 'lttng_probe_kvm': Exec format error`.
> >
> > Do you have any insights or ideas on what might be causing this issue?
> >
>
> It sounds like /usr/src/linux-source-6.5.0 is not correct source for the
> kernel that you are currently running.
>
> When running `make modules_install` in your modified step 3 (without
> KERNELDIR set), the modules were installed for your current kernel
> directory as auto-detected by the build script.
>
> What happens if you do the following
>
> ```
> unset KERNELDIR
>
> # Warning: this removes all untracked content from the lttng-modules
> directory
> cd /path/to/lttng-modules-source
> git clean -dxf
>
> make
> sudo make modules_install
> sudo depmod -a
> ```
>
> KERNELDIR is set based on the current running kernel: `uname -r`. C.f.
>
> https://github.com/lttng/lttng-modules/blob/434e86eea846b33cad57f1d8105089905f541853/Makefile#L16C1-L16C50
>
> A couple of questions for you:
>
> - Where did /usr/src/linux-source-6.5.0 come from?
> - Which linux distribution + version are you using?
> - Assuming your distribution has kernel packages, which do you have
> installed, and do you have the corresponding kernel headers package
> installed?
>
> thanks,
> kienan
>
> > Thanks again for your assistance.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Le mar. 16 juill. 2024, à 09 h 05, Kienan Stewart <kstewart at efficios.com
> > <mailto:kstewart at efficios.com>> a écrit :
> >
> >     Hi François,
> >
> >     On 7/15/24 6:10 PM, François Belias via lttng-dev wrote:
> >      > Hello,
> >      >
> >      > I'm currently running Linux kernel version 6.5.0-41-generic and
> >      > attempting to install LTTng from source. Here are the steps I
> >     followed:
> >      >
> >      >   - I cloned the LTTng git repository to my computer from
> >      >
> >     [
> https://github.com/lttng/lttng-modules.git](https://github.com/lttng/lttng-modules.git)
> <
> https://github.com/lttng/lttng-modules.git%5D(https://github.com/lttng/lttng-modules.git)>
> <
> https://github.com/lttng/lttng-modules.git](https://github.com/lttng/lttng-modules.git)
> <
> https://github.com/lttng/lttng-modules.git%5D(https://github.com/lttng/lttng-modules.git)
> >>.
> >      > - Downloaded the kernel source tree corresponding to my kernel
> >     version
> >      > to enable compilation.
> >      > - Executed `make KERNELDIR=/path/to/my/linux/source`, which was
> >      > completed successfully.
> >      > - Ran `make KERNELDIR=/path/to/my/linux/source modules_install`,
> >     also
> >      > without any issues.
> >      > - Finally, I executed `sudo depmod -a`, which was completed
> >     successfully.
> >      >
> >      > However, when I attempt to load a module with commands like `sudo
> >      > modprobe lttng-ketprobes` or "sudo modprobe lttng-tracer", I
> >     encounter
> >      > the following errors:
> >      >
> >      > - For `lttng-ketprobes`: `modprobe: FATAL: Module lttng-ketprobes
> >     not
> >      > found in directory /lib/modules/6.5.0-41-generic`.
> >      > - For `lttng-tracer`: `modprobe: ERROR: could not insert
> >     'lttng_tracer':
> >      > Exec format error`.
> >
> >     If you rebuilt modules on the master branch as of yesterday you may
> >     need
> >     to clean the LTTng modules install directory, rebuild, and reinstall.
> >
> >     This is due to kprobes, kretprobes, and uprobes modules being
> included
> >     in the tracer core module. C.f.
> >
> https://github.com/lttng/lttng-modules/commit/0c2c6606eb66cb5222ab7a2a4f8329fd5dfdef70
> <
> https://github.com/lttng/lttng-modules/commit/0c2c6606eb66cb5222ab7a2a4f8329fd5dfdef70
> >
> >
> >     You may want to stick with running lttng-modules 2.13.x which will
> not
> >     have breaking changes merged in.
> >
> >     The exec format error also could be due to modules that are installed
> >     but built against a different version of the Linux kernel.
> >
> >     A few things to check
> >
> >     - If your kernel has been upgraded recently, ensure the new kernel is
> >     the one actually running
> >     - If the modules haven't been rebuilt since the upgrade, they should
> be
> >     rebuilt and reinstalled
> >     - As I recall, you are playing around with some addon modules - do
> any
> >     of those modules define dependencies on the kprobes, kretprobes, or
> >     uprobes modules which now are no longer produced by builds of the
> >     master
> >     branch
> >
> >     Is there further information in dmesg or journalctl regarding the
> >     module
> >     loading?
> >
> >     hope this helps.
> >
> >     thanks,
> >     kienan
> >
> >      >
> >      > I've confirmed that the modules exist but can't load them. I'm
> >     unsure
> >      > how to resolve these issues. Could someone please assist me?
> >      >
> >      > Thank you.
> >      >
> >      > _______________________________________________
> >      > lttng-dev mailing list
> >      > lttng-dev at lists.lttng.org <mailto:lttng-dev at lists.lttng.org>
> >      > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> >     <https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20240716/54a94bd3/attachment-0001.htm>


More information about the lttng-dev mailing list