From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932348AbcFINfl (ORCPT ); Thu, 9 Jun 2016 09:35:41 -0400 Received: from mail-db3on0106.outbound.protection.outlook.com ([157.55.234.106]:59872 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932073AbcFINfj (ORCPT ); Thu, 9 Jun 2016 09:35:39 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Date: Thu, 9 Jun 2016 16:35:29 +0300 From: Roman Kagan To: Paolo Bonzini CC: , , , Subject: Re: [PATCH] pvclock: introduce seqcount-like API Message-ID: <20160609133529.GA5400@rkaganb.sw.ru> Mail-Followup-To: Roman Kagan , Paolo Bonzini , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, mnghuan@gmail.com, luto@kernel.org References: <1465471403-49372-1-git-send-email-pbonzini@redhat.com> <20160609124317.GC2570@rkaganb.sw.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: VI1PR06CA0041.eurprd06.prod.outlook.com (10.162.116.179) To AM5PR0801MB1250.eurprd08.prod.outlook.com (10.167.216.137) X-MS-Office365-Filtering-Correlation-Id: 57e70203-6ad5-41cd-24d0-08d3906aefed X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;2:Xr7R4lQQMyRRakhUKNWG+cdadPGXOkx+4vQDdnhdgJsP/wRaalyjo3VDK1urKBaWBfeOm9T1AooBkzBzNICsiCOkogpKYVTKwMiYns+l7LgJVFKXPSHzw7hdrg3ncIqO+T/eEJG2pIcvk7kz0jVSK+/asyZq5jf4kVZrVVAd2rFEts3IHHF/iKqezZ+XlzbL;3:OIAC//Qj+YEqZbEEh5q6/THwVUiJUEQFWv3W0xnpXpeXfSe+gnIWKLNcqVbApzZZ8t7LV1UgeZzIL/AhoHec/i3zoXnJUgp6HYWJsUZ1a+4DbjfFwy12J9HRRhmoCf7O;25:yHtsDfPO2r9P2Ib9jUwNp3eGzVyB5kgi2q+oZ4JXNXVCdDsnltXlHE+k6f9BWGw9X1s23kIQaqwTfC8zfwV5ICsAcanmWTa8iPmIqnXKXf8mwX73i9HTjwpalmbpkKNpq6jUj4aENAHtG1do0NQ3Ysd7D8b7ZaX9I5KeDwHT81ni6SeSHR9DiuLohuOY2T/TiTA/O/SwLC2ggW2rhSZgbNxUZld7jdipr/e4PBDZ9luteq+rq2aVUMPyU7e8Aw2T7hjOHoScsbh4X4XRWW6bmEK2wEbE+F4Vsw8SxUtdY6bITy0AlYhTlir5Vh/spmmHGzm6lSM8YJRbm9f2AarHL8yNNq6/DB/L9qkYtbHhroPZbbp/NPtf7M4xAuFnXJj0vtJ4RNljSVfiXPusvigESTNg6lXMRPZH4wTsGrpnLGw= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1250; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:AM5PR0801MB1250;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1250; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;4:usZS4l2K+Gcny33qjiEA1ai6hlBdnObDPZjM/dzm4BQ4PbWdoAecNkA1crMsHkkVW3J3lu8ZxFmnioUNzMujRjgZDF28OnMqQdMa3Ce5qFcebeXh5GrVdDKtCu/wLXkqgn0yMWagBqYgA/bsHfAD+vgxUypcKM2LNt0DQAkDU+xgxu06GCR3DofpyEUd3Z5WPgfOuGzybVLYR3RqV63chUkg2dgDyILUo8Y/eNDSB2k2sIE3WmPdJBz9uMci+2Rnls8ldsu1N1VgBhIUrVK69QqSR+FwdIG1aeHMk/vI2Rmamu+KptuAC96MOd/LhqGApicQLTsoBxG5PmCwuoTMoGCyhNoiKUzVTtAUnVHWQLwqaWiv1KPyqkKJ9Yk5S8g3n3XDCafVIg76cODQ44IHmqAZlNVhRVdoLtEirPGFXJI= X-Forefront-PRVS: 0968D37274 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(189002)(54094003)(24454002)(199003)(1076002)(42186005)(68736007)(36756003)(23726003)(97756001)(9686002)(66066001)(50466002)(105586002)(3846002)(81166006)(86362001)(2906002)(6116002)(81156014)(2950100001)(8676002)(53416004)(5004730100002)(19580395003)(69596002)(19580405001)(83506001)(4326007)(106356001)(5008740100001)(97736004)(586003)(54356999)(50986999)(76176999)(46406003)(77096005)(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:wHocinKyIwCGICANqffPt19Tbpx2jXLyCstRXW+?= =?us-ascii?Q?7K/KqqnOpBQI/lMZFLwTGLNeWPqdEoNwZLSc0SZcnWsmMKRWk8/l99nE98ix?= =?us-ascii?Q?muVF836DgiP2Kv2/o2EPVCPFFu5/zefpFtJ9vvCcrZhW8CKLEr5R8UPDguv3?= =?us-ascii?Q?fMmEjKsTjalaRnTJu2vpPimQ9xAQSsU/Hzyicmvqh/8V0EJ+EQUzFc+fsQ4I?= =?us-ascii?Q?dkSnfhXr7D3TIvJ5g3+Ch+cMie6vw2+TDIK4miFvAg4o/D3yEnwTpMOWuzlJ?= =?us-ascii?Q?VNC9/vPecPmAyxUiJB/OvlETVN5ZOGy7O98lg5cwsEqIV3QXS9/wMLKtTBng?= =?us-ascii?Q?04le6nSeJu62CLK4I/zzThBQg957hfsIUeltX0K0WJpDB5MJCcw5KJ2uW1yO?= =?us-ascii?Q?ubIdYtyrJ1manZutHRUSdk8fv5WWIyNWLZBD0FkiZVD+zWeRdduLaayi10Db?= =?us-ascii?Q?DuMyhISUFhKwNgRuEknRx1H1GgfkvkkpHWlWEQ10aGfm4W2QjZ5G67X/adCS?= =?us-ascii?Q?ckN5EdkTgTgIvUwoS7UUjlxpsQGCyyhfW3nNjEJMdBTw39vRr99mccMjWAg0?= =?us-ascii?Q?VJqbCVHuSSezX8gomPdN0T86RTOk1CzJArbVzsuXmBAo4KvXuLMcDlaNbxAj?= =?us-ascii?Q?pBEazHojxS5ekjOtmO0Nr5SX4zyvzTsbi+WeXyKZmXTqXMI2F4RzAiPHAEfA?= =?us-ascii?Q?bL2a8Hqanw4qVlf42F2q+BmFGqCB7Uvs4iGls5Nk/moz/tA4oj6nhAniEGGz?= =?us-ascii?Q?9PJYTx902sRvq6Ffwxnva1xT2N9zEGwxLiQoFmlePiTWU6Pi0pfRQnnQqVNq?= =?us-ascii?Q?TGGI/edYPFP/zaVBu6ry4TCcj3NPnT4cadXpFgQ+CKbaehlrXGURkDI8gEtV?= =?us-ascii?Q?LSYs6TRe2IGZ8YvoHWw67rBV/mVi3gilbm/G0baev3yla0k6q1NZc9r84+hW?= =?us-ascii?Q?cKJSFJ6CozlZmpuFTSnfJXLwe4w2Yq8CEUypDNMmuSUcw+Wc598GSv1QZ6++?= =?us-ascii?Q?RRSeVvDWm3vWd4J4/+mCzzOj8APXFQVQtxbJO+rPg80oqFTcSHAC0tUKkafj?= =?us-ascii?Q?cbjArCvJRYCNdCw2AvdpiTivH6qsl6PgHjFOxDLPOxdQcO0/pkVDfIYFeGab?= =?us-ascii?Q?7gnG8E29q2gko2YPvVmsFnvobaVjMZKy0plaZl9Xoka958U4TuAvpsnKh3LC?= =?us-ascii?Q?cb/7RDf2HUc3yM5QXZ0vKo5UOaC9nqmugBZAw7ZlkEKIPwavsi9jZwhZ9ug?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;5:9u90swYIieiB6J+FlvROZCUDjttYMzgsPgLBBC6+hXG5ABYgp8FePFZjwv7u3AwxPyCwDgzDP5QstKOLUVypgWipTZ41MOJMd8OorNa+2LosMuftVGILI6BDKd1v4ictFBvA2Er71W1ji3DZkdReUg==;24:co4xCmjMmZWgL6VazTZvxjLvemjaYuFgCmYm0mnR73K6qvAAe8RG651a6t9dGY+bv/1/PpvwpwlaCBrYW3eqI/TKN5EZOV+fpcepPi4+vQ0=;7:7yGKJkP8a5+GD4VU79x9GQ1qhyAw7JbZ3q4l9nb4mgxRyMLuY0L1ZZ7zhEwRuAWU0EBe52jbmS1o6HM/6xJg7/bB0ZsY1QTHImiR1H+He/pN6L1mB0Df0AJfgiI9L74RogFHwgnZnq3SSSs+6guEvJrv4Q1IZ8L5I4bOcfXFENpyhKdBxnS51zz9P5kVf0ip47B2Z0q48MixXMFrTplqN/HvoVutY7iHWr9Iexd++II=;20:cb9lFR8HBoT4NAwDZ5SMlnaAJAt5UuvRgUSl6wnYHhpGP6VmTtwLGY2+LB04JdEDppbbjVADPXYhG9qkLDagN9KMHZYIB5ZYN9h9UClVKtpvrOrVMzkGILqpDb3LzFrDQtbO8lANyibqUEe5aWqdeHBfKa2ndfzk2318S9eMIhA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2016 13:35:34.7475 (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 02:47:54PM +0200, Paolo Bonzini wrote: > On 09/06/2016 14:43, Roman Kagan wrote: > > On Thu, Jun 09, 2016 at 01:23:23PM +0200, Paolo Bonzini wrote: > >> The version field in struct pvclock_vcpu_time_info basically implements > >> a seqcount. Wrap it with the usual read_begin and read_retry functions, > >> and use these APIs instead of peppering the code with smp_rmb()s. > >> While at it, change it to the more pedantically correct virt_rmb(). > >> > >> With this change, __pvclock_read_cycles can be simplified noticeably. > >> > >> Signed-off-by: Paolo Bonzini > >> --- > >> arch/x86/entry/vdso/vclock_gettime.c | 25 +++++------------------ > >> arch/x86/include/asm/pvclock.h | 39 +++++++++++++++++++++--------------- > >> arch/x86/kernel/pvclock.c | 17 ++++++---------- > >> 3 files changed, 34 insertions(+), 47 deletions(-) > > [...] > >> --- a/arch/x86/include/asm/pvclock.h > >> +++ b/arch/x86/include/asm/pvclock.h > > [...] > >> @@ -69,23 +87,12 @@ static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) > >> } > >> > >> static __always_inline > >> -unsigned __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src, > >> - cycle_t *cycles, u8 *flags) > >> +cycle_t __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src) > >> { > >> - unsigned version; > >> - cycle_t offset; > >> - u64 delta; > >> - > >> - version = src->version; > >> - /* Make the latest version visible */ > >> - smp_rmb(); > > > > This is on top of Minfei's patch, right? It isn't in Linus' tree yet so > > I wonder if it makes sense to merge the two patches into one. > > > > Will you post it to stable, too? > > Not this one, because Minfei's patch is enough to fix the bug, but I do Has it landed in any public tree? I'm unable to find any. There appears to be another version of the patch on the list, so I'm confused. Roman.