Bug 1817827

Summary: "isolate_managed_irq=Y" should be mentioned in "/etc/tuned/realtime-virtual-*-variables.conf"
Product: Red Hat Enterprise Linux 8 Reporter: Pei Zhang <pezhang>
Component: tunedAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED ERRATA QA Contact: Robin Hack <rhack>
Severity: low Docs Contact:
Priority: low    
Version: 8.2CC: chayang, jeder, jinzhao, jskarvad, juzhang, lcapitulino, peterx, pezhang, ppandit, rhack
Target Milestone: rcKeywords: EasyFix, Patch, TestCaseProvided, Triaged, Upstream
Target Release: 8.5Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tuned-2.16.0-0.1.rc1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 19:58:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1932086    

Description Pei Zhang 2020-03-27 03:42:21 UTC
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.

Comment 1 Pei Zhang 2020-03-27 04:00:08 UTC
(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

Comment 3 Prasad Pandit 2021-06-02 11:47:11 UTC
Raised PR#352 upstream
  -> https://github.com/redhat-performance/tuned/pull/352

Comment 10 errata-xmlrpc 2021-11-09 19:58:24 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 (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