Description of problem:
"isolate_managed_irq=Y" is an important boolean option for rhel8.2 KVM-RT guest. Without this option, KVM-RT guest can not get expected latency performance.
This option should be mentioned in the correct config files: /etc/tuned/realtime-virtual-host-variables.conf (for RT host) and /etc/tuned/realtime-virtual-guest-variables.conf (for RT guest)
Current "isolate_managed_irq=Y" is only explained in /etc/tuned/realtime-variables.conf. This may confuse users.
Version-Release number of selected component (if applicable):
tuned-2.13.0-6.el8.noarch
4.18.0-192.rt13.50.el8.x86_64
How reproducible:
100%
Steps to Reproduce:
1. Uncomment "isolate_managed_irq=Y" in /etc/tuned/realtime-variables.conf, it doesn't work. Kernel option shows "isolcpus=X-Y", but we expect "isolcpus=managed_irq,domain,X-Y".
cat /etc/tuned/realtime-variables.conf
# Examples:
# isolated_cores=2,4-7
# isolated_cores=2-23
#
#
# Uncomment the 'isolate_managed_irq=Y' bellow if you want to move kernel
# managed IRQs out of isolated cores. Note that this requires kernel
# support. Please only specify this parameter if you are sure that the
# kernel supports it.
#
# isolate_managed_irq=Y
2. Specify "isolate_managed_irq=Y" in /etc/tuned/realtime-virtual-host-variables.conf, it works as expected in RT host.
# cat /etc/tuned/realtime-virtual-host-variables.conf
isolated_cores=1,3,5,7,9,11,13,15,17,19,12,14,16,18
isolate_managed_irq=Y
# cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-192.rt13.50.el8.x86_64 root=/dev/mapper/rhel_dell--per430--09-root ro crashkernel=auto resume=/dev/mapper/rhel_dell--per430--09-swap rd.lvm.lv=rhel_dell-per430-09/root rd.lvm.lv=rhel_dell-per430-09/swap console=ttyS0,115200n81 skew_tick=1 isolcpus=managed_irq,domain,1,3,5,7,9,11,13,15,17,19,12,14,16,18 intel_pstate=disable nosoftlockup nohz=on nohz_full=1,3,5,7,9,11,13,15,17,19,12,14,16,18 rcu_nocbs=1,3,5,7,9,11,13,15,17,19,12,14,16,18 default_hugepagesz=1G iommu=pt intel_iommu=on tsc=nowatchdog mitigations=off
3. Specify "isolate_managed_irq=Y" in /etc/tuned/realtime-virtual-guest-variables.conf, it works as expected in RT guest.
# cat /etc/tuned/realtime-virtual-guest-variables.conf
isolated_cores=1
isolate_managed_irq=Y
# cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-192.rt13.50.el8.x86_64 root=/dev/mapper/rhel_vm--73--232-root ro console=tty0 console=ttyS0,115200n8 biosdevname=0 crashkernel=auto resume=/dev/mapper/rhel_vm--73--232-swap rd.lvm.lv=rhel_vm-73-232/root rd.lvm.lv=rhel_vm-73-232/swap skew_tick=1 isolcpus=managed_irq,domain,1 intel_pstate=disable nosoftlockup nohz=on nohz_full=1 rcu_nocbs=1 default_hugepagesz=1G iommu=pt intel_iommu=on tsc=nowatchdog mitigations=off
Actual results:
"isolate_managed_irq=Y" doesn't be mentioned in "/etc/tuned/realtime-virtual-*-variables.conf".
Expected results:
"isolate_managed_irq=Y" should be mentioned in "/etc/tuned/realtime-virtual-*-variables.conf".
Additional info:
1. RHEL8.2 RT has "isolate_managed_irq=Y" after fix of Bug 1797025.
(In reply to Pei Zhang from comment #0)
...
>
>
> Steps to Reproduce:
> 1. Uncomment "isolate_managed_irq=Y" in /etc/tuned/realtime-variables.conf,
> it doesn't work. Kernel option shows "isolcpus=X-Y", but we expect
> "isolcpus=managed_irq,domain,X-Y".
I was using:
# tuned-adm profile realtime-virtual-host
# tuned-adm profile realtime-virtual-guest
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 (tuned 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/RHBA-2021:4476