[{"id":1761967,"web_url":"http://patchwork.ozlabs.org/comment/1761967/","msgid":"<a1905aeb-b49f-d4e8-91ee-a28a92869da1@fb.com>","list_archive_url":null,"date":"2017-09-01T20:29:17","subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","submitter":{"id":68234,"url":"http://patchwork.ozlabs.org/api/people/68234/","name":"Alexei Starovoitov","email":"ast@fb.com"},"content":"On 9/1/17 9:53 AM, Yonghong Song wrote:\n> Hardware pmu counters are limited resources. When there are more\n> pmu based perf events opened than available counters, kernel will\n> multiplex these events so each event gets certain percentage\n> (but not 100%) of the pmu time. In case that multiplexing happens,\n> the number of samples or counter value will not reflect the\n> case compared to no multiplexing. This makes comparison between\n> different runs difficult.\n>\n> Typically, the number of samples or counter value should be\n> normalized before comparing to other experiments. The typical\n> normalization is done like:\n>   normalized_num_samples = num_samples * time_enabled / time_running\n>   normalized_counter_value = counter_value * time_enabled / time_running\n> where time_enabled is the time enabled for event and time_running is\n> the time running for event since last normalization.\n>\n> This patch adds helper bpf_perf_read_counter_time for kprobed based perf\n> event array map, to read perf counter and enabled/running time.\n> The enabled/running time is accumulated since the perf event open.\n> To achieve scaling factor between two bpf invocations, users\n> can can use cpu_id as the key (which is typical for perf array usage model)\n> to remember the previous value and do the calculation inside the\n> bpf program.\n>\n> Signed-off-by: Yonghong Song <yhs@fb.com>\n\n...\n\n> +BPF_CALL_4(bpf_perf_read_counter_time, struct bpf_map *, map, u64, flags,\n> +\tstruct bpf_perf_counter_time *, buf, u32, size)\n> +{\n> +\tstruct perf_event *pe;\n> +\tu64 now;\n> +\tint err;\n> +\n> +\tif (unlikely(size != sizeof(struct bpf_perf_counter_time)))\n> +\t\treturn -EINVAL;\n> +\terr = get_map_perf_counter(map, flags, &buf->counter, &pe);\n> +\tif (err)\n> +\t\treturn err;\n> +\n> +\tcalc_timer_values(pe, &now, &buf->time.enabled, &buf->time.running);\n> +\treturn 0;\n> +}\n\nPeter,\nI believe we're doing it correctly above.\nIt's a copy paste of the same logic as in total_time_enabled/running.\nWe cannot expose total_time_enabled/running to bpf, since they are\ndifferent counters. The above two are specific to bpf usage.\nSee commit log.\n\nfor the whole set:\nAcked-by: Alexei Starovoitov <ast@kernel.org>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=fb.com header.i=@fb.com header.b=\"dEz2Kgix\";\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com\n\theader.b=\"kRhdhaFo\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkW843TpHz9sPt\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  2 Sep 2017 06:30:12 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752416AbdIAUaK (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 16:30:10 -0400","from mx0b-00082601.pphosted.com ([67.231.153.30]:49590 \"EHLO\n\tmx0a-00082601.pphosted.com\" rhost-flags-OK-OK-OK-FAIL)\n\tby vger.kernel.org with ESMTP id S1752328AbdIAUaI (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 1 Sep 2017 16:30:08 -0400","from pps.filterd (m0001303.ppops.net [127.0.0.1])\n\tby m0001303.ppops.net (8.16.0.21/8.16.0.21) with SMTP id\n\tv81KQePS001746; Fri, 1 Sep 2017 13:29:27 -0700","from mail.thefacebook.com ([199.201.64.23])\n\tby m0001303.ppops.net with ESMTP id 2cq16wkc4c-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tFri, 01 Sep 2017 13:29:27 -0700","from NAM02-BL2-obe.outbound.protection.outlook.com (192.168.54.28)\n\tby o365-in.thefacebook.com (192.168.16.21) with Microsoft SMTP\n\tServer (TLS) id 14.3.319.2; Fri, 1 Sep 2017 13:29:25 -0700","from [IPv6:2620:10d:c082:1055:600e:7c4f:2b57:a9b0]\n\t(2620:10d:c090:200::7:53b5) by\n\tCO1PR15MB0968.namprd15.prod.outlook.com\n\t(2a01:111:e400:7b64::26) with Microsoft SMTP Server (version=TLS1_2, \n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10;\n\tFri, 1 Sep 2017 20:29:23 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com;\n\th=subject : to : references\n\t: cc : from : message-id : date : mime-version : in-reply-to :\n\tcontent-type : content-transfer-encoding; s=facebook;\n\tbh=SRT0rBPiznTTQ8kp0VchJgJ0A4yVjRAYdvLzWuiAfeE=;\n\tb=dEz2KgixCLc00Gjd2L6wG3fGOvj2d/Hkexc0JwVFUBTMSliZgp52o6oV1CVHd8aa9u0D\n\tVDuZpj5fOE/VKgmqzneSHVI3Oicga8KDiXofZZLRDjBJ1HHyzA3F+NmL2b4CAk5Io4/s\n\tvojU4eVWAFeg+JLy4zq+er2rODEtWAd/r8M= ","v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; \n\ts=selector1-fb-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version; \n\tbh=SRT0rBPiznTTQ8kp0VchJgJ0A4yVjRAYdvLzWuiAfeE=;\n\tb=kRhdhaFoNy7UOq1bPyXk0Ve7CMBiJYpjVuRmoWI10K0+tNb7MLiDGTxtt8uta/45xk08sY5HOc0ohPAxQZeQepmWvsVf70YhORK72qomhbE2TH75V3paLklqte8mRYK+FtbPt7l44rm5UcQYehANtDFMBtKOltk5VDQSPx1wSl8="],"Subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","To":"Yonghong Song <yhs@fb.com>, <peterz@infradead.org>,\n\t<rostedt@goodmis.org>, <daniel@iogearbox.net>, <netdev@vger.kernel.org>","References":"<20170901165357.465121-1-yhs@fb.com>\n\t<20170901165357.465121-2-yhs@fb.com>","CC":"<kernel-team@fb.com>","From":"Alexei Starovoitov <ast@fb.com>","Message-ID":"<a1905aeb-b49f-d4e8-91ee-a28a92869da1@fb.com>","Date":"Fri, 1 Sep 2017 13:29:17 -0700","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0)\n\tGecko/20100101 Thunderbird/45.8.0","MIME-Version":"1.0","In-Reply-To":"<20170901165357.465121-2-yhs@fb.com>","Content-Type":"text/plain; charset=\"windows-1252\"; format=flowed","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[2620:10d:c090:200::7:53b5]","X-ClientProxiedBy":"MWHPR1001CA0020.namprd10.prod.outlook.com\n\t(2603:10b6:301:2a::33) To CO1PR15MB0968.namprd15.prod.outlook.com\n\t(2a01:111:e400:7b64::26)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"ef275690-1bae-4c2a-a3f9-08d4f178223f","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CO1PR15MB0968; ","X-Microsoft-Exchange-Diagnostics":["1; CO1PR15MB0968;\n\t3:DVf7ctr78ukV7GUqLTNQaD0VT8ac+toJY7bTAODuSJLtx5uCTdtLYwKL2d+XXMx/IBuZRcMsG7D00T1gjZDVvtiOZx9nYLm4OMUO5OUaj+CpDByDAX692UIZiFlHij3wUELQ7tIl9SdL7Qy9Yn3oe09sjcqAA3o4FKntYJ7ebNe1YAb65remf+PqmbAr47R/FVftZN3/MzkUVGyHDqqR3vrVEtCEaHCy5hwnJxOmECLrYdlgcWksMIoumuYpWRDm;\n\t25:njZjnl6QanSCuHptMRPpHANwMfMRLlv5a8G4YC414Zk432djouGMqbb5FpvDibpoGzbw+e38bHhrCpU11Q87/heDAdMp12j+1CtFgAGSjUDl4l0DGDt+qQq3qa2kS/M/QEKVux3DunLzIsgHrtKEqFqnsQStpLOZHl8tidOFmWVTxMQcvT9Dg5SsdTmg4dYcU9xZNFeiqy3ECIwiXb+5QklbldsyT8CblKbQIb2gcUynzWDs7RWoHt9cznUVoCFkzJQBxJTl/YTCqBMAJFtd7+aoNXIMh6kYyIVvi0m+TcWVAqNKcwWRcjUIZqjwjMopEL6HgO6GHMYScNDXaSfoLA==;\n\t31:1c+df1KhXSx3laEq/BCjv+FBvNs+ERjWqx1tWE9WtkMRVirbeijhwjyiSJSxfi7jPXRqCS1lQxoZTVZL+p4QprQZ+DX8583Qx31VCIKZrJfzQY7J0NvTroL0ANjlKO+JrXqN6QC07b279nw9Vw+gJQ3nt008pRg9EVG5y7qzDJTT7MAXvlIpyLo/0a5UOKUXM/7jSy1OlXUexBq6GJj0oMElOT8Kk54SDko7G2yVzcI=","1; CO1PR15MB0968;\n\t20:DTbHRxpKKM2VrgHHwrV1z+r2uyVKWGvA+LwFeULxS272PEePH37z53W0EIs1T3I/VCKl6FS4nHia9sUpvKQi7GCITBVVfd0bN9h6XYPKPlPS7uyOygxI3mF2xqj+A44aWCCydaeNfU+hchsFcGY6fIhPoGCeGdK2HvAifxo3o0tw0WyKrXj7kRhFZwzFbf1dOOCDPaFAtmUiIqLp8eHLO1FIdhNMltVNNL8F4lPPodoqVeKjuZnkIA6IrBmd3RMXswaQm6i+9XijZ1mpJY1Eww2nAD3UsOMbz98qwFO4kE5m1yXnSj7CGV1F86qu7L4vDkhXk1hdxkcQlviuzFIvm5RP1FrY9BKpr69QaPu1foH6UDW0UwPksV/d4ki9h2sjKlYiY7Wz6EcPZjjBgNAVh33B9Z0w6oKuOQVFfJXrKhoSs5IIzVwdkI/DQjHohcQtLlBjmdnHSDi8gj/Kwy+TPumjH1gMt8crtRGcAOtOcydgIZ2HmdGJFkidralcYSX9;\n\t4:RKTO/M0XRjshkoES9PgLNjUS93d1NZ3gjeZt/sBbhZ5T756GU3YKI8+w9+R15N3ySD542mhWj52OAUpZzfZnyeltp9qPD/Z00eqlN48+J8a1MiXvxJw1ICpYMR4F4i6qZYNuzEivrVAhIofF+/HBc6SVp7i2iJteAICFXHcJJeA/s3DbKYYLSCfaYbmjPUGq4EnlOpeOl2pU/KiONyW9QOgXsQKrXkRayzf7OjQCAETbWPCkboMkgQI7tgMD2Dsxzuzt12Y4cRK119rTX4Sik4KrjYV4tExYAw7vrR5/dcyBJPki1T9IPyrWH/ydpw08LaWOGjUMe/WzjuOql1PGxg==","=?windows-1252?q?1=3BCO1PR15MB0968=3B23?=\n\t=?windows-1252?q?=3AT7u3lZ/9AdnaDZtSWW2zcgwVlhzxuVerFn8mIv8mlPqT4f?=\n\t=?windows-1252?q?qv00zDAaWTqn1DVUgKUJuYl8SuTCoVtKQjvUJlNRvUXxW0Gzj?=\n\t=?windows-1252?q?8egm7W9l6yw6YZKF7Tguv7DnFg15Jiz7HxL3Y/NuG6lqx4EuK?=\n\t=?windows-1252?q?f27hLVzgKSII2Lomrh4B2yLX8saxW2H75XDvYNJ6XLZBITdwz?=\n\t=?windows-1252?q?ctb8xHJszoX2TMp0+AJxZoeCzEQFCQyPyf5LbO36OwNae/fjt?=\n\t=?windows-1252?q?BOBIYtdndjTZORmSiLx31gxZtBvS/GqhXUQQNZNdggAT8/EuO?=\n\t=?windows-1252?q?y6sT8pGf+W1K2DBCoeXksezWxghrXkWkdKu6y8emBdX33TaGr?=\n\t=?windows-1252?q?cZNxUE7PDYhUxb4Y5ipxeDfpLeM3SEOg4ZYlmBHbD5nC4YIal?=\n\t=?windows-1252?q?HY5owZ3U7HoY7aXE5mn2u1zgfW7hvVjuDscnyGR2ILZb44Esd?=\n\t=?windows-1252?q?yZgIv7w4UPIMO6uvRwa0+74EqeCpTSLKlek64RV2Lpd8VNwkR?=\n\t=?windows-1252?q?GoSPD80iFUTWAiTlmxOiK9wa9LPCTL0hzLZUiD5ub6/ezBOn6?=\n\t=?windows-1252?q?AVsT+XdOOXjf3mhvR21CesFggTJfrzwZWoXE6Rv8wya8SKJYc?=\n\t=?windows-1252?q?LAFMAOtAX1cucd0BSk8/5ZxKPwlU3A1UkI6ZK+h7mbu/YLiau?=\n\t=?windows-1252?q?MtHM67GldM/hKoopZUGXmBSoPnoK9jZz0hcayAiL6tA/y6Cqg?=\n\t=?windows-1252?q?YPU71jH5vDT6V9iT7aXFhmBfUnxCwhpO+1374nVHEXeFX5T1n?=\n\t=?windows-1252?q?XZ52nzoA264vHrH2xQ3d+7nmt+lMdHgZ+GBmLCdmLH+9IsBuc?=\n\t=?windows-1252?q?4wGnEF55IekCz3YJLSG2q/2zQqpt+KChkcLhWGqmM4m0lnVrm?=\n\t=?windows-1252?q?Vo6Np9C4I/jx+RK6raLMNbDWw/KJADE4sWJbQTvICyxRi73Mr?=\n\t=?windows-1252?q?exaK9xXnJC27X2ZXf5ZKXVBNEIFbHQ7bKWz/u87KaFY+A94rV?=\n\t=?windows-1252?q?pNT5xHKZ8fjNVD63+9isNrlFbMzW45eNWHA/3yy00bG1ThL1V?=\n\t=?windows-1252?q?4JQyGciUnJr347QMIUoex7Za+mhQnnHDxB2bJyDxjQcM+mary?=\n\t=?windows-1252?q?B0gRG3jzvOmE5y9Op59Zrgk3n/3+321BcHwjISh5nK7ZTawDf?=\n\t=?windows-1252?q?cF3H8IDUt6LM1JukBUxuVJVIiNYV0fyvN4xs1rDwHojy5yQwN?=\n\t=?windows-1252?q?8flsdgB8PFKocfC/DCqIS5ozASlA+BVdXmz4f7EwfJC6QU62A?=\n\t=?windows-1252?q?6w9gaNXpTuJTmLEAXhlJ3EWEXWrYNHkm6KlIASHksqhX7k6fZ?=\n\t=?windows-1252?q?K8iKPv6yT55pZ3ioIyj6yG+kgE/ij94R8w3fU=3D?=","1; CO1PR15MB0968;\n\t6:8JBvHuOP5jNBEEJRSeofCxvMmqm6b1z0ZkxA7hYgvwx3kOHW8YmclqSuV87pyupUldVhydawHhQxI4sndoVEdWZJk3J1BOf5zLcebjxO8Plj3yFwCZtu1qRjINGUbSF/absjYR1rOMZ04b82XPcd3SUhALnZSS3maUa5GJ2DW1ixwheXUSlAUr5fVTmLQYEEx6WxhcQlINc5vhG29blB2HuEWgGb1dn7SnLvL0kuDPwvHsjZh+F/Fn3Wx8ch20VvJJf6vED+629WG0Yw+R5GRlH5Je0uTUMhKuYqGGu7g0UAnv19NI2g7fmGr3tN2HIOyRDk2vEUIIBd7OiJsuzMdQ==;\n\t5:acr3MXreioxLlrgF4BPqDpBbQ7XDaAyDmKqLG2YHGdtMNouqX/EC4GNcnYLIuerpKFODFUhQDOf1u7HvoeuDuBxkdoTMA/I8oKJBjPzTkXh33AWTbtgKQi9aXHGlzcEcGkAlO4X4yb5Usa3gppULDQ==;\n\t24:8g9Jb3ntT98wrDmG3aZUiOQAbd1ytXGRW8kvwhi2TpnSkCa37VXs5T+cfGxhTthJC3S7e2LNhEmCfJBFyElDOM2O+UmPA24BZkePZARRWds=;\n\t7:dco/wqprkRTsViMKeY68MPrap9VndFAyg0er9BG68+rwM2lur2xL2DEqAr/tFRfMjub2tJlvZP+cB3YoM5Y07vB/fqiV7r1ygunpfy+RgiIstO4oh+xXwoxHfgUFGj/c0+abZWJQ2d5DfTSkwaQDjSK/B7X8F00m4rDnUNyZm6P3r1WdnED2AJWrpGAg1vVDZqJtJ4cql67NVf43s5aT3XOv49Dj5U30l8JXol6Y4hQ=","1; CO1PR15MB0968;\n\t20:2Mf+2itfMY0jrL/4XBTc7GP3Jps2dxvn9pzGeqzUN6YC6cK8Zep3mpgZ7ZmXnbSazkjinInFXkGgNy6oriSQKmf2272C9Ff5Yx5vSycTLCraGQnyPwasKgR2UPXu2L0+OSQZTlJ5YP2LK05LcWiM0yt1ybIzEGA89zt7Y+QZW/M="],"X-MS-TrafficTypeDiagnostic":"CO1PR15MB0968:","X-Exchange-Antispam-Report-Test":"UriScan:(67672495146484)(17755550239193);","X-Microsoft-Antispam-PRVS":"<CO1PR15MB096855A489BAA50BD88AABA4D7920@CO1PR15MB0968.namprd15.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CO1PR15MB0968; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CO1PR15MB0968; ","X-Forefront-PRVS":"0417A3FFD2","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10019020)(6009001)(199003)(24454002)(189002)(377454003)(65826007)(101416001)(25786009)(478600001)(53936002)(23746002)(36756003)(53546010)(106356001)(229853002)(105586002)(6666003)(42186005)(6116002)(6246003)(2950100002)(76176999)(54356999)(50986999)(31686004)(110136004)(2906002)(230700001)(33646002)(4326008)(6486002)(1706002)(86362001)(8936002)(4001350100001)(8676002)(81166006)(31696002)(81156014)(5660300001)(83506001)(68736007)(189998001)(65956001)(97736004)(65806001)(50466002)(47776003)(7736002)(64126003)(305945005)(42262002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:CO1PR15MB0968;\n\tH:[IPv6:2620:10d:c082:1055:600e:7c4f:2b57:a9b0]; FPR:;\n\tSPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: fb.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"01 Sep 2017 20:29:23.4985\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"8ae927fe-1255-47a7-a2af-5f3a069daaa2","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CO1PR15MB0968","X-OriginatorOrg":"fb.com","X-Proofpoint-Spam-Reason":"safe","X-FB-Internal":"Safe","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-01_06:, , signatures=0","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1761973,"web_url":"http://patchwork.ozlabs.org/comment/1761973/","msgid":"<20170901204109.GT6524@worktop.programming.kicks-ass.net>","list_archive_url":null,"date":"2017-09-01T20:41:09","subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","submitter":{"id":493,"url":"http://patchwork.ozlabs.org/api/people/493/","name":"Peter Zijlstra","email":"peterz@infradead.org"},"content":"On Fri, Sep 01, 2017 at 09:53:54AM -0700, Yonghong Song wrote:\n> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h\n> index b14095b..7fd5e94 100644\n> --- a/include/linux/perf_event.h\n> +++ b/include/linux/perf_event.h\n> @@ -901,6 +901,8 @@ extern void perf_pmu_migrate_context(struct pmu *pmu,\n>  int perf_event_read_local(struct perf_event *event, u64 *value);\n>  extern u64 perf_event_read_value(struct perf_event *event,\n>  \t\t\t\t u64 *enabled, u64 *running);\n> +extern void calc_timer_values(struct perf_event *event, u64 *now,\n> +         u64 *enabled, u64 *running);\n>  \n>  \n\n> diff --git a/kernel/events/core.c b/kernel/events/core.c\n> index 8c01572..ef5c7fb 100644\n> --- a/kernel/events/core.c\n> +++ b/kernel/events/core.c\n> @@ -4883,7 +4883,7 @@ static int perf_event_index(struct perf_event *event)\n>  \treturn event->pmu->event_idx(event);\n>  }\n>  \n> -static void calc_timer_values(struct perf_event *event,\n> +void calc_timer_values(struct perf_event *event,\n>  \t\t\t\tu64 *now,\n>  \t\t\t\tu64 *enabled,\n>  \t\t\t\tu64 *running)\n\nYeah, not going to happen...\n\nWhy not do the obvious thing and extend perf_event_read_local() to\noptionally return the enabled/running times?","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=infradead.org header.i=@infradead.org\n\theader.b=\"kNJBvdN4\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkWNz1QrFz9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  2 Sep 2017 06:41:23 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752473AbdIAUlT (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 16:41:19 -0400","from bombadil.infradead.org ([65.50.211.133]:56847 \"EHLO\n\tbombadil.infradead.org\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752406AbdIAUlS (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 1 Sep 2017 16:41:18 -0400","from j217100.upc-j.chello.nl ([24.132.217.100] helo=worktop)\n\tby bombadil.infradead.org with esmtpsa (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dnska-0005Qr-Fk; Fri, 01 Sep 2017 20:41:12 +0000","by worktop (Postfix, from userid 1000)\n\tid 8B6066E04A8; Fri,  1 Sep 2017 22:41:09 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=bombadil.20170209;\n\th=In-Reply-To:Content-Type:MIME-Version\n\t:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:\n\tContent-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:\n\tList-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;\n\tbh=pbMxSzmdsd+bkOPlnjDqsx9RefwFpbuGANdJ3Gl/02E=;\n\tb=kNJBvdN4anBripXkL2ls2OnQ0\n\t7VMdqhHSV28UijMUmhhzsSbRoQb7Bu5bLf4TTEkRdA4z5n4amCdFvSUcjZ4Bd9fQnl3T4EBR8l0jC\n\tbaVjH3C2aAoqjVxEsF38KatfEUCqbhRie1/CPsfNM30dyb6xXlEXsB+ThtfowIrSuhNJlbdn25byU\n\tt1T72LHjtUPakbRnlLQ44J5Qel2UCIMhE65JzcmTzDlxNZSqxPrKyzBQrVvTiGiy2MqFqCOQd85AY\n\tnY8g7+fZAdq3+XC0gxFZmzG6kIHCpuyUftC8+Nnx+zFIauc7fbgC+1vX2zlLdhgiu/XvOQH5DzrMn\n\t2FUCewfnQ==;","Date":"Fri, 1 Sep 2017 22:41:09 +0200","From":"Peter Zijlstra <peterz@infradead.org>","To":"Yonghong Song <yhs@fb.com>","Cc":"rostedt@goodmis.org, ast@fb.com, daniel@iogearbox.net,\n\tnetdev@vger.kernel.org, kernel-team@fb.com","Subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","Message-ID":"<20170901204109.GT6524@worktop.programming.kicks-ass.net>","References":"<20170901165357.465121-1-yhs@fb.com>\n\t<20170901165357.465121-2-yhs@fb.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170901165357.465121-2-yhs@fb.com>","User-Agent":"Mutt/1.5.22.1 (2013-10-16)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1761976,"web_url":"http://patchwork.ozlabs.org/comment/1761976/","msgid":"<20170901205040.GU6524@worktop.programming.kicks-ass.net>","list_archive_url":null,"date":"2017-09-01T20:50:40","subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","submitter":{"id":493,"url":"http://patchwork.ozlabs.org/api/people/493/","name":"Peter Zijlstra","email":"peterz@infradead.org"},"content":"On Fri, Sep 01, 2017 at 01:29:17PM -0700, Alexei Starovoitov wrote:\n\n> >+BPF_CALL_4(bpf_perf_read_counter_time, struct bpf_map *, map, u64, flags,\n> >+\tstruct bpf_perf_counter_time *, buf, u32, size)\n> >+{\n> >+\tstruct perf_event *pe;\n> >+\tu64 now;\n> >+\tint err;\n> >+\n> >+\tif (unlikely(size != sizeof(struct bpf_perf_counter_time)))\n> >+\t\treturn -EINVAL;\n> >+\terr = get_map_perf_counter(map, flags, &buf->counter, &pe);\n> >+\tif (err)\n> >+\t\treturn err;\n> >+\n> >+\tcalc_timer_values(pe, &now, &buf->time.enabled, &buf->time.running);\n> >+\treturn 0;\n> >+}\n> \n> Peter,\n> I believe we're doing it correctly above.\n> It's a copy paste of the same logic as in total_time_enabled/running.\n> We cannot expose total_time_enabled/running to bpf, since they are\n> different counters. The above two are specific to bpf usage.\n> See commit log.\n\nNo, the patch is atrocious and the usage is wrong.\n\nExporting a function called 'calc_timer_values' is a horrible violation\nof the namespace.\n\nAnd its wrong because it should be done in conjunction with\nperf_event_read_local(). You cannot afterwards call this because you\ndon't know if the event was active when you read it and you don't have\ntemporal guarantees; that is, reading these timestamps long after or\nbefore the read is wrong, and this interface allows it.\n\nSo no, sorry this is just fail.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=infradead.org header.i=@infradead.org\n\theader.b=\"PaBN3xA/\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkWc45LzPz9sPt\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  2 Sep 2017 06:51:00 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752429AbdIAUu6 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 16:50:58 -0400","from merlin.infradead.org ([205.233.59.134]:58084 \"EHLO\n\tmerlin.infradead.org\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752338AbdIAUu5 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 1 Sep 2017 16:50:57 -0400","from j217100.upc-j.chello.nl ([24.132.217.100] helo=worktop)\n\tby merlin.infradead.org with esmtpsa (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dnstm-000318-Da; Fri, 01 Sep 2017 20:50:43 +0000","by worktop (Postfix, from userid 1000)\n\tid 8DAD86E04A8; Fri,  1 Sep 2017 22:50:40 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=merlin.20170209;\n\th=In-Reply-To:Content-Type:MIME-Version:\n\tReferences:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:\n\tContent-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:\n\tList-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;\n\tbh=66NAMkjJOC51Tc7OFLZWyxs4nj2Ro8Ar3LHPMtY9qLs=;\n\tb=PaBN3xA/RVN8uRKpRLwu7RslI\n\tI3H3hfLPywF9WKOuwm13kpO+pJ+LAV7lVwM34JX1yqFUYKQeHQxmZhU6lPNOuwx+6sjUMKPs3fp0O\n\t/V/1aYhZ8is/yksAGCjcf4CR6liDtV2osHcqhcrwqVEjaLHsD1dM6UDtxCapAVcYsTZoL6NT7uy6m\n\tWsFsldXQfK2d2C6Wa6TCk0qNMdyoQmGAjAb2EKpWLTQ5TSgBgOPVLjReQhqY1BvOIlu8Q3WxYWrIF\n\ts4Xyo4jN/C6K7YkcGKF4I1UzVJ8UDwrE+WUrZnt/B63XQrqakRZMXrA7FtcydmCBFB3l7IPeZ55kf\n\t7QukPKzIw==;","Date":"Fri, 1 Sep 2017 22:50:40 +0200","From":"Peter Zijlstra <peterz@infradead.org>","To":"Alexei Starovoitov <ast@fb.com>","Cc":"Yonghong Song <yhs@fb.com>, rostedt@goodmis.org,\n\tdaniel@iogearbox.net, netdev@vger.kernel.org, kernel-team@fb.com","Subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","Message-ID":"<20170901205040.GU6524@worktop.programming.kicks-ass.net>","References":"<20170901165357.465121-1-yhs@fb.com>\n\t<20170901165357.465121-2-yhs@fb.com>\n\t<a1905aeb-b49f-d4e8-91ee-a28a92869da1@fb.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<a1905aeb-b49f-d4e8-91ee-a28a92869da1@fb.com>","User-Agent":"Mutt/1.5.22.1 (2013-10-16)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1761980,"web_url":"http://patchwork.ozlabs.org/comment/1761980/","msgid":"<8d1f83e7-da7a-075c-0931-eb669134ed24@fb.com>","list_archive_url":null,"date":"2017-09-01T21:01:31","subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","submitter":{"id":71628,"url":"http://patchwork.ozlabs.org/api/people/71628/","name":"Yonghong Song","email":"yhs@fb.com"},"content":"On 9/1/17 1:50 PM, Peter Zijlstra wrote:\n> On Fri, Sep 01, 2017 at 01:29:17PM -0700, Alexei Starovoitov wrote:\n> \n>>> +BPF_CALL_4(bpf_perf_read_counter_time, struct bpf_map *, map, u64, flags,\n>>> +\tstruct bpf_perf_counter_time *, buf, u32, size)\n>>> +{\n>>> +\tstruct perf_event *pe;\n>>> +\tu64 now;\n>>> +\tint err;\n>>> +\n>>> +\tif (unlikely(size != sizeof(struct bpf_perf_counter_time)))\n>>> +\t\treturn -EINVAL;\n>>> +\terr = get_map_perf_counter(map, flags, &buf->counter, &pe);\n>>> +\tif (err)\n>>> +\t\treturn err;\n>>> +\n>>> +\tcalc_timer_values(pe, &now, &buf->time.enabled, &buf->time.running);\n>>> +\treturn 0;\n>>> +}\n>>\n>> Peter,\n>> I believe we're doing it correctly above.\n>> It's a copy paste of the same logic as in total_time_enabled/running.\n>> We cannot expose total_time_enabled/running to bpf, since they are\n>> different counters. The above two are specific to bpf usage.\n>> See commit log.\n> \n> No, the patch is atrocious and the usage is wrong.\n> \n> Exporting a function called 'calc_timer_values' is a horrible violation\n> of the namespace.\n> \n> And its wrong because it should be done in conjunction with\n> perf_event_read_local(). You cannot afterwards call this because you\n> don't know if the event was active when you read it and you don't have\n> temporal guarantees; that is, reading these timestamps long after or\n> before the read is wrong, and this interface allows it.\n\nThanks for explanation. Will push the read/calculate time \nenabled/running inside the perf_event_read_local then.\n\n> \n> So no, sorry this is just fail.\n>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=fb.com header.i=@fb.com header.b=\"PIQFeuX3\";\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com\n\theader.b=\"LfQHR9wH\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkWsY4Js3z9sNr\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  2 Sep 2017 07:02:41 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752466AbdIAVCh (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 17:02:37 -0400","from mx0b-00082601.pphosted.com ([67.231.153.30]:43916 \"EHLO\n\tmx0b-00082601.pphosted.com\" rhost-flags-OK-OK-OK-OK)\n\tby vger.kernel.org with ESMTP id S1752367AbdIAVCg (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 1 Sep 2017 17:02:36 -0400","from pps.filterd (m0109332.ppops.net [127.0.0.1])\n\tby mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv81KxM7g022823; Fri, 1 Sep 2017 14:01:56 -0700","from mail.thefacebook.com ([199.201.64.23])\n\tby mx0a-00082601.pphosted.com with ESMTP id 2cqdw588fh-2\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tFri, 01 Sep 2017 14:01:56 -0700","from NAM01-SN1-obe.outbound.protection.outlook.com (192.168.54.28)\n\tby o365-in.thefacebook.com (192.168.16.15) with Microsoft SMTP\n\tServer (TLS) id 14.3.319.2; Fri, 1 Sep 2017 14:01:55 -0700","from MacBook-Pro-52.dhcp.thefacebook.com\n\t(2620:10d:c090:200::5:953a)\n\tby BN6PR15MB1828.namprd15.prod.outlook.com (10.174.239.13) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10;\n\tFri, 1 Sep 2017 21:01:35 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com;\n\th=subject : to : cc :\n\treferences : from : message-id : date : mime-version : in-reply-to :\n\tcontent-type : content-transfer-encoding; s=facebook;\n\tbh=UuClnBvC2ySSJsS/FSi0rCX6gRUL63DX9osPQVocdtU=;\n\tb=PIQFeuX3bW4FjRj820Htvqwm/C71Tx/+Btl+ZsCVm3j42YYCHWCBsSQrCRFaHBo1PoOc\n\tuQlE0lbs/l4dgZ8hTfBehOtNmQGMHnrFvAoui/ta2OTcmNriPMYn2pg9SQ5DzP5eS5Eg\n\tq/lf0iSq86bM8bmSONf7FGhDFAxE1KVEQ3k= ","v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; \n\ts=selector1-fb-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version; \n\tbh=UuClnBvC2ySSJsS/FSi0rCX6gRUL63DX9osPQVocdtU=;\n\tb=LfQHR9wHPw+SitfBdyOpMBFIQMTDEc1huW3PBvp7Dp6HRw9PXYPQUzsaRePI4dhT1nooGt4ONiKiSoYVhZ86OVLODpX4SOlJrgfEGQG3yysczVOGrZ8ut4rpNXLpjry+4Uw4u0U75YX5eNE55kpojOhs/41LOfdpt6yerMlXjQQ="],"Subject":"Re: [PATCH net-next 1/4] bpf: add helper bpf_perf_read_counter_time\n\tfor perf event array map","To":"Peter Zijlstra <peterz@infradead.org>, Alexei Starovoitov <ast@fb.com>","CC":"<rostedt@goodmis.org>, <daniel@iogearbox.net>,\n\t<netdev@vger.kernel.org>, <kernel-team@fb.com>","References":"<20170901165357.465121-1-yhs@fb.com>\n\t<20170901165357.465121-2-yhs@fb.com>\n\t<a1905aeb-b49f-d4e8-91ee-a28a92869da1@fb.com>\n\t<20170901205040.GU6524@worktop.programming.kicks-ass.net>","From":"Yonghong Song <yhs@fb.com>","Message-ID":"<8d1f83e7-da7a-075c-0931-eb669134ed24@fb.com>","Date":"Fri, 1 Sep 2017 14:01:31 -0700","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0)\n\tGecko/20100101 Thunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170901205040.GU6524@worktop.programming.kicks-ass.net>","Content-Type":"text/plain; charset=\"utf-8\"; format=flowed","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[2620:10d:c090:200::5:953a]","X-ClientProxiedBy":"MWHPR11CA0024.namprd11.prod.outlook.com (10.172.48.162) To\n\tBN6PR15MB1828.namprd15.prod.outlook.com (10.174.239.13)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"13aca5e5-4ff5-481e-76b5-08d4f17ca211","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:BN6PR15MB1828; ","X-Microsoft-Exchange-Diagnostics":["1; BN6PR15MB1828;\n\t3:jD3HtVSnM4TzBtkroPlAEVKk/uBqoPQXof/AlW+Te31EuykyjvgWWzLn4uJLZ74WOcQwLKzhrA9xQuDMncBKtKGcuDDGhwJxII3oadUb7KIPT2npm+aPQo+ltn0Cq6v2S0qRQH2pCk8fqN58qd6b3h6B6KZOQUXQPlemH5mhSScb/pGafwFRfxdgObYiCNnq/NV325tjavha+pcvNwT8iKf0dOxRGZTzKa/Lcx8SxGPj3uPBKmstpNvvPk6YQ0sY;\n\t25:wJ/3NKvvZnjHite0dlCKrDgn8UFxe0mDWVOTtdn6cB+3AOuMGwrnFN4BiugERzc0U8PTHZlUvJRGH2627lTNnI4VoTGgHzbXNB6SjY9voG2/G+F8hNGHNTIx85ldDQHzo+0xOWxjlidTNwOrnaiR3bcXDO+Kp38McXavUzUDxZlynYBRUZ3J4sM9uqXZhRS26mlIOYigK40NYmhpW6m2Tf1djF0TL/C+fBBPKqJkYbZwRZyVua5gXyENu/eJRKIxa3l2beWux0M17QvCrVnSorP78LVt+Whz96johqUcR6w8FeasUn3UcliuwuTZpgGhs12mRN/YDRjQbE61GJNT+w==;\n\t31:IVKYjtTM5dnHHFsyVZKxqI2IIHuSxbSLZVuXL7TzB1WaG6eRVPe1nxo08GfsPKvxR/nSi4D7VqnPz4eP4Ur3do+fzrx2MsN725XtxTAfji2DjHZMdAGUI+/H6MZ4nUA887kf8paMw/IdaKOkThWieGCk1UPHijz80ybx1pjDuv/ti44pqRhisqTT0JcrbvPS3rnc3FsVBaGuB8ma8geMmVKICIpyfIJ6ki4wQRPuZno=","1; BN6PR15MB1828;\n\t20:qKQes/NKY3g5recPoVjTLcdRkY0kNNx7TnRVYjyxQ4PJ8you4bn0TRBIolnUiN6A9rYP3Ek0/pyBPq8I7m3/HmDi87r4htwZkEvMWeSRq61mruLjbZpSYdiJLbHaOG6Cz6v8THKgALsR6T2mYvRL5v/fFNNMefyDf9qKA0PBerb/v9bP9AwPqLpNgDsWTTrlquPsbjA9HfAbBr9/crGnyvKRsq5f+mvsCViAyZHZcp1YFOy/nv2W/Jfbwz579zUb+dmQiFMpwd/Yy+3wRyTMjJmJZbk8MUy0q41qYzCahecOOktm3M9iO36l4drJl1bErASxtXxhu8HxiBHIpyWlZySF763m1HTOsAN1Ok/LsiFqpZ86Km//HDyZaXPDfN1Wm9o1EIastZwb1WyN2sYELe4bWZS4KSRdy08xuAsIamS6khtDYlXwjd2r1iUHx2NdI0o+GyXAPLnt+75v4ZfW/XsnrLvBK8tMrHWF0gkN2ym20d9lkwhNimxr0Kuk5RF+;\n\t4:sbqHE/PfGcw+GXxzAP12c2kORmWMsIlkUx1OoALTszMOyeoKe20wwndCw83VU0eQ+IaqrYnfuj1w3oZYds7yU7qQxqHdQbNFLN6wX5xO2xh/SebiK4nLpW2C8lIGzAZF1Ik1tt8Qme0+kTCu5eYcG/PYvzIWiAw9HbumNZ33Is5/zfCulJ/afUw6PI206ztMckcY4jqMa/YezhUBk5pJsQTARAq7qSMzDrNnnIoOv/Zwx3Vu3Dd80EImWuVf8Dvlm+sLR95J3r7E4L40PRSGTxHSmIIoZl92gnHw/yzT4hY=","=?utf-8?q?1=3BBN6PR15MB1828=3B23=3ARHao?=\n\t=?utf-8?q?3ijmVqTlkwaBZbG3e4TVzX76lX4WPLmiLb0+UrevWC2nKak7D+LAGobi?=\n\t=?utf-8?q?PSLFF8bqe/iPxWBKdPCVLsU1jRExc10T4BL3Yx7+T5UVBkn7BFGeYCzi?=\n\t=?utf-8?q?Qo//zEWYCstgk4Z0m73WHSdAy34mDBWJVBmvGo1UWZ0ew3/XZd3Xt4RG?=\n\t=?utf-8?q?y1trpneBQZnGBCWanitjKD/tIZ+kmOUYmdcyK504qEh64GeLgrg8w9lv?=\n\t=?utf-8?q?DhB4e/h7f8NjHR43kVu+uv8+NrpS/T4S+1EF83gVvlIV6sSBWWio3HAg?=\n\t=?utf-8?q?XuYh3b2Vpy0ZC9jcKnYdwUNM7837jcDN6nuri9JbFb3vANwwi0Vs5p0C?=\n\t=?utf-8?q?LK6tAoAABchvMTzN10wHuMeWq4y8W6d+acfB0OE97sPYXuZPLgknSeKo?=\n\t=?utf-8?q?ZjP348UykbjKpyFh/jjCm9fWEqzcykApvb5vbYxIZbbxi5LER6XSTw4m?=\n\t=?utf-8?q?JaQvWTLZ1yH8jWs9pbv2lP8oDc8EwO1gaDBg9sPxTdI3DbHn/Zn6TSA2?=\n\t=?utf-8?q?6dxTxhrJbk45h2UAMJuFboPrAfewV9WwwolFS26vO5lwpoxi82rifCz7?=\n\t=?utf-8?q?tjtfti87DrN3wM+uYko0B04x8OB/Eb9t6truKLJ3NNFg85o4dYFeQzjc?=\n\t=?utf-8?q?vRwGIKulAmJ/VzgVoU93weyR4KvL32p2Prlz9GPtpuFy1lxlD3lQ/RpM?=\n\t=?utf-8?q?4xSIM6WDLk2H0wKNMUoxRmNtK6n0jlB3C4wF7S0LAzpZtfXBjPYyCUh+?=\n\t=?utf-8?q?9OBTECjSBTm2YWjAi3W5szCYotTR0GWkXOqK2NMf1Cmu2z0zkaAc0D5e?=\n\t=?utf-8?q?rvhbJnd8SlrFCgoBOIWEVLZfGeIIgOyaqWluzhe/GsH69JMBLiau5nJf?=\n\t=?utf-8?q?RFszntBs18aBJqxWDOHJz3Z+RcXu/ditZHMN4nBmdz9B2fXIgUjF7xLu?=\n\t=?utf-8?q?YJJyrQ6QMb26KjqRFkPAQfADv/UuQ+wL59q0SGhwfiBqZf1b5rOsAUdW?=\n\t=?utf-8?q?W/N7laR68BZI9F9lmO6VN6z8q1Dly5xCQ0y92pyhFH/CaQs5TfQ+20Lm?=\n\t=?utf-8?q?pVsLvfbKduqD2R2kl9a7okgP1p/tjyeAMsZNYEBel4zkxreNyknp6IHh?=\n\t=?utf-8?q?nb/JNhDOYF7RY5AyhTPwooeiSYoLpAPSghyr7r/WcCFJuhknv/yvwmmW?=\n\t=?utf-8?q?WkHNBJbDwWdSXG5xf8xu3Z6JV5gS4vmCtSHx9xrkxKDKpPJ4IlI3CZV/?=\n\t=?utf-8?q?HYLWZUfO5jBUNJEKbPDZY3KswzH+bYs0XKi7sVKT9SSvqNAE+w6a92yL?=\n\t=?utf-8?q?3t8gStaeU4BmpLc42XvdMPWes7nTO8jA+eF0dqPhSLN7PoVs5d8k7FZg?=\n\t=?utf-8?q?l8xDa7r6rDSnhRnW2u+Ds6dDOc5x6gijWZhRUvk09ORMtcJgmP976xcU?=\n\t=?utf-8?q?SXKna7Q+cxVJDetyTN4A8KsKEUpgKSuWDK4gnzA=3D?=","1; BN6PR15MB1828;\n\t6:LcESxOlrZlfiz+AvjhQsWwlZVcTlOYgaL4ILqYGRivb4EYWkRpU+dp3czfotaWjkNvqAebud0fQDBO91TKVCWUaaqf2uGnL6ujp45lRjiy0JOHm42v4k2p2TuHYSNq//yekVDeDz7WtMxcLFu9LepgZOn5NGM9q15pZF1w0+K8/2XWqt1ixq7AW0oXhexHVXFaym+yDWu7D68pal27D+xRvgMUwtCmZ1yvvUNOr+o2MqolCfkxnoDFnocNXOmm05Yo6yeYhlPqkS/KpS5g2dmGSoK+RUyKc5cFe7Y1pVmh+8Mn/gC8RAiTy4bZ2z1QN5hmB/esnZ11TpbMzqwl6BxQ==;\n\t5:+htiRslBJIM3meUTdueSvKeyXvlFj/DOxzBKXXPoY2BNYnRd3gcxbgKoLcnGNwezwLRb/pUQrZ8jgD2eLcwieGF5qrdUJF/FXuMXG1uwLmOgtIzX+SIH4ktb+1++ntUSqfpNCFZPrxr5H/1SDwhxLQ==;\n\t24:kQKoQZiJgKGLsxRTC8u5UMID8OWmCStsNaqqgYXgrI1kU5UqAvW0BPOjNw7funZN6Fj8S41rdOYCy26iRlwXCVv0Z4SLrtt2M8i1VcQGLoE=;\n\t7:1Q5VQHZ3v0QyR6NOahh+Htjd/mkcHCACcYQhsrGV6GkvoA9/YPk+EiC6162UFyAg+ZyNAFGnc7h9NZep8blNaEvL5D2Tc4qU3LJ6PKBoSerDEhd4cDyhNMH7/lpT4OGqFwPL3B8UpawsWfvZ0LxsqA/uzeEl0Sv/dyqhR0Lolz0uRNH6vJWiqnW/W7PNFA9s0HI1blu3zIxhv9dguNJ3OTgzQuGMoa5AkPqMvj0d/kE=","1; BN6PR15MB1828;\n\t20:vFXSGcA361JTQa7hmYZzcYx/kUvh2UcKQ8X84axghH7r/lAGX+p9Z26DQvkk1VhIh4W2TZCqT4OG5QA18gvJiN1b80mp20seqRURW5dYsCdNbKwfMnIfAABEFBrSYdk5PnCMKxPsLXFXC+jMk1haAYZVNBdCxwtRkK9g3cscw18="],"X-MS-TrafficTypeDiagnostic":"BN6PR15MB1828:","X-Exchange-Antispam-Report-Test":"UriScan:(17755550239193);","X-Microsoft-Antispam-PRVS":"<BN6PR15MB18282875E8734826590C2AAAD3920@BN6PR15MB1828.namprd15.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BN6PR15MB1828; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BN6PR15MB1828; ","X-Forefront-PRVS":"0417A3FFD2","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10019020)(979002)(6009001)(377454003)(189002)(24454002)(199003)(31696002)(81166006)(86362001)(8676002)(6246003)(81156014)(6512007)(31686004)(42186005)(189998001)(65956001)(47776003)(25786009)(65806001)(478600001)(53546010)(105586002)(23676002)(4326008)(33646002)(106356001)(7736002)(305945005)(53936002)(8936002)(50986999)(101416001)(76176999)(54356999)(36756003)(68736007)(2906002)(6666003)(64126003)(6636002)(6116002)(230700001)(2950100002)(97736004)(6486002)(93886005)(4001350100001)(50466002)(65826007)(229853002)(6506006)(5660300001)(83506001)(42262002)(969003)(989001)(999001)(1009001)(1019001);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR15MB1828;\n\tH:MacBook-Pro-52.dhcp.thefacebook.com; FPR:; SPF:None;\n\tPTR:InfoNoRecords; MX:1; A:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: fb.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"01 Sep 2017 21:01:35.3218\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"8ae927fe-1255-47a7-a2af-5f3a069daaa2","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"BN6PR15MB1828","X-OriginatorOrg":"fb.com","X-Proofpoint-Spam-Reason":"safe","X-FB-Internal":"Safe","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-01_06:, , signatures=0","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]