Bug 1554458

Summary: realtime-virtual-host: vCPU thread going to userspace
Product: Red Hat Enterprise Linux 8 Reporter: Luiz Capitulino <lcapitulino>
Component: tunedAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED ERRATA QA Contact: Robin Hack <rhack>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: ---CC: jeder, jskarvad, olysonek, psklenar, rhack
Target Milestone: rcKeywords: Patch, Upstream
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tuned-2.12.0-0.1.rc1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 22:31:10 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: 1240765    
Attachments:
Description Flags
patch for upstream adding tsc-deadline=on none

Description Luiz Capitulino 2018-03-12 17:37:37 UTC
Description of problem:

I can observe that the vCPU thread of the guest ran by run-tscdeadline-latency.sh is going to userspace to do I/O. This increases the latency when trying to find the best timer advancement value from the host profile. Passing tsc-deadline=on in -cpu seems to fix this. I believe that qemu is not using the in kernel irqchip if tsc-deadline=on is not passed.


Version-Release number of selected component (if applicable): tuned-2.9.0-1.el7.noarch


How reproducible:

Unfortunately, the most reliable method to reproduce is a bit complex:

1. Clone kvm-unit-tests repo:

 # git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git

2. Edit x86/tscdeadline_latency.c and change TABLE_SIZE to be 1000000

3. Build it with make

4. Edit /usr/lib/tuned/realtime-virtual-host/run-tscdeadline-latency.sh and change the following line:

-kernel /usr/share/qemu-kvm/tscdeadline_latency.flat

to be:

-kernel /path/to/kvm-unit-tests/x86/tscdeadline_latency.flat

5. Run run-tscdeadline-latency.sh from the host profile

6. Trace for kvm_userspace_exit in all CPUs (make sure there are no other guests running)

Actual results:

You'll see the kvm_userspace_exit event triggering all the time.

Expected results:

There may be some kvm_userspace_exit in the beginning, but they eventually stop.

Additional info:

Comment 2 Luiz Capitulino 2018-03-13 12:53:19 UTC
Created attachment 1407549 [details]
patch for upstream adding tsc-deadline=on

Comment 3 Jaroslav Škarvada 2019-03-18 12:43:05 UTC
Ah, sorry, this haven't yet got upstream. Is it still needed?

Comment 4 Luiz Capitulino 2019-03-18 16:57:06 UTC
To be honest, I'm not 100% sure. Let's do it for RHEL8 and then we (KVM-RT team) can
evaluate the need for RHEL7.

Comment 6 Robin Hack 2019-06-11 08:50:46 UTC
QA_ACK+ RHEL8.1

Comment 15 errata-xmlrpc 2019-11-05 22:31:10 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, 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-2019:3633