Hi @Tim, Thank you for your report.
Since this issue is like to be an issue from upstream Linux kernel, I suggest that you can file a bug report on Linux Bugzilla: https://bugzilla.kernel.org/. Thanks again. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2074202 Title: Segfault in perf (__perf_cpu_map__nr) on Linux 6.5.0-45 Status in linux package in Ubuntu: New Bug description: With package linux-tools-6.5.0-45-generic, perf will reproducibly segfault on startup: $ SYSFS_PATH=/nonexistent perf record /bin/echo Failed to read max cpus, using default of 4096 libperf: Miscounted nr_mmaps 0 vs 1 WARNING: No sample_id_all support, falling back to unordered processing perf: Segmentation fault Under gdb: Thread 1 "perf" received signal SIGSEGV, Segmentation fault. 0x0000555555739ca3 in __perf_cpu_map__nr (cpus=0x0) at cpumap.c:283 283 cpumap.c: No such file or directory. (gdb) bt #0 0x0000555555739ca3 in __perf_cpu_map__nr (cpus=0x0) at cpumap.c:283 #1 0x0000555555739f37 in perf_cpu_map__max (map=0x0) at cpumap.c:371 #2 0x00005555556ac264 in cpu_map_data__alloc (syn_data=syn_data@entry=0x7fffffff8860, header_size=header_size@entry=8) at util/synthetic-events.c:1273 #3 0x00005555556af6a6 in cpu_map_event__new (map=<optimized out>) at util/synthetic-events.c:1321 #4 perf_event__synthesize_cpu_map (tool=tool@entry=0x555555e62300 <record>, map=<optimized out>, process=process@entry=0x555555596d40 <process_synthesized_event>, machine=machine@entry=0x0) at util/synthetic-events.c:1341 #5 0x0000555555594ddf in record__synthesize (tail=tail@entry=false, rec=0x555555e62300 <record>) at builtin-record.c:2050 #6 0x000055555559891f in __cmd_record (argc=<optimized out>, argv=<optimized out>, rec=0x555555e62300 <record>) at builtin-record.c:2512 #7 0x000055555559b95f in cmd_record (argc=1, argv=0x7fffffffe450) at builtin-record.c:4260 #8 0x00005555556073f1 in run_builtin (p=p@entry=0x555555e64868 <commands+264>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe450) at perf.c:323 #9 0x000055555558580e in handle_internal_command (argv=0x7fffffffe450, argc=2) at perf.c:377 #10 run_argv (argv=<synthetic pointer>, argcp=<synthetic pointer>) at perf.c:421 #11 main (argc=2, argv=0x7fffffffe450) at perf.c:537 The SYSFS_PATH environment variable is for your convenient reproduction. My actual problem is that I'm trying to use perf inside a systemd-nspawn container. The /proc/mounts looks like this: tmpfs /sys tmpfs ro,nosuid,nodev,noexec,relatime,size=4096k,nr_inodes=1024,mode=555,inode64 0 0 ... sysfs /sys/block sysfs ro,nosuid,nodev,noexec,relatime 0 0 sysfs /sys/bus sysfs ro,nosuid,nodev,noexec,relatime 0 0 sysfs /sys/class sysfs ro,nosuid,nodev,noexec,relatime 0 0 sysfs /sys/dev sysfs ro,nosuid,nodev,noexec,relatime 0 0 sysfs /sys/devices sysfs ro,nosuid,nodev,noexec,relatime 0 0 sysfs /sys/kernel sysfs ro,nosuid,nodev,noexec,relatime 0 0 Perf looks for the first mount point with type "sysfs" and so concludes sysfs is mounted at /sys/block. Thus it can't find any relevant file and fails to detect relevant information about the system. Then it segfaults with a null pointer dereference. A workaround is to set SYSFS_PATH=/sys. Apologies if this is not the right place. Perf is in the kernel source tree so for most purposes it is a kernel bug. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2074202/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp