From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934044AbcHaN0W (ORCPT ); Wed, 31 Aug 2016 09:26:22 -0400 Received: from mail-co1nam03on0081.outbound.protection.outlook.com ([104.47.40.81]:26752 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758053AbcHaN0Q (ORCPT ); Wed, 31 Aug 2016 09:26:16 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [RFC PATCH v2 04/20] x86: Secure Memory Encryption (SME) support To: Andy Lutomirski References: <20160822223529.29880.50884.stgit@tlendack-t1.amdoffice.net> <20160822223610.29880.21739.stgit@tlendack-t1.amdoffice.net> CC: kasan-dev , "linux-efi@vger.kernel.org" , linux-arch , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , , "linux-doc@vger.kernel.org" , Jonathan Corbet , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Konrad Rzeszutek Wilk , "linux-mm@kvack.org" , Matt Fleming , Alexander Potapenko , "linux-kernel@vger.kernel.org" , Dmitry Vyukov , Arnd Bergmann , Joerg Roedel , Andrey Ryabinin , "H. Peter Anvin" , X86 ML , kvm list From: Tom Lendacky Message-ID: <386eadac-b6eb-747e-65e7-1ffa4cfd7210@amd.com> Date: Wed, 31 Aug 2016 08:26:01 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR18CA0037.namprd18.prod.outlook.com (10.173.208.23) To CY4PR12MB1142.namprd12.prod.outlook.com (10.168.163.150) X-MS-Office365-Filtering-Correlation-Id: fe0801c4-9eb4-4287-3f98-08d3d1a2612c X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;2:RVfoOKYPdPwa/RJxATzCNzDHZz+dEe6rhLg/8QyNfxLKbMT1p99QIt6PGTEpGdetu5lIgAmwui9HNvZRgwmheRiFcwl/Sr+pw4/HQZ2fktsL7Uv6QL+IGFO4MT7Mt95jq/EXOpLwzg/w0OFsNYXSZbuHFWhhTBlZVR6rW3cVOlH1O19HuJ8dU4X7n6/Hk+gH;3:XRmv9rqRWy7nhB6AbDU5ZBgCHv8DJEpO8s0lmY7Z7rvVI57J7SArMTGRA3c/zGEfgFSJJ4+7fWcrucT2eL8fpjPRoM02n6tdsHxYE4OVx0f0mDKc0ZyHdqzjxjPFpCDR X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;25:96VSTN/iVs/Nb96kxCG2NIJ/J9TGjC8dhDtCIykRuIMYhX4J43oprv/TWJUKWFnydY8dtoF5SOGTFoiY1MWIFIqlgskm5vYEmICekF3udeIMBIR6lTH4vfHjzqNlq3pzS43q9K1C3sb+jISIUbl85FrkAxF/bV9Ggx9pShPQpo0PZoTVp7z6Rwa6URs6ALr2tj8SGzwUe5NlH4aabVQihwqrHPRl563KcN3lKp9RwSYNN93WwiM8E/RLtF8nkcAQvpUmW25oS6UIv1baCZ+voVOczbluyB1UQmjN6OoA2kT/T5CVJlRKxzu7hM+P1cEjXKn7sYQhXCGpOez+TkwMOh5Mx6JKa85cbSgfB3u42PIe1mrpFNmjJVNegB3uUYY0D6cjtlmF0WBkz3HCXsFX9UTZv9zwrT1/Xd6DUQbxRrsaxyaTh2HbwfrjYn2rEslgrk61+pfKa1tpVNJ/2NaKPTVPyP523Uwb2FPAiA+5TxLqksaLFVRM+q/MDVLKAAr+ChTda2mtEhJ4WXWI7cfdjV0DdKoK9fLlXZbxzF6d3xur/EoDfkG1bEPU7sLlv2MYoAO6wJ1zX6Od74WcnNaO6fbxCG65CV/7RKEWKNggeoTvTbB/HyZisKe9wwpeWoXwflKNEg7jEV4aXH2fuctNuGakXVr9T1OgfGaMdxoTL535B6/03TTGmssGnygdV3aVWK1GBn7rehgaaIWQ0dwm6uP6BwIgT15dgMOHl3oZNLA= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;31:1nVhACZ2Y7OJ2pGLus83Y5g1bTkNRnEl2IBeV3mhlA0RySnF4Vw9O8EbP9FWj3pQ1RpsClr5oK5Wl9Ue71cZJpe8YKuDkcbsBt1BiqIflm2xSSQFKexTvfB7+bUO/i9bKAcdyoJ/+ecEa2VqeAXtF9lMWds31sgD/3X2i+Czn4kndbusfe1sW+xKonWuAMRl3zNC5JzSQJkhURUoigtZ4UX3JcXEu2SrpeGjbGLAbAU=;20:uePMmpN+gBdQX8Fs5/DBGqrn8+QSzTcpjCrFo4YDmJ44eEf+/d+zA3WoXorEvo7hNG5MC94PpHrcHRRsq4Wmxcx0cR4+w+f1kIQAxKnOcn1v3BUGWRU+mPMfPthSQnJ3J7dVYz7yaA0XjG9JvjnA2aLDrBH3SUBqE5VYg4UkS3N9/Osy2/FTsJ9jS5qQFqveRgXxLqCKsZXEQ0IqNuVF6D+NB0eTNromaIsCmnik0InQVb7yArfjFnin1sS2c2GCNEl9AN/t/RP0k1MPidlis9vfmWp2g0/zp6qxUrTDJ8x9OCvPBdgasOEEskbQkGWD68yVJ6UclIuBl9TiFT8lcabzOSVU+nQttvYaIR8fvt9/upZIXVYNpIvfwuDocaIpaF+MOZThhHJWxDhbfqrPW7HY7nz0NvQYeJJ5kff2T6qUZPR15t7jT5h6nj0zrhaFf3H1uo4gJCEGwxoxJvuXBeNovDXB2G41qWfdPDbeI688xAI/bVo33kiLcBDPyRSo X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:CY4PR12MB1142;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;4:O/lq3TwH613J/pFu2ESeSywszgUkvmuKNCOK1NJIt6+R0UVenFgfJtJxROoJV64Ubyki8h8pBGK+UX5GYQGLEQ7pimarek6UwGrs+guH/75Lh3P6dsQJEfVqddqwWEZfr7tsLfujcJvcH+yIe+4pdmwuTu4ZcSQgHQLRyjGydC2Pw/EsRZSliYB4/plxIUnw0QQvDo9DbNcWTBCYqqZ1gKUjtfb53iQHgAelij9iX95ER0MfVQ0qUvapy346o9Y89g41p/UCV2Bf4jeJJT4qd0XSP2pMBrq/fCVHIKF/4pXkVyVFJCnH9qHCP2mcyjYFyW+IxgATTkM+Yxv/lZlW9KcPBdnxPpwQghFOQ2n6pSU9i8BBZOzeNAbaD0T8YCftpHaY9m31ExSx79B+RyRH646VoM8wTCncp5nM15Ph+2GM0H1LghKhR0BYUSblOvuk X-Forefront-PRVS: 00514A2FE6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6049001)(6009001)(7916002)(24454002)(199003)(377454003)(189002)(86362001)(81156014)(81166006)(101416001)(92566002)(50466002)(23676002)(93886004)(8676002)(230700001)(305945005)(189998001)(47776003)(50986999)(76176999)(77096005)(64126003)(2950100001)(33646002)(54356999)(5660300001)(586003)(6116002)(4001350100001)(3846002)(97736004)(106356001)(105586002)(19580395003)(2906002)(110136002)(31686004)(42186005)(7416002)(4326007)(83506001)(65826007)(31696002)(36756003)(65806001)(66066001)(65956001)(7846002)(19580405001)(7736002)(68736007)(217873001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1142;H:[10.236.18.82];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzIzOjFKQmZINEduZjZ2UUgzdm5mSDNKZWM3QXdY?= =?utf-8?B?K3VFRHROU2c1M2MrcGw5MEpVQXFlSmdDcjhKcDhqVWx4VWxSSnFLV2tsVDk2?= =?utf-8?B?MXdvNTVQRERDYVpZUE5xMDNnVEdicWZjYUpMNk1pL0hDK3F6eXBFYVBEc1J1?= =?utf-8?B?SUtwVzBuMXFqa1BaM2Z5cE9raWswWHFkZ1pNSDl4WkZRMFQzVzMyNjliT2pU?= =?utf-8?B?RXFlL08xU2FlK3hmKzFBK1ZyNCtIaW5iczcrb0JUSVNoQ1k4Lzlzam5scWt1?= =?utf-8?B?Q0NxQ3BSc0w1ci93VGdHdnVmb3Z2V3dzZU94TVVvMWl6RHUxSmNHMkFoN0ZV?= =?utf-8?B?bkxGVkVOWE1zSC81RVJ1QjVQMzlzVzk5akdCbUVWQ28wRmRRZmF1UG1laU4r?= =?utf-8?B?ZVNpc3dPR2ZZdjFXdTFRbTZBUXU5cklJRlVqSklBMFJ5cm1iWTBVSG40R21h?= =?utf-8?B?REVkUFRJL3FVMGJhN21raVFpbEFuWDZDd1FXTncrZmx4R3hHcmNzYmFrczlL?= =?utf-8?B?NTcxN1JEaW40V1J1bHlRUHhZYnUrRG04OGM1R21DcmhERk44VndkTWNwazZo?= =?utf-8?B?OEoyMlZqUGM1L3ZYZHhWZ25pek5hWEtmekpqRUg2YS9rdWZOVlV4MEpsUnZp?= =?utf-8?B?eHNnZW9hN1VjcTI1VWxFd3g5UFhlaHk4cEpVbldOamFSOE9VY1dOdVFTVzFI?= =?utf-8?B?V1hpVkNoNlIvczd0dW9KU1hJNCs2VTZJcVJuZFhmWUJ2VUk4SGV2VFNyWkY1?= =?utf-8?B?ZUlaUklZTm42Ny9tcys3UURjNFNCSVFobkVlamFOOW14c2ZwSXBjR1dwTXNU?= =?utf-8?B?dnpJQWxxMW9rOXN6Q2xkQzd6eG0zYVFtaWVmakE5SU9Yb3VCUUhWWGhhOUxI?= =?utf-8?B?Qzd0V2pFTkNjRjVKYnJNMGJmaXdSL3JjY3lRbTRUVlpoT1pkcU9PbkJBUEtM?= =?utf-8?B?QjJGZVZYVlB3cnY4THZZQkdQSFBXc1dYL0FrbXBJbEJkUzJzK1plSGtTUjlN?= =?utf-8?B?U1dCcmhUVjY5TWdZRUtHR3pBR3ByaWlleFdOLzluelRFZkJqR3ZiUlNSZVlP?= =?utf-8?B?QXZSZ09HMDR0aDdRVXgxNElPeTNEeVdjWXpVQ3N3K0tSUVRoZGIvc3RkMGlG?= =?utf-8?B?M2JJT0RnY2VSQ2lnWVdwSEIrUm04dlVFMGlqNUJrV0MxTVlhNFZCeWQvbVNt?= =?utf-8?B?Y0dseWdxWCtkY2VvTlVkNUdnakpXaXZaNE96UUs3eGtuektpdkR5ejJldi9W?= =?utf-8?B?YWdmNFFwNVhvUDBSLzI3alduSjNPU2JjTXpZRUxhUStIQTl5bzZGbjNwUzFT?= =?utf-8?B?N3ZJc2l1K0FvZzhlcnRTZmE3MThVeGZtU1NVenNJT0VKc3JiRkNDTkR6OG95?= =?utf-8?B?dFZEY01tU2xBQ3Jpb2ZDN1AveFN5VXVkNjE3NHdFK0syd0dBSDAxN0U4L3lB?= =?utf-8?B?SytKKy95NGZ0UEU0TUNCQVBwL3BBcHZta1hkeGR2Nk1pak04bjVpRXNTR3Br?= =?utf-8?B?RkRudFcvZnZPMkp5ZnZVZ2xQRVlGMDZLektKREhEZStuTEZ5Y3JKOHE1c050?= =?utf-8?B?Smw4NWFoOVNUZDd3SkVwNzBrMW1XajVkTFJ1bzBPcHZTVGt5cldOMlk3WTFH?= =?utf-8?B?OFpackQwNlhIbkNBWi9BME01WEpBZEJrM1RGdm9lejIxcm1ldWVHL1Y5ME1x?= =?utf-8?B?SUM0dnFxMGVDL2Fnam5jdmE4R2lTS2c3UmtBaUNZZFVwUGpZejdjVm9Jc21w?= =?utf-8?B?bUpkdUJmanhhTWM4ZGk3cmRab2lXemM1NlRaT2lldE52cUNYMm1NV0VKd05N?= =?utf-8?B?YzVrSUtFS2taTk5BWm5jTUhNWDhmT0NDbFpHcCs4dG9FcER2UGYzM0k2TTVn?= =?utf-8?B?TDcyejZMUERMOUpiYkZ5em1XYTFGSjlxNDJ5M01Bb1hNaGJUeElDRFg5dTg1?= =?utf-8?Q?ED/rbxa5bm/3P4jg9lF8bfyqGctMDY=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;6:jtEvxuVhbE50+IC9j+IfRkdT4zya3BVhFd+r6Qte/b6Q8oDir5zoQfon+7J2pJ1yugY7DYld4YgfAVuHCDCYU8SJwk8gkRM8fl6UbQ+j9EMOhndQIWusG4QRRYUzLVhXZ6tDuMmOg4GkQY57yselE9PPOosN/UQhCpP3cyeYo3xq1yMBq5rKi2eTFkga/w9W3Z9XqQCf383XFRQ+Xoh8Hn4NepR9G/OcMzQ0gNovO/sSikc0uvF/C5cgMBDr1/VZQRlfej80g31fDot3lCU2MA9MgxZrGSDVq87pGG7emgJ25mqYK8+DBeMlpVUvn6jImVMQfFS136rNKU6rhm+bvQ==;5:ArqgTgurMOhhWaCo1Eqc8DTCwK8s99/v82fT3RGxNqQ+i37Tou7fc+W+l2ltL2JDc4YPzcbfOUXSiH+Sb0QXPUMpwUvaAlvBQ7Kzrty92W7L1KeSI7/xxWsTCAnAO1uNgc7mIEAqm1tA7PBWM9G7yg==;24:idjWPcHbgHcIcX9xkqdWg3HXpFyv8vIhudyRConD55Rs0Sf/bLY0/QWg2vvumR2rBr9B/s6XhhLMGzSCo/kysbu2Li4MPBm8oLwOIZDEBcU=;7:69R+nv/kifPSXh6DLyM9yuuyFT/nPxH4sHkkdJSs+AuSQOQzhCZNE1IqhWJUhS2SzMCVJqlB5B5asrUtszUG49LRM7WDtgy8rVUJDIx2JVfqGiqoybDn/eySPIs7H51f8aGc1yd2U17nF9wg9LkJn9NEOnlfsE67rLF061tfCWG+3cwz/JWa0Hr1/sv/Q4mk+ng3hhn+cG1Kxg+ty7W050vVuu52ozYrt4IFBborNU2eHA8Wh3PVQkB6q2ijMfER SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;20:spCS1eiZBtmACY2L80/+1SW1KwtvCQMIvIpbyzf5D2zDEt098UCR1BLg8C7JpYHH9IvjdYtX8YaqTYcS5pKn5RBQ4sXoq1GBCBU+aJjs41jGa2GryHzedhA9X4xJycBrwFHVyNUpGU/hptEgBsTJYaL/Q/E7Tnm2vIJdVQ45V5ERsKNCtkYN6YDADnSc9eUT9Z5RXHCnNatcRLtq3oZRBjXZ+tkdRX6+TvTb/Nio06InjTnp+EXbaxUkDzAgvstY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2016 13:26:12.1912 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1142 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/30/2016 09:57 AM, Andy Lutomirski wrote: > On Aug 30, 2016 6:34 AM, "Tom Lendacky" wrote: >> >> On 08/25/2016 08:04 AM, Thomas Gleixner wrote: >>> On Mon, 22 Aug 2016, Tom Lendacky wrote: >>> >>>> Provide support for Secure Memory Encryption (SME). This initial support >>>> defines the memory encryption mask as a variable for quick access and an >>>> accessor for retrieving the number of physical addressing bits lost if >>>> SME is enabled. >>> >>> What is the reason that this needs to live in assembly code? >> >> In later patches this code is expanded and deals with a lot of page >> table manipulation, cpuid/rdmsr instructions, etc. and so I thought it >> was best to do it this way. > > None of that sounds like it needs to be in asm, though. > > I, at least, have a strong preference for minimizing the amount of asm > in the low-level arch code. I can take a look at converting it over to C code. Thanks, Tom > > --Andy >