From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751676AbcFIK3s (ORCPT ); Thu, 9 Jun 2016 06:29:48 -0400 Received: from mail-db3on0131.outbound.protection.outlook.com ([157.55.234.131]:23905 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751062AbcFIK3q (ORCPT ); Thu, 9 Jun 2016 06:29:46 -0400 X-Greylist: delayed 58636 seconds by postgrey-1.27 at vger.kernel.org; Thu, 09 Jun 2016 06:29:45 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Date: Thu, 9 Jun 2016 13:29:30 +0300 From: Roman Kagan To: Borislav Petkov CC: Minfei Huang , , "Denis V. Lunev" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , , Andy Lutomirski , Paolo Bonzini Subject: Re: [PATCH] x86:pvclock: add missing barriers Message-ID: <20160609102929.GA2570@rkaganb.sw.ru> Mail-Followup-To: Roman Kagan , Borislav Petkov , Minfei Huang , linux-kernel@vger.kernel.org, "Denis V. Lunev" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Andy Lutomirski , Paolo Bonzini References: <1465409499-23166-1-git-send-email-rkagan@virtuozzo.com> <20160608194509.GE4094@pd.tnic> <20160608210112.GA6735@rkaganip> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20160608210112.GA6735@rkaganip> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: HE1PR03CA0037.eurprd03.prod.outlook.com (10.163.170.175) To AM5PR0801MB1250.eurprd08.prod.outlook.com (10.167.216.137) X-MS-Office365-Filtering-Correlation-Id: c14d5486-a6cc-4b7d-6abb-08d39050f623 X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;2:6gS313dOrqDP9gDY6Z69QCVN8LlY/IvaM+SuzsMjxr2TRyl50iJnf/zlYKGS621wInyGa0b3nYkpqYPKp/WjbLUiVY5X6MK92U5sfM1XJvepaNvamDlaa8JAF8Pi3DajLgQ+ch9rsFnrDDquZY7dEvOVFrBb8FuzcHAH7BRavBmNwUvbPZUiW6yw4ZxDMJR+;3:0Bc6P9o7dC5BavNuPE/PeqgDqkluVoWiJdjQ2aYDeRvn/xRqz7TyQgEFw4hyDXUnT9gaa3fZAaSQe/+TcxPCr8TXdOZx0Ogez1CApZKEVmO6R56TLOH6QaupfE0bH91A X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1250; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;25:Bu/x0OUwcoLrxGH6YHwIpmopATH4XTl28/1yUFM+K8jlvoWqiWORQ6k/7FHm2saWABFyQudiohYbnkKSCt+4hEEa5AKQzk45eHerl0q9d3rEsUbgqzOrTS6nDb0uhHbSaOD4/ZXfIXxezxGzKUwBD2Ar2TZgzeEc2M/MdnwPiAmTMuDC5IXuQJ1AA3Nbdoc1yATaSMVzae57SQnmVVGMy+cdCc541kkiUQJbVSptj+PF68DgIu8Tu9piCp+mfAEKEFTSEmnUt+akiG+PstDImQZCRI8HAaICd+yMYq/dQblQ5BKgOEzZaiGQQ7mJY26swWzH5+qYHZ0GvLL2vBpQuq76VM6w1Dl20XwDb0UYttoad/y5xGHYXK+hMEcNvoui4wiRD1WqugPjYb9Mp/XVMLAj1L+mUVMYkWkUm6T4nG2IkYIbTlFPDzjWr/Vs1c+IR+iUBCGN/zdBrOvs3ni9ktM4rNQ5DeBqMPJlnUbJKVX8MWYjxQpDNwxUN3494cGS9pelxJjtcJCdIXYjgrOaMk7eiEUdlFGKzk0Qt+YLwhS79RHEa86wOcOFf8/P8bacLR/U6n+8M6lG9+bW2ArZtWf5iHNkKEQkfe9z//D/IwGT+ZATtnNmLKHmXBjJjCijTlbMvJ6y8kxLgUkG7xPQq8k3bLa9pHY2goYrl/QgpnVMGEA2kpPhXdldV1olIFlnCQCPXtUYTL1F7iMIUmLlCy0Vd8q6TaKRiQVXARwO8UFKfsw8i0xsDUJcfm7XHPL2nPXzs9NyRrW9upkG3bb0BK5Bm26IgKVkZE2ZHmAvuDo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42068640409301); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:AM5PR0801MB1250;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1250; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;4:9+jSZL16DtvX4wF8IwbaVGfkBzOTHMoa77zT0Wr+HTuNZH4PH6CKYmuSmfTaz1oKKIplnbMBlRX+Q1zEkMxpqP0EeW9xIunc8m3F61iK5tByhbznRq7qxn49kOQ65TZgERbZ8tYNSz0Ubf577EF7TIJuWvr3cBXj+EspOZfwfOiXYgXsaebGfpp3m/MgS5jQj5BvqsYTJa14QDl1nSlwfxH7hNpvB9DJ6eeUK8T8x1Qdm5lxWzLYXghVaH1Y3LsNQ7n+J517w3aum8fXZhnp8eC4jFRHjL6DdFiumw9j+TelVClAcvJIe07JJ50EviuBdNuzpaDxBwzCDG7v9ERmbmL9XeDMNKV+n5jBV+OJ+HF8L2HesIrGTxitlTajnlF1aFx2s5WBGLKJUL3+I4aEVLX40W9/nYD+xkA0c+iSRW2z7+n8mVAzuI0OIWwTd96Puz2ae8LdVQdXOeXX7tc+uw== X-Forefront-PRVS: 0968D37274 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(189002)(51914003)(24454002)(199003)(1076002)(42186005)(36756003)(68736007)(325944008)(97756001)(9686002)(23726003)(66066001)(50466002)(106356001)(105586002)(81166006)(3846002)(86362001)(2906002)(6116002)(81156014)(2950100001)(8676002)(53416004)(5004730100002)(19580395003)(69596002)(83506001)(19580405001)(4326007)(97736004)(5008740100001)(586003)(54356999)(15975445007)(76176999)(50986999)(77096005)(46406003)(33656002)(101416001)(92566002)(47776003)(4001350100001)(110136002)(189998001)(30126002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1250;H:rkaganb.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0801MB1250;23:lHfCNYlEq7+4Vtiq7PRifd/RhI5Xdms8k6Lq1OD?= =?us-ascii?Q?ZEq9qsGiUNoTgSqQeiR8BZRcZuBfhLH/nvTqdmwoCzeT1FUR5YpIpJLwYtkl?= =?us-ascii?Q?4aTfhiFpiQNsZt6LdBcHkP4PCSWcSDPY6PoR9prfOTSOmK5iH5PELFT1kFHY?= =?us-ascii?Q?I+HX11ltdugSXZbhPaQE47Fq9zG8SRoppTWySC8CD+2jDs96zZwda85/NZYP?= =?us-ascii?Q?oAPMfB9khNRVVLYMrtUPfiphL6rb5OKdXGpZ52zBkg4htNwL7qO0jM0LEjSx?= =?us-ascii?Q?n2HFUrXnBWl31+YMfQle47eMB7FQ0W0+sKnhp/69B/WzxQQWRNOSYPqPBIsh?= =?us-ascii?Q?TQKMdvJnsM68dJbIIpyC7cZCnpKnj5+1Qjjbse6dzPN4QZi50DspjLEUNUMz?= =?us-ascii?Q?4pty8SVk4GWteEnwT5DkHDgWHjJQ0R2DfsKpym9rAYJvJKGikMzWJgXokZob?= =?us-ascii?Q?Ic3koJEcURizsKqJbi2HpUM/keMp5SI9OhIuOyc36J1U0RrlzNR6Rg8vgDE+?= =?us-ascii?Q?YyJlymHHYvLNGbb6ZANV6rjPiEbMHYeM3HyrkAy2ufdvNLtiStxrKJ6zTtQ0?= =?us-ascii?Q?xNiQ2pR+egjX6K2ccwB6axgL6vAFg49gumL7tMs7O9DYDLZBwR5+pgR7vxBa?= =?us-ascii?Q?htTqQixA1nnw9NGZDOkj1VhmO5s4Eq/oH5kxrG750n6YL+TPv+plXq8XzR4y?= =?us-ascii?Q?8Nb2NpIVlJ1nVBNEN+fpm5/HAkZNma909h/O5WkVdUd2j2cD2TUB34a5jStl?= =?us-ascii?Q?OCd//VokolIlAB4oSILjimQ+2q8g4lTqoQ7uZJD0DfXvkX4qOdW0YCSRQJAz?= =?us-ascii?Q?q2MvQEUVohBGbIZIxakp0RaVlmtb7QXDPbGyXD4B++oRPRri3YufhS+O3TfN?= =?us-ascii?Q?WgPTH21SN4g/1PbirwTyPuBp1QN/NSz5zdkmyBMhG4a7KBGTBzWO6ZwiLgY3?= =?us-ascii?Q?11IHUI3TGNBrydMdyeTzU+Golv5zGvXmrpmCGeIgqrtXY1IFD6nvAgp+sj7L?= =?us-ascii?Q?aX3cv7SRTAjO3MJpXjo8TGdZ3D0ZcUAQu/lrwYSEk0ns7zxt7xciiXNtCNW0?= =?us-ascii?Q?0+YmdrGpwtsc6+JVCRiTloVJDgihxVGtK2s9XLblCEe8vdtwyl/I/LBSa/Xs?= =?us-ascii?Q?I5Nfoz6NWUKae9PO5WlVp+V1lepnKplf966L73kFDvYqOqAQ39G/qFlIR22x?= =?us-ascii?Q?pSJljlrz8JCnsec+fxZVN/qeJYCL3Kt2MKPYD/WHPLr6GyIX51kw8wPeijEN?= =?us-ascii?Q?jtjNRTHN1LT2ubyGYUg911qNMWBzd6ybQnfozL2qh?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;5:AFxsynqFUMEiF9O4mRbk1PfyB6GVDGHAB2stSHCZ63zVjFEHANCogBPQHq1DW6N8v/C+3Ahd6GFTPzy85m67pHK4I3pvs5EQqclC2qvwhaJHuhcNe4W4WFcxSgGMZDXZQ8qX1l3ZU8UQesaO2kPtZA==;24:mhPFB2gfMLqRpxoj5TvJOweHH0dg+utBuOlx/gkQTuTcHZoaMfJDOS+zaMwW4+/1E7oIz3dF4uO+mj5p3Mpy9bdv4sa36g0JuIy7FkVby0Q=;7:C1S1dA0+/1lsLblcDjl+pdKGJpcJzGEye75rq7tK7WexWB5r56AXlYONs3j8NJrRU6dzuqRgroyjfMfzPY3Y/+VmGFTrQH9A0ZOTdv5Ej1eEhW6WKsDUPb8L1tmst/X1QKaD1H43P4COjz/Q2a+H1Ui+tLMmhEu6MkqS8CkVGKSxeUXaU//8XJXjN9I7BhkMtcRyGp4PvMyspM6KLahor3mNMzr3q6J8hQOCsjE+Yto=;20:DpbNYVIROSE/2/y3hRZXszxG0a9H73U+M2UjtGGYD/aqDDBSyPYUBpszuRRUDIAehRpTr67Brr2EPMoud0CElMQMfKakzAPndt5T4f06oWtQBKrRXa3jqY1GWzjsPjQjnecxVd+Z4bEOaEhYyAfhn5dGD6LZr9CtvAPgJbR+Y6k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2016 10:29:37.4733 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1250 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 09, 2016 at 12:01:13AM +0300, Roman Kagan wrote: > On Wed, Jun 08, 2016 at 09:45:09PM +0200, Borislav Petkov wrote: > > On Wed, Jun 08, 2016 at 09:11:39PM +0300, Roman Kagan wrote: > > > --- a/arch/x86/include/asm/pvclock.h > > > +++ b/arch/x86/include/asm/pvclock.h > > > @@ -80,18 +80,11 @@ static __always_inline > > > unsigned __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src, > > > cycle_t *cycles, u8 *flags) > > > { > > > - unsigned version; > > > - cycle_t ret, offset; > > > - u8 ret_flags; > > > - > > > - version = src->version; > > > - > > > - offset = pvclock_get_nsec_offset(src); > > > - ret = src->system_time + offset; > > > - ret_flags = src->flags; > > > - > > > - *cycles = ret; > > > - *flags = ret_flags; > > > + unsigned version = src->version; > > > + barrier(); > > > + *cycles = src->system_time + pvclock_get_nsec_offset(src); > > > + *flags = src->flags; > > > + barrier(); > > > return version; > > > > I have a similar patchset in my mbox starting here: > > > > https://lkml.kernel.org/r/1464329832-4638-1-git-send-email-mnghuan@gmail.com > > > > Care to take a look? > > Just did, thanks for the link. > > The difference is whether you want the reader to see consistent view of > the pvclock data (as in my patch) or also the most up to date one > (as in Minfei Huang's patch) at the cost of extra lfence instructions > (on my machine this is 30% slowdown). Sorry, I should have looked better. Minfei's patch inserts smb_rmb()-s which on x86 are just barrier()-s, so that patch results in the code equivalent to mine. So I'll jump onto that thread instead of pursuing this one. Roman.