RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2184476 - kernel-uki-virt missing provides for built-in kernel symbols
Summary: kernel-uki-virt missing provides for built-in kernel symbols
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: kernel
Version: CentOS Stream
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Vitaly Kuznetsov
QA Contact: Li Tian
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-04-04 20:08 UTC by Peter Georg
Modified: 2023-11-07 10:41 UTC (History)
10 users (show)

Fixed In Version: kernel-5.14.0-333.el9
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-11-07 08:43:58 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Gitlab redhat/centos-stream/src/kernel centos-stream-9 merge_requests 2721 0 None opened redhat: include the information about builtin symbols into kernel-uki-virt package too 2023-06-22 12:22:29 UTC
Red Hat Issue Tracker RHELPLAN-154036 0 None None None 2023-04-04 20:09:43 UTC
Red Hat Product Errata RHSA-2023:6583 0 None None None 2023-11-07 08:44:32 UTC

Description Peter Georg 2023-04-04 20:08:55 UTC
Description of problem:
kernel-uki-virt does not list any provides for built-in symbols. kernel-uki-virt should list these provides just as kernel-core does. These provides are (afaik) generated from modules.builtin which is included in kernel-core.

Version-Release number of selected component (if applicable):


How reproducible:
Compare provides listed on
https://kojihub.stream.centos.org/koji/rpminfo?rpmID=803064
to
https://kojihub.stream.centos.org/koji/rpminfo?rpmID=803105

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 Josh Boyer 2023-04-05 11:57:40 UTC
(In reply to Peter Georg from comment #0)
> Description of problem:
> kernel-uki-virt does not list any provides for built-in symbols.
> kernel-uki-virt should list these provides just as kernel-core does. These
> provides are (afaik) generated from modules.builtin which is included in
> kernel-core.

Can you elaborate on why you think this is needed?

UKI isn't a general purpose kernel that we'd expect anyone to build modules against.  It's a self-contained, fully signed kernel used for a very specific usecase.

Comment 3 Peter Georg 2023-04-05 13:17:28 UTC
(In reply to Josh Boyer from comment #2)
> Can you elaborate on why you think this is needed?
> 
> UKI isn't a general purpose kernel that we'd expect anyone to build modules
> against.  It's a self-contained, fully signed kernel used for a very
> specific usecase.

I thought the kernel is the same but just distributed in a different format?
I.e., all kernel modules built against the RHEL kernel should be loadable independently of whether one uses the unified kernel image or the "regular" one. So the question is not about building against a kernel, but about whether one can use third party kernel modules when using the universal kernel image without having to install the regular one in addition.

If you do not expect anyone who is using the unified kernel image to install any third party kernel modules then these provides are not required and you can close this bug report.

Comment 4 Vitaly Kuznetsov 2023-04-05 15:14:41 UTC
(In reply to Peter Georg from comment #3)
> (In reply to Josh Boyer from comment #2)
> > Can you elaborate on why you think this is needed?
> > 
> > UKI isn't a general purpose kernel that we'd expect anyone to build modules
> > against.  It's a self-contained, fully signed kernel used for a very
> > specific usecase.
> 
> I thought the kernel is the same but just distributed in a different format?
> I.e., all kernel modules built against the RHEL kernel should be loadable
> independently of whether one uses the unified kernel image or the "regular"
> one. So the question is not about building against a kernel, but about
> whether one can use third party kernel modules when using the universal
> kernel image without having to install the regular one in addition.
> 
> If you do not expect anyone who is using the unified kernel image to install
> any third party kernel modules then these provides are not required and you
> can close this bug report.

Generally speaking your suggestion is correct and there is no reason to not support
third party modules when UKI is used instead of the standard kernel-core. As we are
in the very beginning on the adoption path, we wanted to limit UKI's use case to
virtual machines (and thus 'kernel-uki-virt' name) where third party modules are less
common.

Let me take the BZ and run some experiments.

Comment 5 Vitaly Kuznetsov 2023-04-25 08:05:38 UTC
I've created an MR for Fedora/ARK: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2408
if things go well, we can do a similar change to RHEL.

Comment 6 Vitaly Kuznetsov 2023-06-22 12:25:32 UTC
(In reply to Vitaly Kuznetsov from comment #5)
> I've created an MR for Fedora/ARK:
> https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2408
> if things go well, we can do a similar change to RHEL.

The change was merged in Fedora/ARK some time ago and no issues were reported,
pushing the change to RHEL as well.

Comment 11 Li Tian 2023-06-26 03:53:09 UTC
# rpm -q --provides kernel-uki-virt-5.14.0-330.2721_908379996.el9.x86_64.rpm > uki-provides
# rpm -q --provides kernel-core-5.14.0-330.2721_908379996.el9.x86_64.rpm > core-provides
# diff -u core-provides uki-provides 
--- core-provides	2023-06-25 23:39:12.065892900 -0400
+++ uki-provides	2023-06-25 23:39:04.115430600 -0400
@@ -1,5 +1,4 @@
 installonlypkg(kernel)
-kernel = 5.14.0-330.2721_908379996.el9
 kernel(IO_APIC_get_PCI_irq_vector) = 0x1eb922a3
 kernel(I_BDEV) = 0xb99ad7c5
 kernel(LZ4_decompress_fast) = 0x4c416eb9
@@ -11163,11 +11162,9 @@
 kernel(zstd_init_dstream) = 0x3cbb940b
 kernel(zstd_is_error) = 0xafc6c68e
 kernel(zstd_reset_dstream) = 0xf1a65f7b
-kernel-core = 5.14.0-330.2721_908379996.el9
-kernel-core(x86-64) = 5.14.0-330.2721_908379996.el9
-kernel-core-uname-r = 5.14.0-330.2721_908379996.el9.x86_64
+kernel-uki-virt = 5.14.0-330.2721_908379996.el9
+kernel-uki-virt(x86-64) = 5.14.0-330.2721_908379996.el9
 kernel-uname-r = 5.14.0-330.2721_908379996.el9.x86_64
-kernel-x86_64 = 5.14.0-330.2721_908379996.el9
 kmod(8250.ko)
 kmod(8250_base.ko)
 kmod(8250_dw.ko)
# rpm -ql kernel-uki-virt-5.14.0-330.2721_908379996.el9.x86_64.rpm | grep System.map
/lib/modules/5.14.0-330.2721_908379996.el9.x86_64/System.map

Tested good on 5.14.0-330.2721_908379996.el9.x86_64.
For a comparison:

# rpm -q --provides kernel-uki-virt-5.14.0-330.el9.x86_64.rpm
installonlypkg(kernel)
kernel-uki-virt = 5.14.0-330.el9
kernel-uki-virt(x86-64) = 5.14.0-330.el9
kernel-uname-r = 5.14.0-330.el9.x86_64

Comment 16 Li Tian 2023-07-03 08:26:43 UTC
# rpm -q --provides kernel-uki-virt-5.14.0-333.el9.x86_64.rpm > uki-provides
# rpm -q --provides kernel-core-5.14.0-333.el9.x86_64.rpm > core-provides
# diff -u core-provides uki-provides
--- core-provides	2023-07-03 04:19:26.491157525 -0400
+++ uki-provides	2023-07-03 04:16:50.714236417 -0400
@@ -1,5 +1,4 @@
 installonlypkg(kernel)
-kernel = 5.14.0-333.el9
 kernel(IO_APIC_get_PCI_irq_vector) = 0x1eb922a3
 kernel(I_BDEV) = 0xbe821159
 kernel(LZ4_decompress_fast) = 0x4c416eb9
@@ -11176,11 +11175,9 @@
 kernel(zstd_init_dstream) = 0x3cbb940b
 kernel(zstd_is_error) = 0xafc6c68e
 kernel(zstd_reset_dstream) = 0xf1a65f7b
-kernel-core = 5.14.0-333.el9
-kernel-core(x86-64) = 5.14.0-333.el9
-kernel-core-uname-r = 5.14.0-333.el9.x86_64
+kernel-uki-virt = 5.14.0-333.el9
+kernel-uki-virt(x86-64) = 5.14.0-333.el9
 kernel-uname-r = 5.14.0-333.el9.x86_64
-kernel-x86_64 = 5.14.0-333.el9
 kmod(8250.ko)
 kmod(8250_base.ko)
 kmod(8250_dw.ko)

Tested good on 5.14.0-333.el9.x86_64.

Comment 18 errata-xmlrpc 2023-11-07 08:43:58 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: kernel security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2023:6583


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