Bug 1360533
Summary: | The error message need to improve when enable a perf event on a host which do not support it | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | yalzhang <yalzhang> |
Component: | libvirt | Assignee: | John Ferlan <jferlan> |
Status: | CLOSED ERRATA | QA Contact: | Jing Qi <jinqi> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.3 | CC: | fjin, jdenemar, jferlan, lhuang, pkrempa, rbalakri, xuzhang |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | libvirt-2.5.0-1.el7 | Doc Type: | No Doc Update |
Doc Text: |
undefined
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2017-08-01 17:11:42 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: |
Description
yalzhang@redhat.com
2016-07-27 02:40:09 UTC
(In reply to yalzhang from comment #0) > Description of problem: > When enable mbmt/mbml on a host didn't support mbm, the error message need > to be more clear. > > Version-Release number of selected component (if applicable): > libvirt-2.0.0-3.el7.x86_64 > > How reproducible: > 100% > > Steps to Reproduce: > 1.Prepare a host with intel E5-2600 series v2 cpu which do not support intel > mbm but support cmt. Correct a typo here, it should be **v3** not v2.(v3 just support cmt, and v4 support cmt and mbml/mbmt) Some more scenarios about error message issue. Test with libvirt-2.0.0-3.el7.x86_64 and intel E5-2640 v4 cpu. 1.When disable some event which is already disabled, it will report error. # virsh start rhel7.2 Domain rhel7.2 started # virsh perf rhel7.2 cmt : disabled mbmt : disabled mbml : disabled # virsh perf rhel7.2 --disable cmt error: Unable to enable/disable perf events error: Unable to disable perf event type=0: Bad file descriptor # virsh perf rhel7.2 --disable mbmt error: Unable to enable/disable perf events error: Unable to disable perf event type=1: Bad file descriptor # virsh perf rhel7.2 --disable mbml error: Unable to enable/disable perf events error: Unable to disable perf event type=2: Bad file descriptor 2. When combine enable and disable, the same error will occur, but in fact the "--enable" part succeed. # virsh start rhel7.2 Domain rhel7.2 started # virsh perf rhel7.2 cmt : disabled mbmt : disabled mbml : disabled # virsh perf rhel7.2 --enable mbmt --disable cmt error: Unable to enable/disable perf events error: Unable to disable perf event type=0: Bad file descriptor # virsh perf rhel7.2 cmt : disabled mbmt : enabled mbml : disabled Actual results: step 1 and 2, unexpected error occur. Expected results: when disable the event which is already disabled, it should not report error, ignore the error message is OK. Additional info: Enable the one which is already enabled works fine and no error occur. The guest is running: # virsh perf rhel7.2 cmt : enabled mbmt : enabled mbml : disabled # virsh perf rhel7.2 --enable cmt,mbmt # virsh perf rhel7.2 cmt : enabled mbmt : enabled mbml : disabled There's been changes made upstream that alter the error messages seen... 1. From Description: error: Unable to open perf type=26 for pid=24570: Invalid argument has been altered to be: Unable to open perf event for %s where %s would be "cmt", "mbmt", or "mbml" I suppose "for host CPU" could be added This was done by: commit b00d7f298b7dd57d923bc9a9a6df47471e4eaab8 Author: Qiaowei Ren <qiaowei.ren> Date: Wed Aug 3 13:23:31 2016 -0400 perf: Adjust the perf initialization Introduce a static attr table and refactor virPerfEventEnable() for general purpose usage. This patch creates a static table/matrix that converts the VIR_PERF_EVENT_* events into their respective "attr.type" and "attr.config" so that virPerfEventEnable doesn't have the switch the calling function passes by value the 'type'. Signed-off-by: Qiaowei Ren <qiaowei.ren> -=-=-=-=-=-= 2. From comment 3 virsh perf rhel7.2 --disable {cmt|mbmt|mbml} still results in the same error. This should be fixed. ---- virsh perf rhel7.2 --enable mbmt --disable cmt No longer enables mbmt, it gives an error : virsh perf $dom --enable mbmt --disable cmt error: Unable to enable/disable perf events error: argument unsupported: unable to enable perf event for mbmt ---- Patches sent to resolve the disable the disabled error... Especially on systems that don't support it! Also added a "host cpu" clarification to error messages and used the perf name in the disable failure message rather than the number (since other messages already were altered anyway). http://www.redhat.com/archives/libvir-list/2016-October/msg00319.html Patches pushed: commit 0f3f8ac97efed4a5c574e6b51e356cea2f825fcf Author: John Ferlan <jferlan> Date: Fri Oct 7 08:28:58 2016 -0400 util: Check/ignore already disabled event If the event is already disabled, then don't bother with setting it disabled again. Causes unnecessary error on systems that don't support the feature anyway. ... $ git describe 0f3f8ac97efed4a5c574e6b51e356cea2f825fcf v2.3.0-40-g0f3f8ac Test passed with version libvirt-2.5.0-1.el7.x86_64. 1.In a host which doesn't support "cmt"/"mbmt"/"mbml", when the guest rhel7_perf_test is active / inactive, run below command, it returns expected error message. #virsh perf rhel7_perf_test --enable cmt error: Unable to enable/disable perf events error: argument unsupported: unable to enable host cpu perf event for cmt 2. In a host which doesn't support "cmt"/"mbmt"/"mbml". #virsh perf rhel7_perf_test cmt :disabled mbmt :disabled mbml :disabled cpu_cycles :disabled instructions :disabled cache_references :disabled cache_misses :disabled #virsh perf rhel7_perf_test --disable "cmt" No any message returned. 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/RHEA-2017:1846 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/RHEA-2017:1846 |