Dear Cloudlab Admins,
I currently have trouble collecting topdown metrics using perf.
I use emulab Ubuntu 24 image.
If I run `sudo perf stat -M Toplev1` I get:
Cannot find metric or group `TopDownL1'
And if I run profiling a specific event, I get:
sudo perf stat -e topdown-retiring --timeout 1000
Performance counter stats for 'system wide':
<not supported> topdown-retiring
1.008758344 seconds time elapsed
even if we have those PMU available at
ll topdown-retiring
-r--r--r-- 1 root root 4096 Jul 4 02:38 topdown-retiring
So I tried to bump kernel version to check if it was an issue related to kernel, but I cannot upgrade:
sudo apt-get install --install-recommends linux-generic-hwe-24.04
I get error:
Building module:
Cleaning build area...
make -j56 KERNELRELEASE=6.11.0-29-generic -C /lib/modules/6.11.0-29-generic/build M=/var/lib/dkms/emulab-ipod-dkms/3.4.0/build...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.11.0-29-generic (x86_64)
Consult /var/lib/dkms/emulab-ipod-dkms/3.4.0/build/make.log for more information.
dkms autoinstall on 6.11.0-29-generic/x86_64 failed for emulab-ipod-dkms(10)
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
* dkms: autoinstall for kernel 6.11.0-29-generic
...fail!
And make.log is:
cat /var/lib/dkms/emulab-ipod-dkms/3.4.0/build/make.log
DKMS make.log for emulab-ipod-dkms-3.4.0 for kernel 6.11.0-29-generic (x86_64)
Fri Jul 4 01:42:31 AM MDT 2025
make: Entering directory '/usr/src/linux-headers-6.11.0-29-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
You are using: gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
CC [M] /var/lib/dkms/emulab-ipod-dkms/3.4.0/build/ipod.o
/var/lib/dkms/emulab-ipod-dkms/3.4.0/build/ipod.c:158:29: error: initialization of ‘int (*)(const struct ctl_table *, int, void *, size_t *, loff_t *)’ {aka ‘int (*)(const struct ctl_table *, int, void *, long unsigned int *, long long int *)’} from incompatible pointer type ‘int (*)(struct ctl_table *, int, void *, size_t *, loff_t *)’ {aka ‘int (*)(struct ctl_table *, int, void *, long unsigned int *, long long int *)’} [-Werror=incompatible-pointer-types]
158 | .proc_handler = __PHP ipod_wq_proc,
| ^~~~~~~~~~~~
/var/lib/dkms/emulab-ipod-dkms/3.4.0/build/ipod.c:158:29: note: (near initialization for ‘ipod_table[5].proc_handler’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:244: /var/lib/dkms/emulab-ipod-dkms/3.4.0/build/ipod.o] Error 1
make[1]: *** [/usr/src/linux-headers-6.11.0-29-generic/Makefile:1938: /var/lib/dkms/emulab-ipod-dkms/3.4.0/build] Error 2
make: *** [Makefile:224: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.11.0-29-generic'
It would be very helpful if you could investigate this issue.
Thanks a lot!
Best Regards,
JooYoung