From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965436AbeAMCWc (ORCPT + 1 other); Fri, 12 Jan 2018 21:22:32 -0500 Received: from mail-sn1nam02on0086.outbound.protection.outlook.com ([104.47.36.86]:58752 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965201AbeAMCWa (ORCPT ); Fri, 12 Jan 2018 21:22:30 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [PATCH v1] x86/retpoline: Use lfence in the retpoline/RSB filling RSB macros To: Dan Williams Cc: X86 ML , Linux Kernel Mailing List , Rik van Riel , Andi Kleen , Josh Poimboeuf , Peter Zijlstra , Linus Torvalds , Jiri Kosina , Dave Hansen , Borislav Petkov , Andy Lutomirski , Kees Cook , Thomas Gleixner , Tim Chen , Greg Kroah-Hartman , David Woodhouse , Paul Turner References: <20180113010728.27928.8537.stgit@tlendack-t1.amdoffice.net> From: Tom Lendacky Message-ID: Date: Fri, 12 Jan 2018 20:22:19 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR10CA0048.namprd10.prod.outlook.com (10.175.102.162) To CY4PR12MB1144.namprd12.prod.outlook.com (10.168.164.136) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: fef8edae-38e3-4729-db38-08d55a2c7d0d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020090)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:CY4PR12MB1144; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;3:5RERhla2YBLbQblZgQatP96hBJ1mIv/6/qi/ykeN+j3v+DNUyF2gphBR+CKi08QvoZjs3FMDf3np8G/r1YR2P0V/Q6ChKZcZG5Qbl6Yy5jjxj+/vyFM3eSTbJBHXCnImGYZp3j5Kh7YTl06zlg57zhzhYoh9xNuj1m5ZYzoi3xfH9I7/3QHL14+Iy2UXqadk6tasCQCPb4WhDHAcAknBCXgcZZiVUkJ4h0HclHTYR58dWxBYlxwTFzNn5zqNWKxq;25:wINs6bs2iZRCUn41K3dnf53id+dgRKvn+eCJ3Kg2wjTeh8WpF3rBXwTLp5iCi3Og3JrMHeBX8s9noTggDxGObV1PnFXu0YsI1YNtLt6Kl7h+Hn22K97Rboopirw+Z2Es6J9QnuJ+TQOEn2RLrXbiIU2z1fwHfaBgMwaYwfVewp4p42Tsq7wO6rFeEHcYRopeWrKIHBx3uP/omet9TVnoMg8zs2Q2FNU17QDZIIhA1cCHxLHIXJCrSleSB2Wkg9RzxASek36icFS3Yra3q1LyApOIOyiElD1R3NImRKRLzKMsefoRouM7Qy5Lhoq1n6Ir+/PKwdIuhBuI5T/0kyV2oQ==;31:WCVaTgz286rPB8QICJuc9NmjVntjdwMR7LdvKEebD6wZV7QWQL534CAh/gl8bvPksloc4CNIH4xs42DVcYxcQSYDnNvxT9leKfKddaN16xnONmcFMwlmsJjmvUUcyLbvV9ThIxy29ao5yE1pdB6KRxIouRX6EQ9fHIG7mJH65r/xr5vF2zvffrqQaQ2g578sWZSJ8KVbQG7J0+ueLEN+0xSIYchI/GykadjtDefoj88= X-MS-TrafficTypeDiagnostic: CY4PR12MB1144: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;20:CS8Vj5i3jDL2DVc8rVQ8wwYLYhzi6694o3dJ/eJ/P9dQW9hcJuj5R0qZWDwlwu4WEav1phOAzWv1DVjtWmoPBZBfYc6oHRD8CFKlIzWiNLcU7/jeKm/z4sxk5c4PSErX1Q2St75LDuwi8ys28475FxDUYnuV5Ox+0CRexRTVct5OA9rPGFp/xz3BJNI/9FlqrhcGDthxVDK3NQ5kUWonZBiD81p32Lk5SbBUISmGfz02tLhVfZLbf0waZyHCHMzi5cfzlpXhw0/LRA+6EwZtsxnbHwf1EJLxwwjiC4LhN+5B8yH1XAxcU7gUdrPEBE6hkFRXV2b7WSykU056bhgZa/CahKSy7WeX8WeRd+c1YRakxInH8LwRmUX12dRcHJoXR/9SCfcvZndxPFbmkqwUXAjSwL/j3whrwX+aQH7qzcxWsnIrdxhXQ0xVmiRoW5Yc15ctVsDgUzmJRktpxuIb2yfZAIcyqmgW72Qg4xEg+c4UVqdxo6JkMtqWrnh33FU4;4:n/g/nQO+pnHxNQ/ATRxHjT9n1jEoSS+ZRfqVcqWcsmqw/l+gKYhF1iHbKeqUeEwUAEqUBNHqXDUQaijFDXsOVMXXECyWFrtVidN8vySpy/oktKytDByPJ345+/WI8DRd9oQ1k9St7jzIu1tp5Z8etwaVbtkG1iBTisER/1BoMi6bEFE3aF59wka876HLPyx2p9zzWz2E5B0dr2v79d2225PkSW3AMxSkI8eUGXE94Cc/IFSKXJ9P/l6ukDJ91IO9awZCp6iYr/WPX7e7t9IIb1llqjdXKxDdXArgzsGv7DePa/8y5l7yWFaETc1wzUw4 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(10201501046)(3231023)(944501075)(93006095)(93001095)(3002001)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(6072148)(201708071742011);SRVR:CY4PR12MB1144;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:CY4PR12MB1144; X-Forefront-PRVS: 05514B7026 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(396003)(39860400002)(346002)(376002)(39380400002)(366004)(199004)(189003)(24454002)(2950100002)(3846002)(105586002)(7416002)(86362001)(25786009)(72206003)(65956001)(5660300001)(230700001)(3260700006)(316002)(8676002)(6666003)(6116002)(31696002)(7736002)(65826007)(16576012)(16526018)(50466002)(6246003)(4326008)(76176011)(386003)(66066001)(58126008)(6916009)(6486002)(81156014)(53546011)(229853002)(59450400001)(47776003)(23676004)(106356001)(68736007)(53936002)(90366009)(478600001)(81166006)(31686004)(2906002)(2486003)(65806001)(64126003)(52146003)(97736004)(52116002)(305945005)(36756003)(8936002)(54906003)(77096006)(83506002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1144;H:[10.236.65.116];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQ0OzIzOmxHLzFiNnZuQ0dSTkQzai8zeW9ncVN3ck11?= =?utf-8?B?UnZQUDdQZkpPWHNSeGNvblVPKzZIYmpNVmpCajhERkVXalBjOEdFemRpbExJ?= =?utf-8?B?SnJlL1VYVDdLSXV3VEl4a1I5eUlLQktDSGgzRnBEQXJjcnVFK3NGV3VYenpj?= =?utf-8?B?eDN0VkkyNXlpUWJLT0Y1T09JZlNmTlh1R3JMSlByWWlGWkxad09mTkRETVQz?= =?utf-8?B?YTRmYzN2MzZPdUpjcGhTcE0xSkxITkFTSHlJQndPN053bmRjTkF2NHlQR0U3?= =?utf-8?B?SEhlZU9CS005Uk0vZ2xvbUhXdVB4Qm9sYnVtVm9ZdmtkRVdVc0IxKzE4MnJN?= =?utf-8?B?bk5qTHhJTFAyOUg5Y1h0eHE5WHFDTFVFR2RHaktJaG1qS2x2aUxQY0NSTFR3?= =?utf-8?B?aXNDK0h3TFUvRWlQbTExdEJycXZ6V25nVjlKNnRJMDZDNVI2RUhuQTdJekY5?= =?utf-8?B?c2tITEdQSG5uRXlxa3I0M2UrazJZMjA4ekJXWkl6YWZ6YnpQVGFsaTNSVVg2?= =?utf-8?B?QXZoaWZkQU90RzkxbU15MzIyMjQ4d29RRHVkS3B2NUJYM1FNa2J5RW43WUc1?= =?utf-8?B?NUptZWIyd3phajI1TmRGM0NWNTViVGNvcHFVVUtIQ0xDVFBWcjZaanowVGdo?= =?utf-8?B?czZJZzUwalNpWlNEb05Nb1BvbHNpc2xNRnBxR3JYa2lZTHBpcmZCQ0VoVVVv?= =?utf-8?B?SmkzdzdRUkNYTjlyM0syRkNZRE1KSGg0cVU0ZmxJUHBGZE1IdmVtWG1ubXR1?= =?utf-8?B?QVBoclIwWnZmY0VEZzNBdjU1Tk44QzFVczJaaG5GeFpMNWtESmhicjdXT3Zj?= =?utf-8?B?dmRzNkNDRjNXa0VOSHBnM3I1am5KNDZrcFhJR09BNHROc1hYNEZ6SWRvS1Ew?= =?utf-8?B?a2dYdm9pelk1S0JkRS81TEdOUXV3dFEyZHhHeVRLM05JOHA1Y0NCR0VjTlRR?= =?utf-8?B?REx2RDVORjZFV25INmNkc0xVTjZyQ0M5aEd6ZE9nL2ZYWWtTNjNFalpNWFFP?= =?utf-8?B?Q2wwUmd1akdoRFc0TGhUNXBFWENoUlhCdjd0UzA1cXZLaGFLcmRwK1ViT1FW?= =?utf-8?B?L2o3aHJtMkd6aDRMaTlrR25yTCtFVVNsZ0NpcVdUMkZHLzhJdW1SWE1RYkxV?= =?utf-8?B?RVl3L29TdkowQ3dmTjU2T2M4R2c4Z3o1ZlN2UlZ2bjNtNEZrc01lTDRyWmVy?= =?utf-8?B?QXlWWFIzOTIwaTZjY0JjYXFNbGhyd1gwbVN1ekRQWmdEWlpZbkh3aGxJU2JP?= =?utf-8?B?aXdjVEt2b1RpMTZrcDBDL210WnBpZXh5T241UXZVZmQ3aUkyODZpSXpKelpK?= =?utf-8?B?UENLL1RkcTNwSWY2TTBNQzVURFArWTlBVG5TbDI2cWV1bld2dWtwSWppbktU?= =?utf-8?B?Z0lTelVselRuYkduamdzdU9TY2VVWGxPeFRLVlUrVTdyWnROY2pYNFEwZU5a?= =?utf-8?B?WENIMFVONWUyMU9qN1h1N1hXekk5OHhJRnNHK1lkWWh5bDJBVDJybzR0akRs?= =?utf-8?B?aGZkNmZBeTlZZnRIZ1djV0hKM3Y4blJVajhEdThITEd5Wm9LWVFVZzQrVUdt?= =?utf-8?B?SWFsekhLS3lybngvVHJLKzFncW5EeVpjRms4VTVQcDJTZFREYktXeURZYXJV?= =?utf-8?B?dnp0T0l6U2MrMktmYTF4REZPQU0rSnlBUkEzWmNYRmNYQVZpYzVoVmZBMito?= =?utf-8?B?Ymg0N2hEbmZ2R0VxTHNueDZlTy9vSTllNGx4bXk5MW16aU54MWNCNllmOGtt?= =?utf-8?B?N1p3OUtVVzNyMTNQaFVxQndRUkZNMzJ4VWhmRGRmQ296aU1GOGVsMlQwUzRH?= =?utf-8?B?aGtNUmRzdHRKazNCOEhGeUpqazFVcTh0Zlo2cjJDaHRKcXE4dVhBdldUQnVl?= =?utf-8?B?c0tzNjNRMkRSNHQrUnZuUGZwcUtIcEMrdVNJWUs2VEJhOGxJenMzVVZOUE5m?= =?utf-8?B?cVZPOWRTck5WN1lHNmEwSmdwTEc4M2NYaGRsUy9KNnFsVTY1bUJDbTNSSlVp?= =?utf-8?B?K3hHNXZBM3RFV2ZvUHFZdFp2cFI5RHZjQmlXQT09?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;6:ypMtjbo55QxqG5xX0UG/NmR6y+ySrHTrt6TtJve6LLMvhcfc9LqfFlKH/E5NMX1GELe3ye/kO6u6CQYJdCdTGnVpf/PduQRFlQNS0Q93TXFrmrplJWo4ARG0lFfQXiRagaL04jLcNsStvVcqIv/M0QYq/RTa7kD+xU8IZTEl4NfFq799HB+bANRifQDy9V6yTZ/wqaJnf9Wbh1GeYHT9Xaw0/p8jz07MV1GsrjtOgitchFhxOfAJa1T3EK9VLHLUBoj7Fpj8ZFQx4X60u2LVfepDuznST7p2go2M4ONUWFRuouNemlH8sb9LkAg+D3jA+CFu5p90leJfbDYzaG0cEkEzSb5V95TUTB84Tf4rj/Y=;5:0gIK8NYDTxnnW2t4IVbc5+bURTwgYbrIwNeS6BqZfR+2SNA+Gka3xHTg4O2LaTvFSN3wdERN2DvajJw6I60UHLtMLYk+o+DGV66so/hsC7EUk1arH8EuPXqB/0BG+5ckwdH/f7qIX5VHOG7j4eR/oj7oyoy87c+fEzqh3wOB400=;24:QHemaPY3B+xaKUs2+epI6TmeIriSUzS4R+DG6BvW7s95nj0A/qzPJzRg4DEu8nTz59eHl9WwDVRdfjc1YQFHgb8t+s7pjykaIrIUZyAkcmE=;7:D9SMgbynKDTSkuXpMU0BxTeAiPpLqkqdsuSL2gxGRyBlMcHp2xaCllsGL2FpgCroAk9hqlHFS8pZw1O/7untl44/FQ3Q7/K85R4bhI98qUYdk7g6zE4o8d0yAh6YJpi+4epjKQltreg93qUlC4J9b/X03RLPK+dGaMGMRck1pI1/OqpSAhxtlPTwmpSJuk7jFS5Mi2W9pNLBev+VlJw+2pr7I6T/z88+JESdSMiJTIe9IEtTsNptns1J7D/dNtH0 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;20:ALFKyy3oiLElveFuBGzz4WtxAymA/VzNrCcwGLOJ7rVTJPkDozjOAcQsXJvt6ICWK9uJO2QVeJCeKDsvEoB1sIbqzQ+FXbVOcqDUM2Uw/7Bnjcy05N/6u4JVbM4vmfi/x6gFGqt28wMQ7ZmPcfpvX9p6JxGehy4H9qSzqnZKAlfH2H9eufq41W3nLP2O/vD/OUOd3HXRTEoKcA36viPLvpfzcRcOhXd1yJbguk7jzi8zKZO2AYblEoMlEyUOQcP3 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2018 02:22:24.2164 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fef8edae-38e3-4729-db38-08d55a2c7d0d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1144 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 1/12/2018 7:53 PM, Dan Williams wrote: > On Fri, Jan 12, 2018 at 5:07 PM, Tom Lendacky wrote: >> The pause instruction is currently used in the retpoline and RSB filling >> macros as a speculation trap. The use of pause was originally suggested >> because it showed a very, very small difference in the amount of >> cycles/time used to execute the retpoline as compared to lfence. On AMD, >> the pause instruction is not a serializing instruction, so the pause/jmp >> loop will use excess power as it is speculated over waiting for return >> to mispredict to the correct target. >> >> The RSB filling macro is applicable to AMD, and, if software is unable to >> verify that lfence is serializing on AMD (possible when running under a >> hypervisor), the generic retpoline support will be used and, so, is also >> applicable to AMD. Change the use of pause to lfence. > > Should we use ASM_IFENCE for this? I don't think we need to. On bare-metal this will be fine. When running as a guest, the hypervisor should have made lfence serializing, and if it hasn't, this is still better then pause. Thanks, Tom >