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: | |||
(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 |
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. 2.Define a guest with below content # virsh dumpxml rhel7.2 | grep /perf -B4 <perf> <event name='cmt' enabled='no'/> <event name='mbmt' enabled='yes'/> <event name='mbml' enabled='no'/> </perf> 3.As the host do not support mbmt/mbml, the guest fail to start. # virsh start rhel7.2 error: Failed to start domain rhel7.2 error: Unable to open perf type=26 for pid=24570: Invalid argument # virsh perf rhel7.2 --enable mbml --disable cmt,mbmt # virsh perf rhel7.2 cmt : disabled mbmt : disabled mbml : enabled # virsh start rhel7.2 error: Failed to start domain rhel7.2 error: Unable to open perf type=26 for pid=24633: Invalid argument 4. After guest start, enable mbml/mbmt # virsh perf rhel7.2 --enable cmt --disable mbml,mbmt # virsh start rhel7.2 Domain rhel7.2 started # virsh perf rhel7.2 --enable mbml --disable mbmt error: Unable to enable/disable perf events error: Unable to open perf type=26 for pid=24713: Invalid argument Actual results: step 3 and step 4, the error message is not clear. Expected results: The error message need to be improved, such as "mbmt/mbml is not supported by host CPU" Additional info: When enable cmt/mbml/mbmt on a host which supports none of them, the error message is like this, pls evaluate if is needs to do together. # virsh start rhel7.2 error: Failed to start domain rhel7.2 error: Failed to open file '/sys/devices/intel_cqm/type': No such file or directory # virsh perf rhel7.2 --enable mbmt error: Unable to enable/disable perf events error: Failed to open file '/sys/devices/intel_cqm/type': No such file or directory