-
Notifications
You must be signed in to change notification settings - Fork 531
enhancements: support real-time kernels #166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
darkmuggle
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few questions, but otherwise it looks good to me. The prose is clear and concise.
| If there are additional changes required across the OCP product to properly support | ||
| real-time kernel (i.e. container runtime, etc) which cannot be delivered at the | ||
| same time, the real-time kernel packages can still be included as part of the | ||
| `machine-os-content` image. Additionally, exposing the tunable in the MachineConfig |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mind clarifying this? The part about lacking full support pivots to removing the tunable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My logic was:
- we prep RT kernel support in RHCOS + MCO
- we discover there are other components that are not ready
- mitigation: keep the RT kernel in the
machine-os-contentand backout the MCO change, effectively hiding the knob from users
Does that help?
|
|
||
| 1. Include the `kernel-rt` packages in the `machine-os-content` image | ||
| 2. Provide tunable in MachineConfig that selects the type of kernel to use | ||
| 3. Do initial tuning of RHCOS node after real-time kernel is applied |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to clarify what "tuning" is affected. For example, FIPS and encryption?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this falls into the bucket of tuned profiles. @cgwalters can you provide some details?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall it looks good to me. One inline comment
| - Test removal of `kernel-rt` packages on single RHCOS node | ||
| - Test `kernelType: realtime` on OCP cluster with RHCOS nodes using default kernel | ||
| - Test `kernelType: default` on OCP cluster with RHCOS nodes using default kernel | ||
| - Test `kernelType: default` on OCP cluster with RHCOS nodes already using real-time kernel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specifying one MC with setting kerneType to realtime and another one to default can lead to uncertain behavior because rendered MC will pick one of them. Instead of creating another MC with kernelType: default, We might want to test here deleting MC which adds kernelType: realtime .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it; will update that test case.
|
|
||
| ### Providing the Packages | ||
|
|
||
| The proposal is to include the `kernel-rt` packages in the `machine-os-content` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: In the standard machine-os-content. Basically denote it's not a special or different one.
|
|
||
| When the MCO parses a MachineConfig with `kernelType: default`, it shall instruct `rpm-ostree` | ||
| on the RHCOS node to remove any `kernel-rt` packages and use the default kernel. If the | ||
| `kernel-rt` packages are not present, it should be a no-op. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any logging/warning?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't going to get into those details, but no harm in calling it out explicitly.
ashcrow
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a couple minor items but it looks quite good!
| for things like nVidia GPUs will need to rebuild the kernel modules | ||
| to support the real-time kernel. | ||
|
|
||
| - Customers requiring FIPS support **SHOULD NOT** use the real-time kernel. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we handle this situation explicitly in the MCO? Like, the MCO can refuse to enable it (e.g. by setting the kerneltype=default on the rendered MC when fips=true)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems feasible. @sinnykumari WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes should be possible. MCO can print some message saying Not supported when FIPS is already enabled.
This proposal covers adding support for real-time kernels to RHCOS and the ability to select those kernels with the MCO.
|
Finally got around to making the updates ⬆️ |
ashcrow
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with the latest updates
|
Anyone object to merging? |
|
Can someone give a It's just a formality at this point; the |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ashcrow, cgwalters, miabbott, mike-nguyen, sdodson The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This proposal covers adding support for real-time kernels to RHCOS and
the ability to select those kernels with the MCO.