From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752817AbcHLVcL (ORCPT ); Fri, 12 Aug 2016 17:32:11 -0400 Received: from mail-bl2nam02on0108.outbound.protection.outlook.com ([104.47.38.108]:51357 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752053AbcHLVcJ (ORCPT ); Fri, 12 Aug 2016 17:32:09 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57AE4051.5060904@hpe.com> Date: Fri, 12 Aug 2016 17:32:01 -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: Andy Lutomirski , Thomas Gleixner , John Stultz , Ingo Molnar , "linux-kernel@vger.kernel.org" , Borislav Petkov , Jiang Liu , Randy Wright , Scott J Norton , Douglas Hatch , Prarit Bhargava , X86 ML , "H. Peter Anvin" Subject: Re: [RESEND PATCH v4] x86/hpet: Reduce HPET counter read contention References: <1470853770-37625-1-git-send-email-Waiman.Long@hpe.com> <57ACD2DE.6080306@intel.com> <57AD0898.7030506@hpe.com> <57AD18D1.1050107@intel.com> <57AE00EE.8070904@hpe.com> <57AE0469.10503@intel.com> <57AE1606.2010304@hpe.com> <57AE3C99.8070000@intel.com> In-Reply-To: <57AE3C99.8070000@intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.96] X-ClientProxiedBy: CY1PR13CA0029.namprd13.prod.outlook.com (10.162.30.167) To TU4PR84MB0319.NAMPRD84.PROD.OUTLOOK.COM (10.162.186.29) X-MS-Office365-Filtering-Correlation-Id: 00ffe9a1-3d68-4116-2dd3-08d3c2f81bf7 X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;2:UzFz277iWl40f+rtNU2CRrp3zGMD5ktEz4VjK08K7Go/4ONzpAcQYILoefeUVhyjjNfb5AQzQmP/FDkGdoApEAUO5w9KBDl3IGOVzK0gK31CSHWkmRHd5CxS76LWjgBKX49zQeZAIcJqPP9jhpt0lopjj+0ramHcNZJ5DZ0moB5hRbrdRGugzm+Bnvu38WeE;3:neQqVCMvG915Ne1rKATXZv+Juk+fU3ssUZtCujA4sjbm7iYTv9YzI+6V3WkwCVuRA0eFmVgyxwcaR8JdffICJvmWWSnhyzB5wdKESnqBuuRO1qqTDU3zstWQnbpvSqVF;25:Ki6nvtjI60zuow77WfbK4YRdHR5D9KsOMXq4R5WB+or5S3fq42oQvNB1eSHeyqjpMK+O31rO0Xy6os3oPFHr0cvSBpESdwsYThNVJFvV9NqYeAyeJ9t1Bw4OlMZPCAtLE6s8E4iwkp5uiEJMPUwMrMCOt+Ol8XoegpYeL3Mw9/kserz29dQhEKEOPoG6QXhYYZmsT6wTojEgowNEXRg+x71jVb+1mStZ3537ouBlDn10LMgL5v8Y+/6whwIrVP5iRUsY6RR6uNrP8YQma7X8oWe3lux6o7Vkv2v8HgY0q1dNQ2mCOBbWdYyUN9BKYwaj/2mqn95yNdu2hwwXbSYvLlGfuoUG2Dy09jZQUC2QB8Ik9ceJJwBcvO0zy8FMAwTMLKcXg0m+6hhTQ9n4scTJQZZ0rUVxp5dQQDJ3IHUZUe4= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0319; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;31:mTu+HVvg9LhjZOanbXOlRfAMwWdsZKnofwJ2jLRFjzQGcje3o3sYC4HovVVRzDKBPh+q+t5cP7fHihBesvNuZH9f4n1UwpliAk8M79bfJn+m9Y8PTtfIRXC7paeZ8Yu85Qf7r1SoTLj2nIH/DdZ66yPqCEZUzMYUYa5mcywVcddXpc9n1lm0Vb2UhQLVWN4lEY6hAWMYp1lUNlsxTz2Etnv8c9pBLe6kBr22TUSMVIA=;20:V0OMOgdUdnIQBezFHlrWkBRRyri/HP1FweHCFM1p9InC5X1KFHJYyfI74V5E/hN23kf1Wgkr1PMqyvpSYXLcHtX8a0SZwr0DKR9iGcVvyXueRENUTxrZyebiNZAi+KCTH/rm8UJxPXWa3GiRjpPoq9CnzY/x9+BKF76GZoadAS5Ip6y0QgywnTxCFFZN+pzxpeDDkZudueGMW/8M0hdtnZhazA0WtW2QAcfUKjRbo5zJ995gGZp0QZCNdVmjyZGornVfPWA2+xa2+WCYDmxbDOLaBkmEj+MjlaAolP0kqpE9RSHVMG/6vjXSZ0/qg3iUVmUWXVCBdfuKj239lO+QZnLlXSOS3SL7RSkLIq3uennZ9zitHEfZw35YI2y81GThDf7ksqgcl40hJBgdGyfMtIADyHSLmQXFQpuFiPNlNTBB+MEnQXIhwLiPWB9DbMBsN3z/nozVgbGCue5t6I93EWJfrHJPwSIpLs9Y12A5dLmXdUatEwYC88bs386sAi9B X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:TU4PR84MB0319;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0319; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;4:7c8teDNCeemiB64SICJ3x9ukhT3qg8g7nn0IlA2yz2Qc/nbIz/3IFKFtfdn22DEQObk2QS+o+NAZZceLyxJFgU0QIx4Z1BpMe1KSqSmpbuZDoPK06b7mxvH1Ozr+JH2Swx0zq5dEh2CqIxgAXhN1ewmThhhM1A5Lmagex2MO3xPDbtefRy/K6PN+OPTZG6YgIQAmiX5xGfooH3RzXm7guJdsiknEaYWoqIdGDeVvS93jWWcrFSnh5+2rfm3JlaSv6/SxABGIfksA9qoPA+/6FokutC7eBw//kxJt8qZaxWnXsH0w8bOGDdLUbA+NXjZggUpUDlYMTBTtwV7Gz5xJVBNWd+vCgz7Qjn7Sdc7jM8nK9cYhc/1lpQ2GZit4LIiuWwna/pbmmeosS477AaeH1g== X-Forefront-PRVS: 003245E729 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(979002)(6009001)(6049001)(7916002)(24454002)(189002)(199003)(377454003)(66066001)(7846002)(77096005)(23676002)(42186005)(2950100001)(65956001)(83506001)(7416002)(33656002)(305945005)(7736002)(80316001)(101416001)(50466002)(110136002)(65816999)(50986999)(65806001)(47776003)(87266999)(54356999)(105586002)(76176999)(97736004)(81156014)(106356001)(68736007)(81166006)(6116002)(3846002)(189998001)(4001350100001)(2906002)(59896002)(93886004)(64126003)(586003)(92566002)(36756003)(86362001)(4326007)(8676002)(230700001)(117156001)(60764002)(217873001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR84MB0319;H:[192.168.142.185];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtUVTRQUjg0TUIwMzE5OzIzOmltWkhlS1pJTWJrS3piU3UzS3lSSXBla21Z?= =?utf-8?B?VFJRcVBoQ3FZNVpnQUl1MlBQN3VTUjRLclBKTktpZVlxRTdpTzYzRE9UZXRx?= =?utf-8?B?cWpEMjNOVm8vOHBvT2VqMHlOcENVZ2szQTVvQTJSQUJ0MEcxLzdEZjdlVitZ?= =?utf-8?B?Ynk2MjgzR3F1REd4VktVbmhib3JoT3lFVFBhclJMOXNPbEdhRzRQbHpRZnZS?= =?utf-8?B?UFA4SWZuWkljbnk2RkdsRHRNMmRnRFJWMjNndnF6YjVLcEsxejh3VWtmWEpa?= =?utf-8?B?OHVRT1RlSlB4UnYwVTUzYW93UEprT2ZTQlQyaFBvWUFmTi9ndklUSVRtWGQ4?= =?utf-8?B?UFh1U2NUdVEvbHlKU0hWdHdLaTVtRHhvL3h2VWxaZ1pZZVFLRXg1UEF0SWhD?= =?utf-8?B?K1VrNGwwR2NETGo3S2UwM1NFczcvZk53cVAxWXAvMmpKQmpEbzNJQjhZRFhp?= =?utf-8?B?WDFTZFFyNnAza0xObFIxeTJzUEhFV3hvT2FZdUFjSHJQZVFFKzI4M2VGcWpY?= =?utf-8?B?a0t3Qm5OOWlEVW1qU013Q05wK0Iyd2k5YjV0SFl0SjJnbFBkWE1ydThUSERt?= =?utf-8?B?NFUvNU00ZnJMQlZUS3RrY2NESlZtNk5jNTErbzNUb2YzOHVMaUJhdUJIbm1I?= =?utf-8?B?c0FQTFlMMUtWVUYvMDIxL1NiL3RRSURZVUVoWUcwZ0pETURHU0ZGK1g0S2lG?= =?utf-8?B?Ly9neS90dXBKc3pGdlQzMVVsRm9KZ1F6aFZ1cjhtWnluOUhPNElqWlJoZlUr?= =?utf-8?B?TDNCQ1lVOFNXRUoxQUV3LzN0bXFnWEM1d21ic01aRFdIdFk4c0RKTlhwWlZa?= =?utf-8?B?UzQ0WjZHeFJ2aFB1VE03dEJ1azBrOWZhWFVRbFgyV2JQM2R3dnNKTDQzdWRn?= =?utf-8?B?ckZiblByc2xqNWdER3EvTHM0dVh6Tzl3bmJ5KzM5cGxSQ2wzcFlOVVloM0Zk?= =?utf-8?B?dExvWHEwSWprVC9KdTQwNnBCV1VFcTRSbVA2NUhBOGFOckRpNWl5SlJnQmY0?= =?utf-8?B?TjRmTHN6ckIrN05PejlINlQxYkFkTmFRcFV4cmM2UVMxZDlJVWg1SFhiYWdL?= =?utf-8?B?OHl1MHFVN0xaeUg5MVlqYjFPc0IwdTVNMmZ6dE82MGdpaDZGQTBOQmJibjFv?= =?utf-8?B?M3QyM3NhelZ6QXFQK3V2ZFoyNHNFRlBuSm1pc2FhWG1rTVM2SDFGdEo4aDYx?= =?utf-8?B?d091bi9wL2JnNFZPdCtNTFBqdHphazByTHhkQXJ5UDhRbS9FeFBydWdRVjlr?= =?utf-8?B?dmswaWdMUi81TVkrMnlESlNaYkVpcmU2VUdSRm1YeVR0czdNNjlLeG81cjZk?= =?utf-8?B?MTVRSlZnRVdqRlAzMlNxdDFXakdWVklYNkR6aTBXeDRVOXZ0T2J0SFBFWkVu?= =?utf-8?B?SmdqekZjdXVYZVFmQzlDZ0ovSUdqVUw2cWJvdlNwNkttampuR2FmYWZZSjcx?= =?utf-8?B?Mzh6QThKbWM3SFd1aVVYZ0pNV1pKWHk5UWZpM2NBQVZLU01WakZwNUZUYVBj?= =?utf-8?B?aDRrRXRHSE1rWGJiUEpJT3kzQ1R0VkRDa01YM2NHNmFkMkRmQVFBZ2oxN0JQ?= =?utf-8?B?Mml2U0FLTFV0Umk5eDd6c3UwYXYzUWp2NG05WC9QV1JqeXJ6S2Q0QUJHSVRV?= =?utf-8?B?a2xSbldCOWI5NHVDN2xrcWFCbDZockpMVFh5Yy9HVlVDNkc2S0prTDY5dTdv?= =?utf-8?B?MlNTcFFmajlCeGxzOFdJbVk1dHlwTWdrVHZCOWx6b2VBWSt3a0VGZ2dMS1c3?= =?utf-8?B?MTJqclg0UUdXYkJCenAzM1h0aEVxL0FMQjFnNXdGb3NoMUZ1WXRRR2xDcmRO?= =?utf-8?B?dG9tdFpXL0VIbUJGOENyYXhOVzI0MWd2RFRpbVBYbFdPT0FuTWxoOHhzYnJ3?= =?utf-8?B?Rmt2RmVSSHBOeWk4QTUwS2xXTnVPUHg3bjVXaXRZOE8rZTY4RGFWSjc1eDcw?= =?utf-8?Q?501uKVMSZu3+MqVi/nAWz2nTCVOSIc=3D?= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;6:jF/cB9m0rNm9WN4QyhzwUL72yjujzTm64kLRgdxiYqmmTJWTVk3mdlUrlPNVKTKPDAjNz63CUKxrlvNhdeRECcw/0cAmAuqSSWjWNo9VtVq02dLe78Ji1LgN5ByHwUJt/XTQwHU+SqmJ3qOBMBl2t0CAIKlFLu4VC9akn8yY2L3+4THZYolslyyW2MLYIVMy2bWEi9VDWUNL5BAV2p3jx6lnY5srz9Xc6kowMJBMUQ1zjNY+KmZFr6Xj0KUqf77ld409l6txivhv+tza58B6iUHHpn+QtDYgy1Gk6GjMxeIxHqnXz2e0TfCOOvR/xOyjTm25WuPIwLKUKIssHN8wuQ==;5:6ksqoenjAtwvgOi0+ZE/oP4cU74afCjtpGBGopRZxyuMAQGgR6SB2gxqqnXJBf36UVqvYGPUi4QmY3NDeLidWRDCn2gU5ZOE/ziNyMwkHSHrluLkpcAENpwkPlYdigGtdxk+BNPncM8Fwc1TnXtn/Q==;24:3JheRXyHKUoMXWjjV6S8X5FF0SLNoc1isJ7ewXr0r1fGsSHlLsLC3gIhNWBMebYJ1Js0ioMEDc+MzLFE7ZlZYuKvrjhSHVTR0A5phD91FTw=;7:ytFcAiISHGmikSjoSiRx9hWwjD7Bwf2nC1vCUi0I6OTYB3+XcRimqgRIf1r5OiVzL/q9WjSULs+122HfiyzbNLVBSQNLIWembfwco2TXE1PaWDiijUGpRq9YR0RDtTjotba4Lp/lp36hMxhcX5TWq29tUGKE7ZvV3aH6n53dFPhebKMHuKbn/aqBaSlfa9OH7qXzzYkt2nBi5PHfX6Om2oeKFWs6R1pjorb2PEf1MXiKA0wFdlAOYAo6T3Bw76yf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2016 21:32:05.0649 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR84MB0319 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/12/2016 05:16 PM, Dave Hansen wrote: > On 08/12/2016 01:18 PM, Andy Lutomirski wrote: >> I don't think this is right. If the HPET ever returns the same value >> twice in a row (unlikely because it's generally too slow to read, but >> it's plausible that someone will make a fast HPET some day), then this >> could deadlock. > True... > > I guess that means we've got to do some kind of sequence counter > preferably in the same cacheline as the HPET value itself, or _something > that we guarantee to change on each write to the cached value. I have done something similar in the v5 patch that I just sent out. >> Also, does this code need to be NMI-safe? This implementation is >> deadlocky if it's called from an NMI. > Urg. Can't we just do > > if (in_nmi()) > return read_real_hpet(); > > ? Yes, I am doing that in my v5 patch. >> The original code was wait-free, right? That was a nice property, too. > You mean no spins? I don't think this one really spins ever either. > In the contended case, the reader needs to wait until the new HPET value is available. I consider this a kind of waiting. Cheers, Longman