Skip to content

fedora & rhel-8,9,10: drop unused no_timer_check kernel parameter - #1856

Merged
supakeen merged 5 commits into
osbuild:mainfrom
lzap:drop-no_timer_check
Sep 20, 2025
Merged

supakeen merged 5 commits into
osbuild:mainfrom
lzap:drop-no_timer_check

Conversation

@lzap

@lzap lzap commented Sep 11, 2025

Copy link
Copy Markdown
Contributor

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.


https://issues.redhat.com/browse/RHEL-11974

@lzap
lzap requested a review from a team as a code owner September 11, 2025 05:50
@lzap
lzap requested review from achilleas-k, bcl and mvo5 September 11, 2025 05:50
achilleas-k
achilleas-k previously approved these changes Sep 11, 2025

@achilleas-k achilleas-k left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Splendid. Thank you!

LGTM

@achilleas-k

Copy link
Copy Markdown
Member

Note: Failing integration tests are not required and fixed in main.

mvo5
mvo5 previously approved these changes Sep 12, 2025

@mvo5 mvo5 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change looks fine. I guess it is okay that images for e.g. rhel-8.10 build once this landed are "different" from the previous images, i.e. its not a stability we guarantee or need to document somewhere?

@lzap

lzap commented Sep 12, 2025

Copy link
Copy Markdown
Contributor Author

Note: Failing integration tests are not required and fixed in main.

Appreciated the head-up, thanks. So no rebasing needed, we can put it to the queue.

images for e.g. rhel-8.10 build once this landed are "different" from the previous images, i.e. its not a stability we guarantee or need to document somewhere?

If this was for me, I do not understand at all as I am not familiar with images workflow yet. I am shooting in the dark with this one trying to repeat what I have learned during reviews.

@mvo5

mvo5 commented Sep 12, 2025

Copy link
Copy Markdown
Contributor

[..]

If this was for me, I do not understand at all as I am not familiar with images workflow yet. I am shooting in the dark with this one trying to repeat what I have learned during reviews.

More a question for the super experienced people, tbh I still often am not sure about policy details like this myself so I just want to make it explicit and hope that someone like @achilleas-k knows the answer :)

@achilleas-k

achilleas-k commented Sep 16, 2025 •

Copy link
Copy Markdown
Member

[..]

If this was for me, I do not understand at all as I am not familiar with images workflow yet. I am shooting in the dark with this one trying to repeat what I have learned during reviews.

More a question for the super experienced people, tbh I still often am not sure about policy details like this myself so I just want to make it explicit and hope that someone like @achilleas-k knows the answer :)

Taking the bug report at face value, this should not have any functional effect. If that's the case, then I think it should be fine to drop this everywhere.

Since it came up though, I did try to find out more about this.
I tracked down the addition of the option in cloud images to two RHBZs: This one is for RHEL 8 rhel-guest-image (what we call the qcow2 image): https://bugzilla.redhat.com/show_bug.cgi?id=1144155. The other is for RHEL 6 and internal only.
It seems the option works around an issue that only occurs in nested virtualisation (specifically KVM) scenarios.

I also found suggestions that this is enabled by default when running on KVM, which I think is what the current bug/request is suggesting with the pasted function docstring.

It seems to me it's safe to drop the explicit option in images as far back as RHEL 8.

@lzap
lzap dismissed stale reviews from mvo5 and achilleas-k via 3daa820 September 16, 2025 12:50
@lzap
lzap force-pushed the drop-no_timer_check branch from e23aade to 3daa820 Compare September 16, 2025 12:50
@lzap

lzap commented Sep 16, 2025 •

Copy link
Copy Markdown
Contributor Author

Ok, rebased to resolve conflicts in manifests.

Diff: https://gist.github.com/lzap/68130d16741e00895a33a97eab9c3d87

mvo5
mvo5 previously approved these changes Sep 16, 2025
bcl
bcl previously approved these changes Sep 16, 2025

@bcl bcl left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@thozza

thozza commented Sep 17, 2025

Copy link
Copy Markdown
Member

@lzap this needs a rebase

@lzap
lzap dismissed stale reviews from bcl and mvo5 via 6d9eb7f September 17, 2025 13:26
@lzap
lzap force-pushed the drop-no_timer_check branch from 3daa820 to 6d9eb7f Compare September 17, 2025 13:26
thozza
thozza previously approved these changes Sep 17, 2025
@lzap

lzap commented Sep 17, 2025

Copy link
Copy Markdown
Contributor Author

Rebased, this is getting ugly so I am proposing a radical change: #1878

supakeen
supakeen previously approved these changes Sep 17, 2025
@supakeen
supakeen enabled auto-merge September 17, 2025 13:57
This change removes the legacy no_timer_check kernel parameter from the
README to clean it up.

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.
This change removes the legacy no_timer_check kernel parameter for
Fedora.

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.
This change removes the legacy no_timer_check kernel parameter for
RHEL8.

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.
This change removes the legacy no_timer_check kernel parameter for EL9.

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.
This change removes the legacy no_timer_check kernel parameter for EL10.

This parameter was needed in the past (circa 2014-2016) to work around issues
on older hardware, but it has not been necessary since the RHEL 7 era.

As explained in arch/x86/kernel/apic/io_apic.c, its original purpose was to
handle buggy SMP boards with incorrect mptable information about the timer IRQ.
On modern hypervisors like KVM, VMware, and Hyper-V, the kernel's timer
handling is robust, and the behavior already mimics the effect of this
parameter, making it redundant.

There is no reason to add this legacy parameter on RHEL 8 or later, and Fedora
19 and later. Removing it aligns with best practices by eliminating outdated
configuration, which helps prevent future confusion.
@lzap

lzap commented Sep 19, 2025

Copy link
Copy Markdown
Contributor Author

Rebased again - conflicts.

@bcl bcl left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack Ack

@supakeen
supakeen added this pull request to the merge queue Sep 19, 2025
Merged via the queue into osbuild:main with commit 08237c3 Sep 20, 2025
25 checks passed
@lzap
lzap deleted the drop-no_timer_check branch September 22, 2025 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants