From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967701AbdEWRGF (ORCPT ); Tue, 23 May 2017 13:06:05 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:47545 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965908AbdEWRFz (ORCPT ); Tue, 23 May 2017 13:05:55 -0400 Subject: Re: [PATCH net-next 1/2] perf, bpf: add support for HW_CACHE and RAW events To: Peter Zijlstra References: <20170522224840.810121-1-ast@fb.com> <20170522224840.810121-2-ast@fb.com> <20170523074247.esnr4fj2squn4w2d@hirez.programming.kicks-ass.net> <20170523163134.saalqlizp5opc5tz@hirez.programming.kicks-ass.net> CC: "David S . Miller" , Brendan Gregg , Daniel Borkmann , Teng Qin , , , From: Alexei Starovoitov Message-ID: <36cf20a4-528e-6aa0-a440-2ed6ada9754f@fb.com> Date: Tue, 23 May 2017 10:05:05 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170523163134.saalqlizp5opc5tz@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2620:10d:c090:200::9:8c36] X-ClientProxiedBy: BN6PR18CA0013.namprd18.prod.outlook.com (10.175.188.23) To BL2PR15MB0961.namprd15.prod.outlook.com (10.167.116.23) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL2PR15MB0961: X-MS-Office365-Filtering-Correlation-Id: c12e6393-2e6a-4787-b873-08d4a1fddec4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:BL2PR15MB0961; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB0961;3:f3CzQAW9CyIODK0P4di6bw/af8Rw5VbSe37nzGct6rlgBN8FSQBpd9zjV08gnxOtlpP3v+dco6nD3L8ViqkXY/6P0HaTv87Ijd12+XkJJhOzCAr+9nC1tWf76eNCrcBTbyTw0Co2/KUTlaR2Z0RzP5xSo3wqW6Y4bkJT8EJS5H3IXMDzttD1+hFF+QnilxxLVP0QJYdxuilzD5PbCx9BKMvmWVigt/HdGa3/i8HS7Sv/Sv1s6bZFx7qlrmPv6i6HyxT9MBnFoB7DhfhX/fYUphs32o4ex3Ga/z6DjfX5itWRrl7PWkrzgYABNeUBVBFf17mt8jrgSThXmKa5STcOXw==;25:0y9KMErXTvkofXo72/LIqQk6GWM8Fy4/Crf+/aZ7yY3xHVu+m9VSxNtNGAtXX3pR+uNRLQoaocgF7YzjnR+jclJFKgzidWdkhHVehPaWMlIfjVIiUkiZwMvdDvtR1T9EPaLEdAhUrN2+DAoKxO7fHr2BTLdhk0OaZHd1E3g5D39z5PMp/juaer6o4kqa+JQD0rcv02tx6JaRl1koPBUViPa7SLWIiNGdmQzZrN0mbcRAcK8na7D8EYiOvhv/mjw1cZGzGwNBQDe+8NHzckceYEH0jWDzPK8RM6kJYJunVRmH3HPfjrn38pEiXI1VB9YZflJFWvcWSudP125oQaEzAc4x1a6nwsLLRBlFCjH9mONmilAQAtbVE3XvAf/xU7lMgN9HW9nVMk/7bf0ySx2YBAE0cuvVAAs9hXbwHxYaeVk5Gg2yhHGZOw0aofyjcF5ZCRtG7+tuKjL2TPfHq7vjCZNem2PAAp+oaEaiQ9sG+DU= X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB0961;31:uPvTvQFi0stGh30Ci7qHyPg9v36mfbOlGRKMNyWWOo2y4FjXLYAgTXlHyE4QVcujCjRIq6VVnMeQ6c0kU+XXfdxJP/4X5X+c51sWIay2LwlwcYWbuwAeervGcuO+9eIcg0/UxA/nZ6dOy2e1Teu8D+gvZI4mdD+AW8C0JibhT2JVGISJyIG9IjFjXTuNRMoA0IQbGykqpDJzN8WHpCo3cMWwudzDWTXtWBah1QJiIUU=;20:ePksSQVuAMmyV12ZToINi30Q+Vu78rjQu+JXqWzZohgb2b2rVXIauAXI8gJaehVNx4gyl1swh8P/YamOngzPiHdIj98F8bopQ1qcAM5CZfaQZLLfvqg39r7fptBe65vhjCIlBWRBfCtFf+qki0Z3I/K6YlVYwk2pzcbqyQh9Em2YS2re6t5NulapJa+JaU+ud0C1wR+EcSZzbylRNX3644i574EkcICAkN0koI1SraS/LpjZFbntWX4L9Yoy8GUHGMRuQjg/nenP/DCA55fVq2KlEobNVYMXuEtPwZdhf0AZrzLHMSgGg0irRf8PFy+7xlix6gcbAFjDugK/7+C8xpwK3KGX4jBQF/Ak2dd4nIRhnR+WqDlGu7MJ+qIgiUKFP8VwEKmHs6VAot3H1HbEV+w7/IoquUrN0oBNUVNYl/i+D7TAtSi9+aEFy6q7Qs0grRo1EMR0mVwlZZQgp+ObREqa6rXAiEbfnfWPPVFHGmS1qVPi6vmPjQ5yuSWwxSMd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148);SRVR:BL2PR15MB0961;BCL:0;PCL:0;RULEID:;SRVR:BL2PR15MB0961; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB0961;4:vUaozDGz9FvE66FqgD/kzsrF3WlUxA6bI1SOSjWe7nqb4pxfITkDOWqp/Se6kcPmJ8jsMqSHpk5+6IeHLHAWgB7ezrtxy2Ck1XTt+QpM01ezF/GukOdjS/cjg0Zs+Aa9TWtX3Q6fxN2tZsrv6CEJHBjfvTH3e+nnGhNyi4sE5tvKexSrvmFikoQzrId0sbjiqVs8m+AHMrH5eV6bVU1C5Gf84BTOvP5eojEigaxpnSAjONw/U4PjGXt19JDuGjj7No6jt7hXTpMLDUUNhKiaY2QoIrY5koEuXRwXiUAo3TdIH/kFnI2O7qjlcKmSUo7HULFSbKF1YJ97rz4p8Sk7btVFTL64tdE8U0fmA+qoAYxqH35FKGwGzajV8EKmLK6FXvSkGUG2Z5Iwc45bDgvx93++nPVimeYzG552vOpvENmPAgDKS+drxylpRiQmeXugml3dFgG5c2cIPu47VzipQ9mwz5zCoPH0nyB+5DIS5LneNft9hnsBgeEh4cnQmKo7K59LXlNQLPJL1PfcYE3/EJKOMEC9rl9Uj41FlIOBn5OBFF+SZt8gqvtLV5poRWXKGqmycU74D9knpRb4Clq+RvNFt4gpdnidix42DSse2P9PCcSY9s/2W8cEz8KOB05iOItWqqbzP3u7o10PniJl7hOwhAbMgcDCpE6NsYi5OStyfnt/xYKqMyWqx6cLt9SBW3oDeO19y/bEaiJNDzdMuC/YGp4qHmeQf0pvt1qfp77YrTfgd3qG8AYrCnaxRndb7GDtj1wahyRi5PAXjln3TFYmQUfGI/rKIRIchs5M2WMnFaN9n1WCZVBTTSq0LYo58QBg3VCeCadv1b1iNUngrA== X-Forefront-PRVS: 0316567485 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39450400003)(39850400002)(39400400002)(39410400002)(51914003)(24454002)(377454003)(189998001)(23746002)(25786009)(53546009)(2906002)(4326008)(110136004)(5660300001)(65826007)(478600001)(2950100002)(6916009)(86362001)(229853002)(83506001)(6246003)(38730400002)(54906002)(6666003)(305945005)(53936002)(7736002)(6486002)(5890100001)(31696002)(36756003)(4001350100001)(64126003)(54356999)(76176999)(50986999)(50466002)(65956001)(42186005)(31686004)(33646002)(47776003)(8676002)(230700001)(81166006)(6116002)(93886004)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:BL2PR15MB0961;H:[IPv6:2620:10d:c082:1055:99ae:b7a5:7e6d:7ac1];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BL2PR15MB0961;23:VgAelBpgv2ntgkMFgyIflB2IdLJbnoo6bUAtJ?= =?Windows-1252?Q?Uqmj5Sqcc4roIsC7UMZSAyVE4X7p7k1Lsisj4spgc8qLkixWb78htqNu?= =?Windows-1252?Q?VkWSTLLYBezgl2t/ZKK0p+ZtyrraIJF87xEPgy0VBL6cHbwjRUIycH8e?= =?Windows-1252?Q?KxFc5Rx5zbdmIjUX5o8Z3Z5YkMiwQpYFrlWdmDDyeEOf3DPCywl4DTq6?= =?Windows-1252?Q?KkbEaBcMGLWbb4FVLGYkj+pSltMozjGAHK4/j4JrH03j/28+1AyqP+a0?= =?Windows-1252?Q?i+b1F6GSugiBR7d36e3svtzQzyB9cv+dURyh6FOWDmDlAHAhQ+lqB3+E?= =?Windows-1252?Q?oNXsvED1ua/etQLiZ3iSj3QLD8T0B1N+BT50DspRlokbON5HSlQjHC6S?= =?Windows-1252?Q?SLlnsAFMiqmmfIccETCZix2TLAjcE5oKdbps0sImJWc4c9Ojqk9JZT2G?= =?Windows-1252?Q?bVUljxl5n5+3935fyu81pBGei4K0HEaobF7tvgb3L/hQHJasCYwmuh0c?= =?Windows-1252?Q?lHvK4krVF6l/OvbLFcE4svCSi513Ua1fXlq8/gCM5iOL9WwiMrYi5fik?= =?Windows-1252?Q?zSNDB9+fFN+euBC8qT/jY2cISkab033X2M/xv+mM2FgcIJhv9VqftK+1?= =?Windows-1252?Q?VJEslORrA15ll9QPbvvCnAOP90x/1MqIinMT26DtvdNMYTpU03ADyjPy?= =?Windows-1252?Q?5udTX6WX92mWfuWKBUOcD9pr/zzJLDkZ8PTfc15iZdC/pZkSz3bUyo8I?= =?Windows-1252?Q?WyIJzY6Mox+/RdRQc13pM+0L6f0IVoHmOOHMn7H/zWVqJn19RRiKTwiy?= =?Windows-1252?Q?/1zThdS5/CkX/Pa2gwMtvjbuHJxVyjovmuu8AmgJcPuIdwIoD4IvH+K5?= =?Windows-1252?Q?LyKaN9Qe/+zpMFstoHWT3+UFHLF7BvN1+ZumR/tglxTHtNVdyF+GV9eZ?= =?Windows-1252?Q?RzBERhsjjhRPARtV+0GDTHFmqo+cPjTHpZ0GAT5smxSZs+J/im6MFUjw?= =?Windows-1252?Q?bn5OusqE/AgpRiQ97BLB2OGvUGE1GDKrQvMBWEmkTyyn0PdtQVVLK84u?= =?Windows-1252?Q?lIBT9IpIR0Lwka7TBoOQktkhlJof9B7IvMdoG7aGOPYMYOKtTSm7Iwn7?= =?Windows-1252?Q?b6GDAUwNavzkirkDq7BRQQsxJSJ29YMzDXLyZDxY/s6kNCWiA8h0p21Z?= =?Windows-1252?Q?IhaV3tv38D/iziIpJ+Z86+w3Af+SsDtD1EwebtZwEV/guJuCNTg5wMa0?= =?Windows-1252?Q?XUiFKwaHv3AiO5wEVrlKh8uXBChPtpCbDb8JvfXuW5I1Uv6zRd+bJoS3?= =?Windows-1252?Q?8c9SOw1rRm6TK2/H1cP/KiD2qGjP31OcMafdEcm34FkSUZ+SZMasqxgv?= =?Windows-1252?Q?tDKnJINjR7hWF/lvafHuZ6HaC4LLKTHfz/ecU/qwaF+JBxPjZrs2nk?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB0961;6:4eERYK5Yc5o12DqfCJX+89vT5j5NfKgZ55BqT9oh2jTdXRuxaxrOmY5wq/dxPINsEEhXHX4PY6O5bzJLSmBlATPIFnKph4ozvU6IdzEvF0NoLxB0DL91mD/gQw87we+Hty1gF72j/iu9e2NCAA/OF+6W7Nc3rY0LEeArIFK1gmX2NlsYVGYYZD9OtrwOC2x2exB5ezbaPaItQsJ/ocgFiYNRmdAGgzFHmaLIIxxMbCEyuVZVQmf9G2WsprC1/tEvTnb/c9dGA6uRxW4SZXwMCSB4UvdpLrKeBx7jzbJJDfaSZfTugdo0iYdhLAnJLWi5IZVGx04PqUxHUUdf6vfjZ5+lS1OwdCjKIFOrW569Qw05vOsIvuFoQUV1IXhmIN5fOKOakgJYMLniLPQzDFOjS9K1ECNKG3MivNnYp+SjswujnKhre9AjOwRJdf8GHUfJGqyKf3RtF0WAM3/ySoNCbmJVJjEIQwZaHVIjTqCcxqTmaoRXs9FsRR9E1LM5Y7Nfz2gE/BhDYHvPmFG07OKfwg==;5:uX9ZzBLzg+zFV6jsY+o4EjgexZ3HYGdNXUr9R0nYGg5yEfNewnaHohil7+ucbJcT1eaG31zs3c5KmTilktUJREzq82VecjhpO5vaWZLZInbkJfT811QhOyWPsBqLHaSDpXm43FNAn1+DHFrqghD3IA==;24:OI13W5Hcw90jOZscAVO5o/RM8hpZRF2P9zB/wSkB7dNxuRCLn4cjhACDeC5w47iyJC6MfbadXA3QYp5nDBZj9tCXuPYT0BOfIsIuwJTACQY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB0961;7:S8I0OnWP9vdO8U01+wfPQWGDhvg9Slpd8RqE3cLDyuIzQywBFyHG1ox6zajWTROfRRU/fLX408gGoYS1WwoCqyobLz/3WnIE1YgxM91AYBheQOtcSdP9a5J6PfEdNtS8l4+9av050istcbAcimSewf+CYnwtXmSw0J3am4+Mn1+eAY1XieviQF3RwbRnl4uvpW/KX951zT3c/Ypffjb3ZKFp4pyxpGfHjwCOYHZH8nKhGjXjuzjg6pKkv2hHjbnzLIaUtdAlBWflTh9aR9ZFJ8X+vdr8OFPlJfgPuLFJPuoOdvaU+jjsCf0Dr/ZpkgnUkgWoaSiFYuvUySFjU5oOuw==;20:FmnTlq/3XiEl9EcmzjJxUqfOq2PnuENIASOZMsylSetCY9DinSluSLNnBTpFTIV5GsU2kJ2UxGsPmlLZ1Dj9kq0+YAIuh5cQcXOURqfWdZ7S/bhsmsCe8uEPIz6J7W8AusEV/eIUPk7W6nl9JpehTux6Pkyaw590TotttvkSmFQ= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2017 17:05:09.1605 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR15MB0961 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-05-23_05:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/23/17 9:31 AM, Peter Zijlstra wrote: > On Tue, May 23, 2017 at 07:38:08AM -0700, Alexei Starovoitov wrote: >> On 5/23/17 12:42 AM, Peter Zijlstra wrote: >>> On Mon, May 22, 2017 at 03:48:39PM -0700, Alexei Starovoitov wrote: >>>> From: Teng Qin >>>> >>>> This commit adds support for attach BPF program to RAW and HW_CACHE type >>>> events, and support for read HW_CACHE type event counters in BPF >>>> program. Existing code logic already supports them, so this commit is >>>> just update Enum value checks. >>> >>> So what I'm missing is why they were not supported previously, and what >>> changed to allow it now. >> >> that code path simply wasn't tested previously. Nothing changed on >> bpf side and on perf side. >> Why it wasn't added on day one? There was no demand. Now people >> use bpf more and more and few folks got confused that these types >> of perf events were not supported, hence we're adding it. > > OK. Is there anything stopping people from wanting to use the dynamic > types, as found in: > > /sys/bus/event_source/devices/*/type > > ? > > In which case, do we want something like this instead? > > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index 971f7259108f..4aa5f3011cf8 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -8063,12 +8063,8 @@ static int perf_event_set_bpf_prog(struct perf_event *event, u32 prog_fd) > bool is_kprobe, is_tracepoint; > struct bpf_prog *prog; > > - if (event->attr.type == PERF_TYPE_HARDWARE || > - event->attr.type == PERF_TYPE_SOFTWARE) > - return perf_event_set_bpf_handler(event, prog_fd); > - > if (event->attr.type != PERF_TYPE_TRACEPOINT) > - return -EINVAL; > + return perf_event_set_bpf_handler(event, prog_fd); Good point. We were actually looking at how to deal with msr and cstate events. That should indeed address it. Will respin. Thanks for the feedback!