From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lada Trimasova Subject: Misleading hint to select CONFIG_PERF_EVENTS if driver sets PERF_PMU_CAP_NO_INTERRUPT Date: Fri, 22 Apr 2016 13:25:23 +0000 Message-ID: <1461331523.3403.11.camel@synopsys.com> Reply-To: Lada Trimasova Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtprelay.synopsys.com ([198.182.60.111]:42648 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751933AbcDVN03 (ORCPT ); Fri, 22 Apr 2016 09:26:29 -0400 Content-Language: en-US Content-ID: <5C805D6E99359D4BB0532FDF482A3121@internal.synopsys.com> Sender: linux-perf-users-owner@vger.kernel.org List-ID: To: "linux-perf-users@vger.kernel.org" Cc: "linux-kernel@vger.kernel.org" , "peterz@infradead.org" , Alexey Brodkin , "linux-snps-arc@lists.infradead.org" SSBoYXZlIGEgcXVlc3Rpb24gYWJvdXQgdXNlci1zcGFjZSBwZXJmIGhhbmRsaW5nIGVycm9yIG51 bWJlcnMuDQpUaGUgcHJvYmxlbSBpcyB0aGF0IFBNVSBpbnRlcnJ1cHRzIGFyZSBub3Qgc3VwcG9y dGVkIGluIGFyYzcwMA0KYXJjaGl0ZWN0dXJlIGFuZCBpdCBpcyBpbXBvc3NpYmxlIHRvIGV2YWx1 YXRlIGBwZXJmIHJlY29yZGAgY29tbWFuZC4NCkluIG91ciBwZXJmIGltcGxlbWVudGF0aW9uIHdl IHNldCBQRVJGX1BNVV9DQVBfTk9fSU5URVJSVVBUIGZsYWcgc28NCmNvcmUgcGVyZiBpbmZyYXN0 cnVjdHVyZSBrbm93cyB3ZSBkb24ndCBoYXZlIGludGVycnVwdHMuDQoNCktlcm5lbCBgc3lzX3Bl cmZfZXZlbnRfb3BlbmAgaGFuZGxlciBjaGVja3MgaWYgUE1VIGludGVycnVwdHMgYXJlDQpzdXBw b3J0ZWQgYW5kIHJldHVybnMgRU5PVFNVUFAgKDUyNCkgZXJyb3IgY29kZS4NCkknZCBleHBlY3Qg dGhhdCBwZXJmIGltcGxlbWVudGF0aW9uIGNoZWNrcyB0aGUgcmV0dXJuIHZhbHVlIG9mIHN5c2Nh bGxzDQphbmQgZ2l2ZXMgdGhlIHVzZXIgdW5kZXJzdGFuZGFibGUgZXJyb3IgbWVzc2FnZS4NCkJ1 dCBub3cgSSBzZWU6DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIHBlcmYgcmVjb3JkIGxzDQpUaGUgc3lzX3Bl cmZfZXZlbnRfb3BlbigpIHN5c2NhbGwgcmV0dXJuZWQgd2l0aCA1MjQgKFVua25vd24gZXJyb3Ig NTI0KQ0KZm9yIGV2ZW50IChjeWNsZXM6cHBwKS4NCi9iaW4vZG1lc2cgbWF5IHByb3ZpZGUgYWRk aXRpb25hbCBpbmZvcm1hdGlvbi4NCk5vIENPTkZJR19QRVJGX0VWRU5UUz15IGtlcm5lbCBzdXBw b3J0IGNvbmZpZ3VyZWQ/DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCkFzIHlvdSBjYW4gc2VlIHRoZSByb290 IGNhdXNlIG9mIHRoaXMgZXJyb3IgbWVzc2FnZSBpcyBub3Qgb2J2aW91cy4NCkNPTkZJR19QRVJG X0VWRU5UUyBpcyBzZWxlY3RlZCBidXQgc3RpbGwgdGhlcmUncyBhIHByb2JsZW0gd2hpbGUNCmV4 aXN0aW5nIHN1Z2dlc3Rpb24gYmFyZWx5IG1ha2VzIGFueSBzZW5zZS4NClNvIHByb2JhYmx5IHRo ZXJlIGNvdWxkIGJlIGEgd2F5IHRvIGRldGVybWluZSBpZiBDT05GSUdfUEVSRl9FVkVOVFMgd2Fz DQpzZWxlY3RlZCBvciBub3QuDQoNCkkgYW0gbm90IHN1cmUgYWJvdXQgdGhlIGNvcnJlY3Qgd2F5 IG9mIHNvbHZpbmcgdGhpcyBwcm9ibGVtLiBNYXliZSBJDQpzaG91bGQgYWRkIHNvbWUgY2hlY2tz IG9mIHN5c2NhbGxzIHJldHVybiB2YWx1ZXMgYW5kIGdpdmUgdXNlcg0KYSB3YXJuaW5nIHdoZW4g bm90IFBNVSBpbnRlcnJ1cHRzIGFyZSBhdmFpbGFibGUuwqANCkFueSBzdWdnZXN0aW9ucyBhcmUg YXBwcmVjaWF0ZWQuDQoNClJlZ2FyZHMsDQpMYWRhIFRyaW1hc292YS4= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lada.Trimasova@synopsys.com (Lada Trimasova) Date: Fri, 22 Apr 2016 13:25:23 +0000 Subject: Misleading hint to select CONFIG_PERF_EVENTS if driver sets PERF_PMU_CAP_NO_INTERRUPT List-ID: Message-ID: <1461331523.3403.11.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org I have a question about user-space perf handling error numbers. The problem is that PMU interrupts are not supported in arc700 architecture and it is impossible to evaluate `perf record` command. In our perf implementation we set PERF_PMU_CAP_NO_INTERRUPT flag so core perf infrastructure knows we don't have interrupts. Kernel `sys_perf_event_open` handler checks if PMU interrupts are supported and returns ENOTSUPP (524) error code. I'd expect that perf implementation checks the return value of syscalls and gives the user understandable error message. But now I see: --------------------------------->8----------------------------------- # perf record ls The sys_perf_event_open() syscall returned with 524 (Unknown error 524) for event (cycles:ppp). /bin/dmesg may provide additional information. No CONFIG_PERF_EVENTS=y kernel support configured? --------------------------------->8----------------------------------- As you can see the root cause of this error message is not obvious. CONFIG_PERF_EVENTS is selected but still there's a problem while existing suggestion barely makes any sense. So probably there could be a way to determine if CONFIG_PERF_EVENTS was selected or not. I am not sure about the correct way of solving this problem. Maybe I should add some checks of syscalls return values and give user a warning when not PMU interrupts are available.? Any suggestions are appreciated. Regards, Lada Trimasova.