Public bug reported:

[Impact]
perf trace can work with BPF code and is able to use clang to build C code to 
do it. Currently, it won't be able to build them as it requires some include 
files that it looks at /usr/lib/perf/include/bpf/.

As this path is not dependent on the kernel version, shipping the latest
code would make sense as long as headers are backwards compatible.
Example code could be packaged on a versioned directory in a versioned
package.

[Test case]
$ sudo perf trace -e 
open,openat,/usr/lib/perf/examples/bpf/augmented_raw_syscalls.c cat /etc/passwd 
> /dev/null
     0.000 ( 0.027 ms): cat/2256 openat(dfd: CWD, filename: "/etc/ld.so.cache", 
flags: RDONLY|CLOEXEC) = 3
     0.058 ( 0.009 ms): cat/2256 openat(dfd: CWD, filename: 
"/lib/s390x-linux-gnu/libc.so.6", flags: RDONLY|CLOEXEC) = 3
     0.307 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/locale-archive", flags: RDONLY|CLOEXEC) = 3
     0.326 ( 0.007 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/share/locale/locale.alias", flags: RDONLY|CLOEXEC) = 3
     0.361 ( 0.005 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_IDENTIFICATION", flags: RDONLY|CLOEXEC) = 3
     0.373 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/s390x-linux-gnu/gconv/gconv-modules.cache") = 3
     0.389 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MEASUREMENT", flags: RDONLY|CLOEXEC) = 3
     0.403 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_TELEPHONE", flags: RDONLY|CLOEXEC) = 3
     0.415 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_ADDRESS", flags: RDONLY|CLOEXEC) = 3
     0.428 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_NAME", flags: RDONLY|CLOEXEC) = 3
     0.440 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_PAPER", flags: RDONLY|CLOEXEC) = 3
     0.456 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MESSAGES", flags: RDONLY|CLOEXEC) = 3
     0.464 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES", flags: RDONLY|CLOEXEC) = 
3
     0.475 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MONETARY", flags: RDONLY|CLOEXEC) = 3
     0.489 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_COLLATE", flags: RDONLY|CLOEXEC) = 3
     0.511 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_TIME", flags: RDONLY|CLOEXEC) = 3
     0.525 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_NUMERIC", flags: RDONLY|CLOEXEC) = 3
     0.536 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_CTYPE", flags: RDONLY|CLOEXEC) = 3
     0.565 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: "/etc/passwd")      
                       = 3

[Potential regression]
We might ship incompatible code with the running kernel. It might break 
building such examples.
Or we might break the old contens of the packages we are adding files to.

** Affects: linux (Ubuntu)
     Importance: Low
     Assignee: Thadeu Lima de Souza Cascardo (cascardo)
         Status: In Progress

** Affects: linux (Ubuntu Focal)
     Importance: Undecided
         Status: New

** Affects: linux (Ubuntu Groovy)
     Importance: Low
     Assignee: Thadeu Lima de Souza Cascardo (cascardo)
         Status: In Progress

** Also affects: linux (Ubuntu Groovy)
   Importance: Undecided
       Status: New

** Also affects: linux (Ubuntu Focal)
   Importance: Undecided
       Status: New

** Changed in: linux (Ubuntu Groovy)
       Status: New => In Progress

** Changed in: linux (Ubuntu Groovy)
     Assignee: (unassigned) => Thadeu Lima de Souza Cascardo (cascardo)

** Changed in: linux (Ubuntu Groovy)
   Importance: Undecided => Low

-- 
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/1892411

Title:
  Package perf-trace examples and include files

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Focal:
  New
Status in linux source package in Groovy:
  In Progress

Bug description:
  [Impact]
  perf trace can work with BPF code and is able to use clang to build C code to 
do it. Currently, it won't be able to build them as it requires some include 
files that it looks at /usr/lib/perf/include/bpf/.

  As this path is not dependent on the kernel version, shipping the
  latest code would make sense as long as headers are backwards
  compatible. Example code could be packaged on a versioned directory in
  a versioned package.

  [Test case]
  $ sudo perf trace -e 
open,openat,/usr/lib/perf/examples/bpf/augmented_raw_syscalls.c cat /etc/passwd 
> /dev/null
       0.000 ( 0.027 ms): cat/2256 openat(dfd: CWD, filename: 
"/etc/ld.so.cache", flags: RDONLY|CLOEXEC) = 3
       0.058 ( 0.009 ms): cat/2256 openat(dfd: CWD, filename: 
"/lib/s390x-linux-gnu/libc.so.6", flags: RDONLY|CLOEXEC) = 3
       0.307 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/locale-archive", flags: RDONLY|CLOEXEC) = 3
       0.326 ( 0.007 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/share/locale/locale.alias", flags: RDONLY|CLOEXEC) = 3
       0.361 ( 0.005 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_IDENTIFICATION", flags: RDONLY|CLOEXEC) = 3
       0.373 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/s390x-linux-gnu/gconv/gconv-modules.cache") = 3
       0.389 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MEASUREMENT", flags: RDONLY|CLOEXEC) = 3
       0.403 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_TELEPHONE", flags: RDONLY|CLOEXEC) = 3
       0.415 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_ADDRESS", flags: RDONLY|CLOEXEC) = 3
       0.428 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_NAME", flags: RDONLY|CLOEXEC) = 3
       0.440 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_PAPER", flags: RDONLY|CLOEXEC) = 3
       0.456 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MESSAGES", flags: RDONLY|CLOEXEC) = 3
       0.464 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES", flags: RDONLY|CLOEXEC) = 
3
       0.475 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_MONETARY", flags: RDONLY|CLOEXEC) = 3
       0.489 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_COLLATE", flags: RDONLY|CLOEXEC) = 3
       0.511 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_TIME", flags: RDONLY|CLOEXEC) = 3
       0.525 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_NUMERIC", flags: RDONLY|CLOEXEC) = 3
       0.536 ( 0.004 ms): cat/2256 openat(dfd: CWD, filename: 
"/usr/lib/locale/C.UTF-8/LC_CTYPE", flags: RDONLY|CLOEXEC) = 3
       0.565 ( 0.003 ms): cat/2256 openat(dfd: CWD, filename: "/etc/passwd")    
                         = 3

  [Potential regression]
  We might ship incompatible code with the running kernel. It might break 
building such examples.
  Or we might break the old contens of the packages we are adding files to.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1892411/+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

Reply via email to