From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751914AbcFIMna (ORCPT ); Thu, 9 Jun 2016 08:43:30 -0400 Received: from mail-db3on0120.outbound.protection.outlook.com ([157.55.234.120]:12096 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751496AbcFIMn0 (ORCPT ); Thu, 9 Jun 2016 08:43:26 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Date: Thu, 9 Jun 2016 15:43:17 +0300 From: Roman Kagan To: Paolo Bonzini CC: , , , Subject: Re: [PATCH] pvclock: introduce seqcount-like API Message-ID: <20160609124317.GC2570@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> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1465471403-49372-1-git-send-email-pbonzini@redhat.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM5PR0501CA0028.eurprd05.prod.outlook.com (10.164.187.38) To AM5PR0801MB1250.eurprd08.prod.outlook.com (10.167.216.137) X-MS-Office365-Filtering-Correlation-Id: 72c06b03-5c74-4c1c-6c97-08d39063a437 X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;2:VLqWrqKD6MWq/zelV2gr1ZAezGZwRX1DhEVDVaycy+WwOHes7cn7MMu2la5YznU4uOry90LKkxIVY8cQkn/w1IGv6VerLBqcR3ERFoxW8y90jx5zlLTlQvhB34+3rEoSR4/kY4iduEJHBKjtmYo8W/ARBSjDLBX/5q0HIrKpjlmKiNSkXhw98XCAN5EAcd2w;3:u0VWsVJA9eLS4WNUsvZL/2bCC380EcvkEhIdDQTKBi66U/dscqEUSgpuX6wscN2M7AYXsIM0wVh9d3rGqorgiXPh8/gDLIhJVYp97cIb9pEKEBZm0f8KKR0xqiNdRmKy X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1250; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;25:ppSOZlYPbMwGx1IjMRejimdFWhMEx0dNIlwtHb9h+0RQcb+M2/cIsWFTVLWOEstvx8tBU2jf3G1HNm/PqCCLlErVv1D32wd4bmFsFaDESCjbg5dpfd68rT2WQs7qSboxN24AINVS4A8BgietYtl8Qa3y93JI5pq8J5mELrtAcARdR08gd+eTBu4ym/zBW5jbR8UAGKT8Lo9jK8KJZZZCzCXjBO6puuRLa13E7WgvKFdOpEz3WEjIlsTKCLhsAKxxciGZTguSEtAzKcu+EnnBoMGBytUaY7GgwhpIq/5kiY+kA1kmh/EQXo7vvEEbyXXzATBhmCUA4uHdo4IQVnEDXQxPdGS34nYm6CAAMlWPkd7dhMJGdU1XXPNzN9Eb64W0JGTPbd5pYqNRqyd/k0J8eBykWHCd35yi8mjjLMKPpihnLBwm3CgKvWU/L2fiK0b6v34Jp3Fyj8FENMd0gAM15wWiLuVhbjbhXy+9IsODKWcs2/9Ai/hVlLygrZwe8M4WoJeUmgExfErogpQf+QUZ2+reFiMsKCskKuzelzIqpBWJMxkj2XjRChldMsHUIlhmi/SIfZodktQmzj14PXeVHVLz3fQItRlab2hmdp/N0eesgmcWgZh0LxcJMIkjoZjLSkswpAR4fTHN/rp2h34KdEGlP1OEP/rnvhAcXaayJTb7js0cczN6jf+SYZTmM3zM 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:sfZiGjd2PkZ1kIuUx3ADFD9pggzR4lI1kHqOfS0ObbzC9oYrWStV3nwe3SpYueozDlMxP+AgjB8/a4bJVLIzpbaJf5+CirpkA1zkM/46zv6kY1qBOMUydmcWMSfvdwhO79fRBbci0iqMDJcEPFyYGENpCBso5AWmqlV/c1FZSYVwGExY36ZrL7bvcMASH+RrIkH7SAvDfWWB4li/mlSc5DxmmQVQHuPc5P5vAtw+TuVs/Sc/dACYkQcawJNsoFxwJH9dQyyQhnv70nmvgufjX1/eIweMlAMEwyrx/fEtZpqWT3KEe80rzTBT9irBR98eG0by6Z+54pVhEXTqALTqCwGHnEAmtVfBMHXMmY/qWJVl/Z7CIOajF0bQQyQo9iY9y3MCyKyDZ1GA21ynMTCt3cTlaSPLygIFJfNNvNuXAEc= X-Forefront-PRVS: 0968D37274 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(199003)(189002)(54094003)(586003)(97736004)(5008740100001)(69596002)(19580405001)(19580395003)(4326007)(106356001)(83506001)(92566002)(46406003)(33656002)(77096005)(101416001)(189998001)(47776003)(4001350100001)(110136002)(54356999)(50986999)(76176999)(9686002)(23726003)(97756001)(66066001)(50466002)(1076002)(42186005)(36756003)(68736007)(2950100001)(8676002)(6116002)(81156014)(5004730100002)(53416004)(81166006)(105586002)(3846002)(2906002)(86362001)(30126002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1250;H:rkaganb.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0801MB1250;23:7R2bvCqSlxsu3EhX/dsRrLPll8l7a4/W8tMH5Pl?= =?us-ascii?Q?dUm6AM3VWPUoNlwleIiL4b0bD64igrhZYfQeywiqLG+wHhj/JOtIzj5eD8H2?= =?us-ascii?Q?9Pa25Q/2nWUTKgDPyyL9CNvaMTcVOwCU69U+COMoZYQI1P86yk3VuWXVp1le?= =?us-ascii?Q?C3GCO+dDlxfpNdtBUbNjdyBXkyo4PQHUAkKdNVZbYwYvieGYjKsQv1FNhwdO?= =?us-ascii?Q?XHPp36a2olss/ezftXFFv0iUC0Ns6uQZl5F1m/xn9ZHcRj7nC4JT5eIpWMON?= =?us-ascii?Q?ni1gd8hFdnVM3Wp/cDSXmZmzeR6/uaynSQ8jIbtrbFj3H4Fk2KgMI5uj4dL6?= =?us-ascii?Q?AGEZrgUqTfTqWlnMsib4yQDTWwxm1f8VmbjQ9Apf3lRJUOPz+a3hdjCtGfrs?= =?us-ascii?Q?mdpYL78p9EX2hLTubiT5Dorr/RUyIawjfAt+ujl32+fDdmOWwZP+EL7tha4g?= =?us-ascii?Q?fH4ICpMdMhMhx7FNklbmCRKGPb41i/DnK0dlOyqiI+8li/lag1s8TwFiulDK?= =?us-ascii?Q?ZObyf+qybaK1vsQKUypZTeGAV7oTpq5DqQkynQU9UPutcxMCWx6eefB7/y9l?= =?us-ascii?Q?mh7lkhtLj2IybUFcRVdgs7jvM8s8761pkxdAtnHBYDF8wtwqK2qKPLE+iOGH?= =?us-ascii?Q?1cGjw6Q2emSeP9KX3OQNdzyyPqv6kk5Bhcpmlf117TCAx6xVT0cbryJ/me3K?= =?us-ascii?Q?FXVtFSJN0T8L5/pt35WEahi7tHFwHOHBEZleuPj03L58AIWHD8E3EMHhQIsE?= =?us-ascii?Q?u8E+bni0lQMwlWFwt4uS2nNeg4eQQNYX4HjnO95Bj90/7BIeDTZg3mxUZaJ8?= =?us-ascii?Q?RKksRgRMYuF8ABUExje8CxNA5pZD0Rb6+msBWGXJ3D2F1LuSwHVHqq2NVViv?= =?us-ascii?Q?3xlsELs+68u8fW+Gx7HztKd/84YNJ98wo3u4Yj8gdk6IlUAn8NW9rK6VR2/I?= =?us-ascii?Q?nFJC/XvJEJaRlL8xIBgjBjIfUN6KCvc0eESjy7noAwcqtGoV/tMEH7L0xSG9?= =?us-ascii?Q?lVFLWeWs/7V9fxdUnCp3Ksvo04FWIMNbfoMVB8Q6nkgizoYhUawbvfNkbnhK?= =?us-ascii?Q?GExGVgPdDlsgpXzmXSBRxHe/OQ2cOuMjmHabXI5u69uXOoyTjFksb4kgR7hw?= =?us-ascii?Q?/stGGozggpDApHd7m4s+c0o8LtThT2e4ojPwFydRbZTHW1kWRVo5byNHeNAl?= =?us-ascii?Q?/ueyq1LQsMvQPxAQnuwbPO0pE68xNBnd+/sh1U2RODtLH7agBpBeyJcAIMw?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1250;5:h99ohtUWWmN0HxRPzcobFfauvUm2f4Lhm96FhcKBY0hu9tgqiWSxexOzNf60xlKCU458fORqx+qJdrPr2d1YEk0UrSj9NXu6Zy5VTpUyhPwZ8WXP/URek+lCmSpincFJMfLwbXZYjwbY/4mFa2WQuA==;24:Yxjf1UmvUIW+kRP1KqeqOmAMNC9hkAcOXTmMLtVSg0jBnEuylbqpweiZRlcz0yNxNcDJXK66sc46C6O+ylxnxDx4dQJh8U3D/a/ZuFzOodM=;7:6TVGgYkYr8q5tm9Pp2xq2LtYhRgNmoPu7LHvCMK3C18Rq4WekIkXIwkbyz/x15h2MJFdVjorNPNMmo3j340hzWhrN/iOKR5vSzhGJv/SqVwmtQi4Up+8/qCTvL4xtY6030U/naU77VWbvVrns5/h6KiL+/Hcbkpat1Pygajm87zQUp0s9tbtYMj0w55d4zxBfa6boWPmpdr47eLAr2x0PCJpGPnoZbZv5wSmDKMxKcc=;20:gvsTR86+N/ZfHXS5xjCiIDp2RTIQ9eHU6gwt0RuFOTeUnLTKp1jwJ+3DyXWc2CjQtyV5MhM4qLVNVYOH757RyVtLF4ETj2KrG6aiQtErb22+c24/IqdRUfQrn6j2XL9mFJoKochUz5KmGhEn9ZPePQGdliZcAnicLszTBDZpOMQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2016 12:43:21.5629 (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 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? Anyway Reviewed-by: Roman Kagan Roman.