From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754300AbcKRQ7l (ORCPT ); Fri, 18 Nov 2016 11:59:41 -0500 Received: from mail-db5eur01on0078.outbound.protection.outlook.com ([104.47.2.78]:50771 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754269AbcKRQ7j (ORCPT ); Fri, 18 Nov 2016 11:59:39 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=cmetcalf@mellanox.com; Subject: Re: [PATCH v2] tile: avoid using clocksource_cyc2ns with absolute cycle count To: Peter Zijlstra References: <1479324933-8161-1-git-send-email-cmetcalf@mellanox.com> <20161117095343.GF3142@twins.programming.kicks-ass.net> <20161118103425.GL3117@twins.programming.kicks-ass.net> CC: John Stultz , Thomas Gleixner , Salman Qazi , Paul Turner , Tony Lindgren , Steven Miao , lkml From: Chris Metcalf Message-ID: <16b10c48-7caf-8097-e9a0-adca64c57773@mellanox.com> Date: Fri, 18 Nov 2016 09:24:52 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161118103425.GL3117@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: SN1PR16CA0013.namprd16.prod.outlook.com (10.169.34.23) To AM4PR0501MB2756.eurprd05.prod.outlook.com (10.172.216.12) X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2756;2:kv/Sw5V98pr2MTStoDDJ6VSC48EEjGPRDrQSqixKSRh42U3XDKEz0Fr72vD1vnYiER5cS+XYlb5hDkcWfckd0Vdxz1DPef2dNc5FYLlZdXLGM8fb3dC9/nQ2ICp7I39mHyN/aYpc1H2iKlMXjkSDcoL2aOa1bpMAuG3CbF4i3YQ=;3:mL2Hiy8rIiE7xXq0eV15rP/Bmiw82G3thXv2QCTL+PHIiicxaYvcpUNqhSdvITfZRQXApIz0DJABGKJMpQ9/iuc8mSuazT55xW4JoMVgUBGOjcRHL6OS+UZbeqk1mDKJEPJ7xYRBi+uWSkZTS5om9BQtG3Hya5FOX9QPz3B2Wmc=;25:/8btdvEhqVGqlEozxHlB0HWw/1YTF9TcEKI018nKZ6hK+7eq6ul4GUvTZ0guj8bDH62l3GaeAKHw/LTYteBQfxi4aNY1l2PE5zgEQkYHxz/tNBiYHfupXyLTnpYYeWrl5Tg4GFR50V5KC+tzEHJCgX/MKTAzlLG2UliCnkyayE36wn5dUIp/zQyeZEPxPHhwAr2++VAzBCv6OntjUDgc+55RZDkAWHxFKdmNSwNCn3hWWJTW2tr5N4ciOKVJ3XQ7EfBHH55uXu6E8FdCtns6OyYfmDWhjYmsU5dzParpt/6Hhf/J3QO81NrIgJc0NpebSXqhWtFuRriuFFcOAjqUKkzFVPVf3NjunhF6M9VECbHVIRIsl2Y/nn5sf/yGOG7ZIZQcBm1PFZPdQ7L4AnUOcLWS/GxBUJjDVIcdLPHbVaOFuYxFdI7yRaoXvEbyW7OC3ekiajZ1WnPZ7n0EK9HrEA== X-MS-Office365-Filtering-Correlation-Id: 5cfec05d-8233-4925-fc6e-08d40fbeb0d0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM4PR0501MB2756; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2756;31:RR/gG1CDWbu0jMGCLgb2+FMSXSxJC5U0VVWeicXGkvLPK6Hwl3C1WfNuTjE3el/QBFt0dgRTxGeXqFG5ZhP+YksHhoLOBnKYcrbaV/bDMeOkZXRWAyQ/AkgtZHPkUWdroeljTQ556ovRK2uKcYFwwSeiLfoms1VDeg/SLnxf7SDq8uJ/W/+Fwiwyxzxz20jKKMqdJaFK92WcZPNN3uhfIKRYbAQ2DZgwiK3cWftPCOHxa4PGn/myLqvi0aD79Mz7p+y1urx8ghSEXLPWZGYTL32Y9qJ7MrjmLh2K15mjfjyAW7VMDs1Ckn+g05QOJxmp;20:YSJN+F5hqgb4azbuyp0M3ujBlSrprRrRwnvAKM1Con1+MPkTxMKxUl2W7VN49s2Gm9rIWuXCWm56O7Pa1re2xZ26aNTo32pP5Ik3ew688mnrNZWqgs2v/4ab/NYEIOcye7UtOssrb9K4M0yco7ua6o9tL9tQ4lUXTlCDnn4ei0I1gLI0oj2mM+RbAEylk7Kk9bpYVBMT6zgGe9LwPaBOacyVdnNXCrJRIsYwDkwJfkvojgQ0f8ifvfLxPJcpeOvmTiBFUEwOmZ2e4V+kEPQG9+14PKVNoPt4mHYxgbmVXiABlIlywa8xo03iJa6bqtOyse0BS7qfv+jOn935/G0EHgZVd0NsMPskEuQJ7Lo3GdeQAdu/EINqqcmhub2dKkW+88WtoBUWS2bOaIeg2HhNPlQsN/J8YKn5qlPtIReaG1JvLoWoX0xmFCgZbvXKZDWBNH/HDDIx7uTnCkmzp0y3qMu6YAOI6igXQBp89I2dsy3a75uPeagCE6W2f25lrL/Q X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(171992500451332); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(6040281)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6061324)(6041223);SRVR:AM4PR0501MB2756;BCL:0;PCL:0;RULEID:;SRVR:AM4PR0501MB2756; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2756;4:2aA6T60GKZ6/FqLUeiBS2tnoHQze0cGCTxdEz1Nf1L+OtrKgOLF91RQO5XJNx1/8A7mm0e3rdwJk0OdGJ7R/WOv7Dl2fydkANsShTU2X+mchrWi4cYmMdWK/gLYOKJquiqoxRkTk5wQ74goYAo3B42vAtZq+VzjpDVIiC3zMLvye/IhrNK/pD9ws7n9HdQvnXUWXTe8g3jL5/gVn8mkR6UlnulIPMOauDC34pscO2RE7urOvfBe5RvPKEJwwiawaQQiswme/5SNDZpX8qGsRUlwfgSw2OuYSbQgp/WsnPT1ECZhKLKLdjXuRiXzQGjPhAKwk1t1e1eS71RsuSH4mZc1r9CYBkgXd3fCknQtvj0aIGXorHjAcHT92bV4emrNGC+yrvLLy/if9Q7VH/HaUmNEg18JD+wfKCouEERdm1F2ZeC70/uHBAzoryCz6LZdmFwtnr3xWQmFRCSo4Puqnr/dOXns+zWlSPt9efyMrMQ92Z+99SRIdsH2adSKmZ5SBdt9YZc8j8KWOi2nzTvyV4Q== X-Forefront-PRVS: 01304918F3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(189002)(24454002)(199003)(377454003)(65806001)(8676002)(66066001)(229853002)(106356001)(86362001)(230700001)(4001350100001)(65956001)(31696002)(31686004)(77096005)(38730400001)(2906002)(4326007)(68736007)(83506001)(23746002)(81166006)(6666003)(65826007)(42186005)(97736004)(81156014)(189998001)(92566002)(50466002)(7736002)(76176999)(54356999)(2950100002)(6116002)(93886004)(105586002)(101416001)(3846002)(64126003)(50986999)(6916009)(305945005)(47776003)(36756003)(5660300001)(110136003)(7846002)(33646002)(15760500001)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR0501MB2756;H:[10.15.7.185];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AM4PR0501MB2756;23:y6/lqxHUC+ZU5CG0drhOxRsOEu6p8bst/BZ?= =?Windows-1252?Q?m45xcRX129n4ufoljXXqBAoLsqDg2ynXTNUkt+wtAkdJZvRfweapwgfl?= =?Windows-1252?Q?QpLsEpL9J9VjVc+DSXQjcv8mlGeeb9x8J7gxlTVyB9Kjh1AQks6xYFq0?= =?Windows-1252?Q?mq0mgD/+deRqaNyETBWX1ZqFnXGSI9/eIHbUlt/bNanJtc1MkzAukSXc?= =?Windows-1252?Q?wmt7usacKVMMr4Q19EHY7ssG3ViaAVqhVEuwOLk+8wPmyEr1OM0TEStQ?= =?Windows-1252?Q?+O63NxAk50JF3S54tmSLmFVoKvTBXIiDq11UrCbJtc9s7VyEGegJnJqI?= =?Windows-1252?Q?q1jhTqQN7J+Rgq6/KckmEW9EHJITU3HqV+RcVEc0JwUENG75kvrYqLWe?= =?Windows-1252?Q?fGx6ltdrQblXMDrCvZP0wv5wh3cyiIa9NNWjWUmquui865gUeYEP4w85?= =?Windows-1252?Q?R9IDwrRBEwzZX/LoUo9gh3TOSYPuz+DYpeBBAPbsaMhzQJvsmqqJ2nbf?= =?Windows-1252?Q?vyeaUBOQD0xzESTnHKljHj1uqCjoQ2ILPDxsZAYqCscppQ6HnTINQYOc?= =?Windows-1252?Q?jkVCm0G0h+Dghd2LXCnhQNxOZfNP0ooUrpYr1BRHn0hVatkVI3cjy4uh?= =?Windows-1252?Q?uQtrsArqODU8LzOePZXlxEbPJQA5210rHzftgQvjqDL9Yg9Lk6k1DRrE?= =?Windows-1252?Q?k1d4CC4a2YVdqvld0cxZwWG0WcXBIUdQcPODy0UNqLOTTwoK5Aw+KOyF?= =?Windows-1252?Q?A0SfBK8TCMwtZGAT+B68aL3aRbeOJNg+DlSfyOlgF5EpA9YpspXxp71y?= =?Windows-1252?Q?x/H3CpiUac0dntfRgC5D8QEbq3QOW3SV3NnD59jQejrcWbRz42giKr1P?= =?Windows-1252?Q?PQMFSHcDR4LpNznF36p5jXduyo+UiCNGIMMaMvp2GneQwPi04h6eQybr?= =?Windows-1252?Q?BsYKV0VmiAVSQushZWEJjXDuXGO7cDEcUPlEtihFrB7nBW5iESra1VXA?= =?Windows-1252?Q?8RtK52KZ2axA6QeWJGcqw+jEJuEIXf1ahzQlhuEmGyHjgAHrg1mDoXZw?= =?Windows-1252?Q?oBzwa+zSG1nin+/aRscfaU1+7SXHeKPmm3PnzM8/j4HqArK8oTrFJAd5?= =?Windows-1252?Q?AmR/pCHnYiYD39wDxgeaPAsmR4kWbJvtU1PyHCWef43YBt54dUYk0OBj?= =?Windows-1252?Q?FWPG4wxjpeZvN1RP0uccOiif9HlkBgbhAf/Q7gO2YyMe73DRf5xS3cPg?= =?Windows-1252?Q?wfdgLYfW1IHXOQ8BNCS4s1UhXTQHPZvzc3h6t38cb5F5/qKpnRlQtQYg?= =?Windows-1252?Q?ZaWWK4f7R/xXh+On0NTTsle0/C2w0Nq52DGT4ceZhsFeJVRS3kFjjbfe?= =?Windows-1252?Q?cqmCUunbt3vYPJIq8z+q7H+7bdb5Ud9HElu3mcpfqoeM2sb/PsEhhTTG?= =?Windows-1252?Q?Ppd4WSrERFsJtrlT73J8Es6vImXIjj9aYsf0OD1CgnzA6iVpJEfJVvMK?= =?Windows-1252?Q?iHhot38Y=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2756;6:1O1LDtXFV+Fjke0nWJxH0gHrXlEuDjWTnrCEu47LyMLyIwrI/fYmYslBACoTby14LhUKkuXfE3G4wyUeQo5C1HUsc7sff8vh6qiVJPsalGJizvbK8dQLGTR2EacU+e3S1fRkblrnEvviBYcTN408xGXjkyH+SoRLHdbxlfqGl1wOyDcQhFsFBdYkKSEroGheO4l6cSAqfioiLw1l3b+D14bDTcCC9L9ne0sX7EhcpPHTVAIWeYqejmXTNWW2//9F17WsXXiiJnykArhz7x8CytFIeLZI5UR14T9IX9vbzNTq968ScDUsyh4oIZeRqhcPAfW8ySwe+8x+msXktSZMdjGSdI9pNPKczuclY9eAI+6/M4CeeSCh6Cj9nl9NveQN;5:MDT+B6CsyjqnYYFsXOPLrRyTW5m5wf5hq1VvFwI+DfL0842VICASC1Rsmvw3lHADtpVT6SzD4VP1EZdm+LUZV2hdB+gQAbxNVUqmKPkAd/2CTViuRJTenCx8c0+JBJJHBfy5jws4ju9bLnfBxnOFMQ==;24:0QOOEQIQkDIRM6SnHs/9zIq6P6zJDll2lFk8KcRyaG3b3H1MY4U8brzJ2YGXUe3a8NuwyDF784Cyk/zv0ftK9vXypKZlyuv0tL+2a7DTGUw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2756;7:wEOtHRHaAh4QRH3ZEhdYcEyTfSc9k3cP2gaMelSVUU9MJCszC3m4/une4Ah+IfqMJu5WMMv1EuPujrBff/AHRdgTV71Tu/i17fxZMHq94Zxopw6rbDa81OhLH8x0dM4j3bq7R7dr6zH4I4CF9XylKcQkeOWDdpCiRfpm1svw/+x/xT2JXwKF0LzjLfC+bqCxpFhIWGKyb03JY+F1tre5lzB6mczj80OT5O4AeKHY06tMWrtCyjKPVtOdrG7jSJVVPyEXbiiDKJ4AZkI197N1gy5G8Lc4/WvCHYbVhDDmBETu3Y3Lhyld37nb72xBV/t9M1He3FXJ9e294lvCaqh9g40kvyBEwJ+3xQgorucnzf8= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2016 14:25:03.4708 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0501MB2756 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/18/2016 5:34 AM, Peter Zijlstra wrote: > On Thu, Nov 17, 2016 at 03:00:14PM -0500, Chris Metcalf wrote: >> On 11/17/2016 4:53 AM, Peter Zijlstra wrote: >>> On Wed, Nov 16, 2016 at 03:16:59PM -0500, Chris Metcalf wrote: >>>> PeterZ (cc'ed) then improved it to use __int128 math via >>>> mul_u64_u32_shr(), but that doesn't help tile; we only do one multiply >>>> instead of two, but the multiply is handled by an out-of-line call to >>>> __multi3, and the sched_clock() function ends up about 2.5x slower as >>>> a result. >>> Well, only if you set CONFIG_ARCH_SUPPORTS_INT128, otherwise it reduces >>> to 2 32x23->64 multiplications, of which one if conditional on there >>> actually being bits set in the high word of the u64 argument. >> I didn't notice that. It took me down an interesting rathole. >> >> Obviously the branch optimization won't help on cycle counter values, >> since we blow out of the low 32 bits in the first few seconds of >> uptime. So the conditional test won't help, but the 32x32 >> multiply optimizations should. > Now, I don't quite remember things, but isn't it the idea to convert > cycle deltas and accumulate in ns? That way you most always convert > small values. I would think you would also unnecessarily accumulate small errors. The x86 sched_clock() seems to purely scale the current TSC value, so what tile is doing is consistent with that, at least. -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com