Bug 645898
Summary: | [6.1 FEAT] Port KVM bug fixes for cr_access to RHEL 6 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | IBM Bug Proxy <bugproxy> | ||||||||||||||||
Component: | kernel | Assignee: | Karen Noel <knoel> | ||||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||||||||||||
Severity: | medium | Docs Contact: | |||||||||||||||||
Priority: | medium | ||||||||||||||||||
Version: | 6.1 | CC: | aliguori, bcao, bsarathy, dhoward, dshaks, jjarvis, jwest, knoel, lihuang, michen, mwagner, nobody+PNT0273897, qcai, sbest, snagar, tburke, wquan | ||||||||||||||||
Target Milestone: | rc | Keywords: | FutureFeature, ZStream | ||||||||||||||||
Target Release: | 6.1 | ||||||||||||||||||
Hardware: | other | ||||||||||||||||||
OS: | All | ||||||||||||||||||
Whiteboard: | |||||||||||||||||||
Fixed In Version: | kernel-2.6.32-83.el6 | Doc Type: | Enhancement | ||||||||||||||||
Doc Text: |
Prior to this update, running context-switch intensive workloads on KVM guests resulted in a large number of exits (kvm_exit) due to control register (CR) accesses by the guest, thus, resulting in poor performance. This update includes a number of optimizations which allow the guest not to exit to the hypervisor in the aforementioned case and improve the overall performance.
|
Story Points: | --- | ||||||||||||||||
Clone Of: | Environment: | ||||||||||||||||||
Last Closed: | 2011-05-23 20:27:10 UTC | Type: | --- | ||||||||||||||||
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: | 538808, 580566, 580951, 658891 | ||||||||||||||||||
Attachments: |
|
Description
IBM Bug Proxy
2010-10-22 20:00:35 UTC
Created attachment 456570 [details]
patch 1 of 3
------- Comment (attachment only) From kmr.com 2010-10-29 18:16 EDT-------
Created attachment 456571 [details]
patch 2 of 3
------- Comment (attachment only) From kmr.com 2010-10-29 18:16 EDT-------
Created attachment 456572 [details]
patch 3 of 3
------- Comment (attachment only) From kmr.com 2010-10-29 18:16 EDT-------
Created attachment 456909 [details]
patch 1 of 3
------- Comment on attachment From kmr.com 2010-11-01 12:12 EDT-------
Correct patch sequencing and filename.
Created attachment 456910 [details]
patch 2 of 3
------- Comment on attachment From kmr.com 2010-11-01 12:12 EDT-------
Correct patch sequencing and filename.
Created attachment 456911 [details]
patch 3 of 3
------- Comment on attachment From kmr.com 2010-11-01 12:13 EDT-------
Correct patch sequencing and filename.
Patch(es) available on kernel-2.6.32-83.el6 ------- Comment From mcintire.com 2010-11-30 16:10 EDT------- *** Bug 67653 has been marked as a duplicate of this bug. *** This enhancement request was evaluated by the full Red Hat Enterprise Linux team for inclusion in a Red Hat Enterprise Linux minor release. As a result of this evaluation, Red Hat has tentatively approved inclusion of this feature in the next Red Hat Enterprise Linux Update minor release. While it is a goal to include this enhancement in the next minor release of Red Hat Enterprise Linux, the enhancement is not yet committed for inclusion in the next minor release pending the next phase of actual code integration and successful Red Hat and partner testing. Removed "OtherQA" keywords as QE can test this bug inside after confirming with dev. Compared the times kvm_exit entries due to cr_access between 2.6.32-71.el6.x86_64 and 2.6.32-117.el6.x86_64. Test on following steps: 1.on the host #mount -t debugfs none /sys/kernel/debug #echo 1 >/sys/kernel/debug/tracing/events/kvm/enable 2.start a linux guest (also tried start a windows guest with cpu load via vmprime.exe) 3.check how many times kvm_exit entries due to cr_access in 5 mins #cat /sys/kernel/debug/tracing/trace_pipe|grep kvm_exit|grep cr_access|wc -l following is the results : Actual Resuts: /--------------------------------------\ | | rhel6 | |--------------------------|-----------| |2.6.32-71.el6.x86_64 | 440 | |--------------------------|-----------| |2.6.32-117.el6.x86_64 | 176 | \--------------------------------------/ the times kvm_exit entries due to cr_access is smaller in 2.6.32-117.el6.x86_64 than that in 2.6.32-71.el6.x86_64 Based on above, this issue has been fixed. ------- Comment From steved.com 2011-02-21 14:48 EDT------- Those are awfully low cr_access counts for five minutes of activity. Was anything run in the guest, or did it just sit idle? IIRC, the problem surfaces when there was a lot of task switching. An idle guest won't expose the problem and thus won't prove if it is fixed. Created attachment 480089 [details]
test program causing lots of cr_access exits
Please try the attached test program.
$ gcc -O2 -pthread -o cr_access-test cr_access-test.c
$ taskset 1 ./cr_access-test
I see double the throughput with kernel that has the fixes.
The program is for Linux, but should compile on Windows with mingw.
------- Comment From habanero.com 2011-02-22 21:48 EDT------- I have tested the errata kernel (2.6.32-71.17) with server consolidation benchmark and have observed the expect 4% increase in performance. Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Prior to this update, running context-switch intensive workloads on KVM guests resulted in a large number of exits (kvm_exit) due to control register (CR) accesses by the guest, thus, resulting in poor performance. This update includes a number of optimizations which allow the guest not to exit to the hypervisor in the aforementioned case and improve the overall performance. ------- Comment From aliguori.com 2011-04-14 17:02 EDT------- Using Avi's test program, I'm able to verify that this change increases the number of CR accesses between RHEL 6.0 (2.6.32-30.el6.x86_64) and RHEL6.1 (2.6.32-125.el6.x86_64) by a factor of 4x. ------- Comment From steved.com 2011-04-14 17:40 EDT------- An "increase [in the] number of CR accesses between RHEL 6.0 (2.6.32-30.el6.x86_64) and RHEL6.1 (2.6.32-125.el6.x86_64) by a factor of 4x" sounds like a bad thing. The idea was to decrease the number of CR accesses. Does this mean RHEL 6.1 regressed? ------- Comment From aliguori.com 2011-04-14 17:47 EDT------- The test case measures the number of cr accesses per second within the guest. More cs accesses (in the guest) per second implies a cheaper cost of doing a cr access. IOW, more is good. Thanks For aliguori's work! Based on comment #35, comment #36 , Change status to VERIFIED. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0542.html ------- Comment From steved.com 2012-03-26 14:54 EDT------- *** Bug 67652 has been marked as a duplicate of this bug. *** |