From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752248AbcHLW7I (ORCPT ); Fri, 12 Aug 2016 18:59:08 -0400 Received: from mail-sn1nam01on0109.outbound.protection.outlook.com ([104.47.32.109]:65194 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751732AbcHLW7H (ORCPT ); Fri, 12 Aug 2016 18:59:07 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57AE54AC.1010800@hpe.com> Date: Fri, 12 Aug 2016 18:58:52 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Dave Hansen CC: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , , , Borislav Petkov , Andy Lutomirski , Prarit Bhargava , Scott J Norton , Douglas Hatch , Randy Wright Subject: Re: [PATCH v5] x86/hpet: Reduce HPET counter read contention References: <1471037130-60583-1-git-send-email-Waiman.Long@hpe.com> <57AE432A.9010201@intel.com> In-Reply-To: <57AE432A.9010201@intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.96] X-ClientProxiedBy: CY1PR14CA0029.namprd14.prod.outlook.com (10.163.13.167) To AT5PR84MB0307.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.29) X-MS-Office365-Filtering-Correlation-Id: c1630877-a057-489e-95ec-08d3c30441c6 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;2:5AAes7aqirNgV3+/h9E5DPxen+/9exAlCXTDGtae8ykG2K47+DMGtpFHKYr2ysL/5uAXGzwYWHnhaicEP3UGEZD0bc8ji2hEA01uVKxBtxN07JZ6WX43LtTel9ZcFpFcytM9PpTQVcfOrzVv0153qqlU3XFhNSpyiSE6rwAL2ayEX9k3MVpyFqsYy+ZaCPB1;3:1PHVUbpmYd8DfxyuPmvuzq1PuFuLE8T4CuoglpnizzufPxLXVZDkc1/jjKzIfmiuPZhX8Iq1mXSmhKdtpFWa5HosaHEIqCUzDk3Jg6H/nOBKGeCeu6P9tqT1SXPg/Kkh X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;25:zZgVnPzfRiu34vdX8BvbZztVXeVwXblSt0s0u45w0P2bOLs5MU1vAIWZnfuaieD0UUFhB0kbAyK87vaa8XFx/wZBbrckp5FgQGr/icBqWknJPYq7UcRLaPF2WT74nDbk7RAnpBLOpwQiSm1VQQ8lofpb4C6xjhU5oDIZG3onC6k2lne1njlP6cSKgZYZ9J1rqYoCmLXEPoLE96OsbHmke+8cZPduBtqZRyLeUzvfvxvxR/KpR8pfV3Jn7REKG8kTn28IHS7zMBmRLhXeYu3n9jd4xJojR1mPB5MLnehch/VD/d2yzXhSdacX/NbtcBuBhHKsHLiiaNBy2nYMHF7ShfkTSQt76w+rDL2vCff0byITKpgbP++0/qbC90mfZMmC7nQR9OMQc1IwSQwyeo9kdcj/Li9EhWCnGq9hGulQ8UTsUD5z0DJH6Rv07QFyV+Y+ijbLLmeGFKcwpnK5Mgq9x4Mydk9ocTiWikCzLzWkSzFGOMLL2DekGNoLJZLC17KW5LSrV/H2O0yAVmnkPe8fAZiyvoDnhMRgxOu1k7OzXqAfSWumWExo6Zn66oo+bhqgPd18QQE0CI2ppBhBCopHTobethAIz+KKIphEv0hYPP36+TpjKZzGRs7XuO7KkXmxoAuNf/bFEitixPMS2HdtDU5A06sgsvzdeTDe3tJFtII6052N2p/JRvfr0aadbgJzHQO4D9wVvWs9gaJ6J+j5a6Vm7Vr8aV0hExIYP3lzJd4= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;31:aSAnTOuLyqi1qFp4De4a90x1W1me7pvOkeI+ieWUu3jJAsJ9NlFMC1Mk/9iob0LDt/xzWb9CYJ/fiA8WkoLhAeHZej0/Soh0E6rsmlWjzyjhJHZ9aWAEvYOZ613U0kAxFaL4y0D8yxmfaWAZKYkELb87dnqo4owOg/R3CjbowIwkRLKNbvMfmf0+/sCKhXkZCrfwTPnr2KCnBueSz09hKz1M8oLrZ7EKg5JTL9mj1ls=;20:m0wWOi1uaJqUxDoQZRyHyv1JTYt53Wg+J05wL2THikyrgP6faxVbdyJXbKS20ZBJvVkv4y9iqUh274iqlfjMlzqWUObosoxIlAcKjCMi3sSA2DCOLvVEbihxiJV0f7t4aR5WLD5hhqXxybcu47Ec3P0XKbFoMVRBx6VNX8kNO78+ChsQVgFgmnLGF2qCXG+3GknC9DRX6NrP+n7LnDKuGIcbR5wtISvJg5WXKL/DWCYWFm7JC3N8qLGbQXBfCl1bwOALwAm4/CXUsJtZzJ1pfMD7H/45LHb93TZfKTgXhjpxoVF4U8Bh7E/+lGAJDKvh6olu0M5AvHj7KoLHv6cWqensV4NGljmnq4o7fnpx/tw1I0xgAuLArOcfGgq3iyoXUaw+O5rCm8QdzsG8FlcladR6bFBlCZ+ORajbf8ZtslOPIrrTF761kyJ01ALQtrQ5COJqafXo14kB/VZUKrpUokSoJ88aPwOsVpECeIuK9eROyjrFNlEobE3Oqf5HU8xo X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:AT5PR84MB0307;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;4:rgoEidPP2iVGU5gBLFXVBeZqGf1T2wKkP5uG5DmsSXP9/8+WXZBAmB6VsYf6+lC92vly7hG82wA8bA1tcCOE8XR0PYEa+3a+8hiifLq9KQbslSqH/dCohf5c7mtxDyIwR5W6m+oVHXqK+gEhZQOhPSj6lgQOx93KjGue6c078eGBFVadFn3L/eRTx245i2LaEMi6+TfhjPPX2R+uhg9lVYNATnL3Km1+9spMPN4d8s34qO92+T05g8gSMUN5mWc4NNQKIDC1OI/xF0GfidfWFn94xPopdStgTErjtXHnK7Hbh759tYT8YETi0YKpMeP9uQeg2efF0XYN/l7Q8e7lD6z3pXlde2+aW+L35KeXrlU2d2fl0T8AAy+eMpzLDWo6ssJ05LERYu34OvxP1thgig== X-Forefront-PRVS: 003245E729 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(24454002)(377454003)(189002)(199003)(83506001)(64126003)(50466002)(36756003)(19580395003)(76176999)(54356999)(50986999)(80316001)(68736007)(86362001)(65806001)(65956001)(47776003)(65816999)(66066001)(101416001)(305945005)(4326007)(2906002)(230700001)(7846002)(586003)(87266999)(7736002)(23746002)(3846002)(81166006)(189998001)(110136002)(105586002)(4001350100001)(92566002)(97736004)(42186005)(6116002)(59896002)(8676002)(81156014)(2950100001)(117156001)(106356001)(33656002)(77096005);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0307;H:[192.168.142.185];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AT5PR84MB0307;23:XiWJ4w4QFDTJfHWndT1MzwkOicvrtsuA7wj3P?= =?Windows-1252?Q?OV1XGlvHYf9S4rKiatpHMbm0PsVxAEuXX0GRBWJ4NNc2D3YAv7eW1DEj?= =?Windows-1252?Q?5dGb+Zn0wQN2rbvc6j8HP1V6UZ81ngBlrKaw+JCiU6t19KD7uxuHBCko?= =?Windows-1252?Q?hlzbggvh86qMHP6p3qZOZqJ3eFuOOCmJgpONBeEigPlCx4i66agCSBfe?= =?Windows-1252?Q?iWMcZh8MIoi7ZqF0Z1bJb/Q5kcOEL/2lQFLzGUoaL2V53Wl+/fF9576i?= =?Windows-1252?Q?1ydFch1x3OASuja5Bg8djEU3cju+s90iQLfhZi2z36G8HUCTltC+NoXW?= =?Windows-1252?Q?aNS7EAnKKXGb0mcSO2C1or8o8P7nUqHMHDE75SBubUmdmXxJai40Gsqw?= =?Windows-1252?Q?m3rP3h+37Fxf55z7wylMZaDUyMSmUdJENTQ2cDWCIWrjcFf74pZJ8VAb?= =?Windows-1252?Q?hflOHf8j7nV0k7Pi1x3Nmda4sc82nTaIyCU66rg+T6WtaTNEJOMbosZQ?= =?Windows-1252?Q?hTP5Q5Mhjrs9QC3bfio6b1IXLDk/IAsLDkMfi7XXw87leyvFIk0GxU6z?= =?Windows-1252?Q?cG+JswMEzlvr+LveGoMG1gEUoyHn3SmiyBR8uRqUXgoBuBYYgq+O83Kn?= =?Windows-1252?Q?Ts4ch1TI7/D+ojplp3fvoNM4u9VXY3cd0SkFE+NNCN99Ya3UdM2AjeVY?= =?Windows-1252?Q?DDpltz2fnHeIzxlXUX4xCTqZwYek8DCQDDnxnzMWSFBnjdJ1eJYwSGvw?= =?Windows-1252?Q?wHz+FW/iBNvd2jlro8wsqw1d8GTbnk5aL7LYbqZMuSLz4kYaG20npA8I?= =?Windows-1252?Q?hm/5jzZviS4+/nAOQ85sPBtVNZWiOyrvlu09aMmVwh991brik6cIUlrs?= =?Windows-1252?Q?jfD6Tx8THBknKfh5k51BQam/DLAiKOXAagKNT9udpmacUgG0y1QpRMCj?= =?Windows-1252?Q?wJp/gmGTyUXn+e1YjCdIMxhCqAF1vM4Rd/HEg5k5skaSyLV9zVNCQVI6?= =?Windows-1252?Q?RIw0daWdOjIM6KZ1J+lNUEKmI0ff1rMQEQ2GZ0lqFKi9P3R/x7i/NaMv?= =?Windows-1252?Q?qICEeny/59+Or9UUFc5psIlx3IRbgd9rb8qC448ipVGvqmNYcaxEaf8c?= =?Windows-1252?Q?4JZPVmFv058RgllS6luMLz4tF40Hzv33joZPk6NgigWLbhWPNcMrpQMl?= =?Windows-1252?Q?8BnSv2RCyjQ1MbKWvOVYdAY+rfOYZcEUTPqQZgEUMlV5XWDOWZV80ywv?= =?Windows-1252?Q?rfAOxPe5uYGJr2qw0+6J8hU6aHNP+Ym6NUa8Gjr0QQkZlISb4HDS4FWt?= =?Windows-1252?Q?5NhNpJcn/LqMNm0BJ0beKR5b1+RPpQXo0WQI/4B6UI0ymnSnDVnm3e6d?= =?Windows-1252?Q?Vt7C9B3vtuBs+WNc8aQTMeUdndKrdITXA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;6:IYliBnWniDHYe1xJAV8kiwt8EmCtceTrsTM6mlzV7wI5mkLVZdoC8SYFavTsi7GRuvmmO8bzUpkqTmPsGbPVggQYCXogHCFWa0uhkctXafLeXYF711fNoeQfrQWUgQXvg+Dq+UKIUeF/d/y1sFYnEjP9r33i4D4p1cbzipT7k0jQYQf5TMRQJ9tv9skbh/9j2exJnJYg2lBykXn/OBpweJo+n3Czy6o2jwkk1FWGEBpORvs5M6C2GUWp/Q80TuGCLYC5FZx9xjB6J8xhFquco84jQg0/ztcNWo/T5a+vTyqeA7i9qMHppCDpcqeYtwyLQc7Vi3sRUYqsbc8wuR5mxg==;5:Vx/ZbLqu+k8MvZaevOySFCtjhQkB/5ZCYGMt0sNSV2Z7Krfe5qvq2jhwr+y3F/uqKwwNJCeysyt4ucludJVdQer/SDaj/a5ULkS58steknkq9yAbZ+LZ1PANGQMqgoOSfIil9a7IvU4UBOoE4GaaBg==;24:jDHV0/B6BV/9oEDWmAJbSNQ9z/5QVLGaw9eELAGLzUGtQqnoUx02QrzSEpQtxrw7CzIzQ+pq3Sc6nmyCyhmRwIV5v3trcwORMJV7S4aypjY=;7:DGdR4LksPXQesm/c/KUtSBi1g9gOddDQapbbGbHsYgRd3daz2rYG5aqCOOJBIawOnp2UHDeDOLi4LNIbRToL1EccAYL0UACjwVee98+3rdNNflgMxC701TStWbGCZbDkDS4W9UWWxp5fIr34Zjyqtf5fq7tcOy+JmTUT9eYHcQuUaOvoltVcDRkFeQEpIJt8kwzEzPTgkKgvzpCyTGnuDX9jXenu7bWiMywocrPKjfF9HF7M2Lp2gXWYUxAxOSqG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2016 22:58:59.0255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0307 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/12/2016 05:44 PM, Dave Hansen wrote: > On 08/12/2016 02:25 PM, Waiman Long wrote: >> + do { >> + cpu_relax(); >> + new.lockval = READ_ONCE(hpet.lockval); >> + } while ((new.value == old.value)&& raw_spin_is_locked(&new.lock)); > While it gets more far-fetched, this isn't guaranteed to make progress > until the saved HPET value actually changes. You could have a constant > stream of other CPUs going and doing hpet_readl() (and getting the same > value back from a sloooow HPET). So each time through this loop, this > processor sees (new.value == old.value), and sees the lock held. That is the point. All CPUs that try to read the HPET simultaneously will get the same value back instead of waiting in line to get a slightly different value. They do need to wait until the lock holder read the new HPET value. If you have n CPUs trying to read HPET and the read latency is T, the latency for all the CPUs to read it is just T instead of a worst case latency of nT or an average of (n+1)T/2. What we don't want to see is to return some stale value that make it looks like we go backward in time. Cheers, Longman