Bug 2084228 - Review Request: rtla - Real-Time Linux Analysis tools
Summary: Review Request: rtla - Real-Time Linux Analysis tools
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jiri Kastner
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-05-11 17:11 UTC by John Kacur
Modified: 2022-07-01 09:53 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2022-07-01 09:53:54 UTC
Type: ---
Embargoed:
ppisar: fedora-review?


Attachments (Terms of Use)

Description John Kacur 2022-05-11 17:11:33 UTC
Spec URL: https://jkacur.fedorapeople.org/rtla.spec

SRPM URL: https://jkacur.fedorapeople.org/rtla-5.17.0-4.fc36.src.rpm

Description: The rtla tool is a meta-tool that includes a set of commands that
aims to analyze the real-time properties of Linux. But, instead of
testing Linux as a black box, rtla leverages kernel tracing
capabilities to provide precise information about the properties
and root causes of unexpected results.

Fedora Account System Username: jkacur

Comment 1 John Kacur 2022-05-11 20:42:42 UTC
New SRPM URL: https://jkacur.fedorapeople.org/rtla-5.17.0-5.fc36.src.rpm

This version fixes some rpmlint warnings

Comment 2 Jiri Kastner 2022-05-18 13:29:42 UTC
rtla.spec: W: invalid-url Source0: rtla-5.17.0.tar.bz2

hardcoded version in Source0
missing url in source0

Comment 3 Jiri Kastner 2022-05-18 13:39:41 UTC
as rtla is part of kernel, what about filing bug against kernel-tools package, where belongs perf, which looks like same case?

Comment 4 Daniel Bristot de Oliveira 2022-05-18 15:24:53 UTC
rtla was created following the same idea of perf. It is a tool strictly connected with the kernel, so it is part of it. But it is significant enough to have its own package. I think that bpftool follows the same model. We have use cases for the tool that would not like to benefit from the "Assortment of tools for the Linux kernel" of the kernel-tools package.

Comment 6 John Kacur 2022-05-18 15:40:38 UTC
Hi Jiri

We discussed it with the team, and there are a number of reasons that we wish to keep it separate from the subpackages in kernel-tools
I won't list them all, but a few important ones.
1. kernel-tools is a group of tools related to each other, bpf, bpf libraries and perf, while rtla is separate unrelated tool from the ones in kernel-tools
2. We which to maintain control of the rtla build separate from the kernel version.
- It might not be necessary to provide a new build of rtla everytime the kernel updates
- We might wish to provide rtla builds in-between kernel updates
- We will be backporting rtla to older kernels as well

So, I will be looking into a method of providing an acceptable Source0 for the specfile

Comment 7 Daniel Bristot de Oliveira 2022-05-18 15:44:14 UTC
So, by kernel-tools, are you guys mentioning being part of the kernel-tools package or kernel-tools group of packages, i.e., I still can do "# dnf install rtla"?

Comment 9 John Kacur 2022-05-18 17:32:59 UTC
@jforbes
We were wondering with the kernel-tools package, does the maintainer of kernel-tools have to manually add the kernel source every time a new version of the kernel is available, or are there some kind of hooks that do this for you?

Comment 10 Jiri Kastner 2022-05-19 06:56:52 UTC
(In reply to Daniel Bristot de Oliveira from comment #7)
> So, by kernel-tools, are you guys mentioning being part of the kernel-tools
> package or kernel-tools group of packages, i.e., I still can do "# dnf
> install rtla"?

[root@b1e1fe9f2813 /]# dnf info bpftool perf
Last metadata expiration check: 0:01:53 ago on Thu May 19 06:04:19 2022.
Available Packages
Name         : bpftool
Version      : 5.17.6
Release      : 300.fc36
Architecture : x86_64
Size         : 810 k
Source       : kernel-tools-5.17.6-300.fc36.src.rpm
Repository   : updates
Summary      : Inspection and simple manipulation of eBPF programs and maps
URL          : http://www.kernel.org/
License      : GPLv2
Description  : This package contains the bpftool, which allows inspection and simple
             : manipulation of eBPF programs and maps.

Name         : perf
Version      : 5.17.6
Release      : 300.fc36
Architecture : x86_64
Size         : 2.4 M
Source       : kernel-tools-5.17.6-300.fc36.src.rpm
Repository   : updates
Summary      : Performance monitoring for the Linux kernel
URL          : http://www.kernel.org/
License      : GPLv2
Description  : This package contains the perf tool, which enables performance monitoring
             : of the Linux kernel.
[root@b1e1fe9f2813 /]# dnf install bpftool
Last metadata expiration check: 0:03:19 ago on Thu May 19 06:04:19 2022.
Dependencies resolved.
=======================================================================================================================================================================================================================================================================================================================
 Package                                                                   Architecture                                                             Version                                                                            Repository                                                                 Size
=======================================================================================================================================================================================================================================================================================================================
Installing:
 bpftool                                                                   x86_64                                                                   5.17.6-300.fc36                                                                    updates                                                                   810 k

Transaction Summary
=======================================================================================================================================================================================================================================================================================================================
Install  1 Package

Total download size: 810 k
Installed size: 2.8 M
Is this ok [y/N]: n
Operation aborted.
[root@b1e1fe9f2813 /]# dnf install perf
Last metadata expiration check: 0:03:34 ago on Thu May 19 06:04:19 2022.
Dependencies resolved.
=======================================================================================================================================================================================================================================================================================================================
 Package                                                                             Architecture                                                        Version                                                                            Repository                                                            Size
=======================================================================================================================================================================================================================================================================================================================
Installing:
 perf                                                                                x86_64                                                              5.17.6-300.fc36                                                                    updates                                                              2.4 M
Installing dependencies:
 bzip2                                                                               x86_64                                                              1.0.8-11.fc36                                                                      fedora                                                                52 k
 groff-base                                                                          x86_64                                                              1.22.4-9.fc36                                                                      fedora                                                               1.0 M
 libbabeltrace                                                                       x86_64                                                              1.5.8-9.fc36                                                                       fedora                                                               189 k
 libbpf                                                                              x86_64                                                              2:0.7.0-3.fc36                                                                     updates                                                              159 k
 ncurses                                                                             x86_64                                                              6.2-9.20210508.fc36                                                                fedora                                                               400 k
 numactl-libs                                                                        x86_64                                                              2.0.14-5.fc36                                                                      fedora                                                                30 k
 perl-AutoLoader                                                                     noarch                                                              5.74-486.fc36                                                                      fedora                                                                26 k
 perl-B                                                                              x86_64                                                              1.82-486.fc36                                                                      fedora                                                               185 k
 perl-Carp                                                                           noarch                                                              1.52-479.fc36                                                                      fedora                                                                29 k
 perl-Class-Struct                                                                   noarch                                                              0.66-486.fc36                                                                      fedora                                                                27 k
 perl-Data-Dumper                                                                    x86_64                                                              2.183-3.fc36                                                                       fedora                                                                56 k
 perl-Digest                                                                         noarch                                                              1.20-2.fc36                                                                        fedora                                                                25 k
 perl-Digest-MD5                                                                     x86_64                                                              2.58-479.fc36                                                                      fedora                                                                36 k
 perl-DynaLoader                                                                     x86_64                                                              1.50-486.fc36                                                                      fedora                                                                31 k
 perl-Encode                                                                         x86_64                                                              4:3.17-485.fc36                                                                    updates                                                              1.7 M
 perl-Errno                                                                          x86_64                                                              1.33-486.fc36                                                                      fedora                                                                20 k
 perl-Exporter                                                                       noarch                                                              5.76-480.fc36                                                                      fedora                                                                31 k
 perl-Fcntl                                                                          x86_64                                                              1.14-486.fc36                                                                      fedora                                                                25 k
 perl-File-Basename                                                                  noarch                                                              2.85-486.fc36                                                                      fedora                                                                22 k
 perl-File-Path                                                                      noarch                                                              2.18-479.fc36                                                                      fedora                                                                35 k
 perl-File-Temp                                                                      noarch                                                              1:0.231.100-479.fc36                                                               fedora                                                                59 k
 perl-File-stat                                                                      noarch                                                              1.09-486.fc36                                                                      fedora                                                                22 k
 perl-FileHandle                                                                     noarch                                                              2.03-486.fc36                                                                      fedora                                                                20 k
 perl-Getopt-Long                                                                    noarch                                                              1:2.52-479.fc36                                                                    fedora                                                                60 k
 perl-Getopt-Std                                                                     noarch                                                              1.13-486.fc36                                                                      fedora                                                                21 k
 perl-HTTP-Tiny                                                                      noarch                                                              0.080-2.fc36                                                                       fedora                                                                55 k
 perl-IO                                                                             x86_64                                                              1.46-486.fc36                                                                      fedora                                                                92 k
 perl-IO-Socket-IP                                                                   noarch                                                              0.41-480.fc36                                                                      fedora                                                                42 k
 perl-IPC-Open3                                                                      noarch                                                              1.21-486.fc36                                                                      fedora                                                                28 k
 perl-MIME-Base64                                                              
......


so yes, perf and bpftool are part of kernel-tools, which are not updated with every new kernel release, only when there is change in perf/bpftool and so on:

[root@b1e1fe9f2813 /]# dnf provides kernel-core
Last metadata expiration check: 0:40:36 ago on Thu May 19 06:04:19 2022.
kernel-core-5.17.5-300.fc36.x86_64 : The Linux kernel
Repo        : fedora
Matched from:
Provide    : kernel-core = 5.17.5-300.fc36

kernel-core-5.17.7-300.fc36.x86_64 : The Linux kernel
Repo        : updates
Matched from:
Provide    : kernel-core = 5.17.7-300.fc36

[root@b1e1fe9f2813 /]# dnf provides bpftool
Last metadata expiration check: 0:40:41 ago on Thu May 19 06:04:19 2022.
bpftool-5.17.0-300.fc36.x86_64 : Inspection and simple manipulation of eBPF programs and maps
Repo        : fedora
Matched from:
Provide    : bpftool = 5.17.0-300.fc36

bpftool-5.17.6-300.fc36.x86_64 : Inspection and simple manipulation of eBPF programs and maps
Repo        : updates
Matched from:
Provide    : bpftool = 5.17.6-300.fc36

[root@b1e1fe9f2813 /]# dnf provides perf
Last metadata expiration check: 0:40:44 ago on Thu May 19 06:04:19 2022.
perf-5.17.0-300.fc36.x86_64 : Performance monitoring for the Linux kernel
Repo        : fedora
Matched from:
Provide    : perf = 5.17.0-300.fc36

perf-5.17.6-300.fc36.x86_64 : Performance monitoring for the Linux kernel
Repo        : updates
Matched from:
Provide    : perf = 5.17.6-300.fc36



each has own dependencies, not depend each other, perf depends on libbpf which is on github, while bpftool not.
i assume backports are for rhel, which usually has (had) own way for packaging kernel/perf/etc.

Comment 11 Justin M. Forbes 2022-06-08 12:21:29 UTC
(In reply to John Kacur from comment #9)
> @jforbes
> We were wondering with the kernel-tools package, does the maintainer of
> kernel-tools have to manually add the kernel source every time a new version
> of the kernel is available, or are there some kind of hooks that do this for
> you?

Yes, on the Fedora side of things, kernel-tools is maintained as a completely separate package and not as part of the kernel itself. I do handle it manually.  There was a valid reason for the split quite some time ago, though that reasoning is slightly less valid these days, and I may fold it back into kernel.  Either way, the resulting rpms would not change. For a build schedule, rawhide builds kernels tools with every linus rc release, but not with the daily git snapshots.  For stable fedora releases, I build it for whatever version is being used to rebase the releases, and then only rebuild when there are changes in stable updates which require it, so not with every release. As rtla is a part of the upstream kernel tarball, it would make more sense just to add it as a subpackage.

From a RHEL standpoint, kernel-tools subpackages are in the kernel spec, and built with every kernel. Again, it could easily be added as a subpackage there with an MR to kernel-ark (and I typically backport kernel-tools changes made to ark directly to kernel-tools in fedora as well).

Comment 12 Justin M. Forbes 2022-06-08 20:17:15 UTC
Looks like I missed part of the context there, but I did go ahead and create an rtla subpackage to kernel-tools for Fedora, this is likely all that is needed for Fedora considering we are very current with upstream. Rawhide is the linus tree, with tools built every rc release and stable fedora releases follow Greg's stable tree, and rebase fairly early. The 5.18.0 kernel release was just over 2 weeks ago, and stable Fedora will likely rebase to 5.18.x next week.

rpm -qlp kernel-tools/x86_64/rtla-5.19.0-0.rc1.git0.1.fc37.x86_64.rpm
/usr/bin/osnoise
/usr/bin/rtla
/usr/bin/timerlat
/usr/lib/.build-id
/usr/lib/.build-id/85/40b159a50de5a859b3168a9ee0f992fe546c40
/usr/share/man/man1/rtla-osnoise-hist.1.gz
/usr/share/man/man1/rtla-osnoise-top.1.gz
/usr/share/man/man1/rtla-osnoise.1.gz
/usr/share/man/man1/rtla-timerlat-hist.1.gz
/usr/share/man/man1/rtla-timerlat-top.1.gz
/usr/share/man/man1/rtla-timerlat.1.gz
/usr/share/man/man1/rtla.1.gz

A koji scratch build is available at: https://koji.fedoraproject.org/koji/taskinfo?taskID=88036372

If you like that, it could show up in the rc2 kernel-tools build on Monday, and in F35/36 with the 5.18 rebases next week.

As for managing the sources, it is rather done by hand. The upstream kernel tarball is downloaded and signature checked against kernel.org.  Every stable update built or rc1 update is patch download from kernel.org, and included separately to the release kernel tarball:

cat sources 
SHA512 (linux-5.18.tar.xz) = dbbc9d1395898a498fa4947fceda1781344fa5d360240f753810daa4fa88e519833e2186c4e582a8f1836e6413e9e85f6563c7770523b704e8702d67622f98b5
SHA512 (patch-5.19-rc1.xz) = 13952b8122f96698877f2da5ba3a3d155659f4ea7b651eac66f05627d96046665790dcbf3250e3a8567f286feccc5ef2143821ecd63d07023b8655a52716faec

Comment 13 John Kacur 2022-06-15 12:47:52 UTC
Note, Justin and I have agreed to go forward with making rtla a subpackage of kernel-tools

Comment 14 Jiri Kastner 2022-06-15 13:44:20 UTC
can you please backport it to 5.18? :)

Comment 15 Jiri Kastner 2022-06-15 13:46:05 UTC
(In reply to Jiri Kastner from comment #14)
> can you please backport it to 5.18? :)

not yet having glasses for reading - i missed rebase note :)

Comment 16 Justin M. Forbes 2022-06-30 20:40:40 UTC
It is in the 5.18 kernel-tools for f36. It is not present for F35 because one of the builddeps is too out of date. If those are updated, I am happy to add it to the next build. It is also currently in rawhide and the merge request to add it to ELN/kernel-ark is https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1901

Comment 17 Jiri Kastner 2022-07-01 09:53:54 UTC
(In reply to Justin M. Forbes from comment #16)
> It is in the 5.18 kernel-tools for f36. It is not present for F35 because
> one of the builddeps is too out of date. If those are updated, I am happy to
> add it to the next build. It is also currently in rawhide and the merge
> request to add it to ELN/kernel-ark is
> https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1901

that's fine, i'll upgrade to 36 :)

closing as it is not valid anymore for review


Note You need to log in before you can comment on or make changes to this bug.