From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753717AbdKFWBl (ORCPT ); Mon, 6 Nov 2017 17:01:41 -0500 Received: from mail-co1nam03on0081.outbound.protection.outlook.com ([104.47.40.81]:29696 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753679AbdKFWBh (ORCPT ); Mon, 6 Nov 2017 17:01:37 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [PATCH] x86/boot: Fix boot failure when SMP MP-table is based at 0 To: "H. Peter Anvin" , x86@kernel.org Cc: Peter Zijlstra , linux-kernel@vger.kernel.org, Ingo Molnar , Borislav Petkov , Thomas Gleixner , Tomeu Vizoso References: <20171106201753.23059.86674.stgit@tlendack-t1.amdoffice.net> From: Tom Lendacky Message-ID: <17a1c480-d0aa-b272-7ca3-5dd2cf2fd7dc@amd.com> Date: Mon, 6 Nov 2017 16:01:10 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR06CA0064.namprd06.prod.outlook.com (10.168.110.154) To DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a29769bd-c6b6-4bea-ac54-08d52561f2d8 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603249);SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;3:SpSx8kN+2zVFSp2cYfDNy31IBxERc3hQ8t/03bNahO1lngSFNaam017v/rzqg6z0uF5bfm9ZO7jCqQ9NReXjVdN17e+CLEv513yQDHfRCWS2no2cH19Dk2Mf7I8PuXGp+5MGNm6Vw/HV0Cni/bM/IICsr+AAzIi6OOIEEBMAxZ8j1Ukgcp2bnVTWB5UuMCgwpbT+fYexB9AKeZRnVoqPCnSw0i2bSe0hTh7eOwszPovjJYoVeQyQqfDVLIBFfUOp;25:tNLWqPtC1dZJrXUwySOQX0WP/DW2NEkknpaKa2kGxVlPuf9zLcS5rE+r0sjNlPRWtN92dhQhRmb7Ppo3dr8MvpL13fBES6CZ5i2MifCdBzjB59OD4ythXWf9pf6YJYsFUP7r3Iu8e8f0PeK/3gXoiz0gcyeehx5z7DWKIRrh8clhGtUdKU2YHbo8DknDlYNFEqzNeK37+KYYDMI0XiCmqDV3Gz7jSCMECOQ3GWWkJbXwcmfgCczugX8LSAB1+Ql8+m/Sm92obbkFipPb0CIyPu/QFEieKQPOmWeKtjreXGdytY92sQ/nBg0eCj5tvi3mMvCp130Faci5hrQuJLan7A==;31:TpkR6zSI64oZlDwCEwPL0Rn0Fqxf7OO2q3BHyhoiliHX92xq+btVbWyI2AK4BBYKUu1xapIo+ivcnSXY9qq64zYX2KkG2/Gh8JqfID/ca9GTGozNtrR2O5DaWgd34jBYW/8EAlm5+YxecCNzBtWy/COTjDUOo5+9FY5j9XDst6V+AKOf80X82tGrUjASgbvprv2TgLPPR1E58Ms5+SoEBfca74XJidyQRUb3EZaKENg= X-MS-TrafficTypeDiagnostic: DM5PR12MB1148: X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;20:vVhlJsk2ocVWVDpmSYtDmDwberTCteB056Q8oMZMxY/M4mS6llUkILW3dZLtFPNruw8WAbu7ITlHJYw6moF9mW6PVM2Kte3c1tkJK08PUup1xC/xaLMxl2XRVf+GJDcJidaS29s+vZclYdLXIZE52Ie/ytuhRWekbwbS4Hlt9tOg6MJ0F3N6PTOWkSi4UruUHu9ujc10PyWlKB6qgxutOiTxNlXxfWup953LhBsAht7FHZWLo/BGJePWuHdzOJsbs0uUxEMLntgC0kM/0a8T8fQZWn2iSAjmVtKHtopV2DtXMHeaRM4aMIRuLrKLzguVeW48pHF87uUmCqTQKcmSaHgovvtMnV71GZHHb3d0TTiFFT4tE+J6YnCxdIYlhscpePk6SU3FTmPGz7Ts3M0oYKOPO09Gi8qpihSYtKQ8N74nSuxkvk8Be8dnTeni4Io2cm/Hxa/HQ8gAfPhoVeyb1CbUR/g52xV4NrKz3lV84YzBynI7MOgJ/Bz3ht2/HX0U;4:Gsds44KN2g9Ed8mjQbPQb3/H0f/xOzssJ2O5VA8hl6NdRQf6eMKNdlQorKleiU8keAw4b/6n4bdZ46481xoyj8nLs1iW9ukO5+75DcUUgc4wyWaSxvrde4neSr0kWPumgop6DRh6KnX7MpG5e2JU9NUc/y3O0F/whsClrf6Mqqz/QOnEN/c4Qk0ToEdrmvioDJbfXWJnFKpX+zhNOt9IqCOY6POEr5ENmOtXUMFgM/o5rlyNURXuqReg4PmFjkeO6utbYQLQ2LJrRHnXGnG/iuun5FJtz9GTJiN5tUwc8XD8+vzVQj8opfgnZ0+kEsYX X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231021)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR12MB1148;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR12MB1148; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(346002)(376002)(39860400002)(24454002)(199003)(189002)(8676002)(86362001)(47776003)(65806001)(2906002)(66066001)(65956001)(36756003)(229853002)(31686004)(305945005)(67846002)(189998001)(3260700006)(8936002)(23676003)(31696002)(25786009)(90366009)(97736004)(81166006)(6486002)(50466002)(77096006)(81156014)(76176999)(54356999)(50986999)(72206003)(53546010)(7736002)(65826007)(53936002)(6116002)(3846002)(5660300001)(101416001)(105586002)(478600001)(316002)(16576012)(58126008)(16526018)(33646002)(54906003)(106356001)(230700001)(83506002)(6666003)(4326008)(2950100002)(6246003)(68736007)(64126003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1148;H:[10.236.64.70];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzIzOlZWYW9aaUFwdWJCNXluVW1GM0pWTGN5MUo3?= =?utf-8?B?ajY0L2MyWmdHbXZXeG9Kbm82V0hPaEhDR2RFR0hVbmhaSHkvNlhKaXg5OFkv?= =?utf-8?B?ZGZ4bWdvb3lZUU5JOU4rZFJjcWhJMUVKa0ZSVXVxOC9Rc09ITDlqeVBQdld6?= =?utf-8?B?NkwwcFk3eGxkZHRYbjV5aGY3YktKd1gybmVqc3pwSHNrZ1BSbWQybWxYU1Jq?= =?utf-8?B?YjYzMG5xaGxNQXp4d2k2QU5LalNPWWVBeHROeUp4NG43bnhpdGloTi91dnBh?= =?utf-8?B?VkdTVHhTWVM2Y28xd1V1M2RYNjk4eXlSNExlTVhWM1REU3pERWxqYmlRSUhZ?= =?utf-8?B?ZmV0YmRoSDFaUWZkeDdZaHhGQjBpbExUTlhzR0tyQmdxM3NsWEEvTTA5akda?= =?utf-8?B?WDFyQkFsNkRhcTFQbG9ROXdwR3pydS9IdkxwY2pzbGQ1c21YTklnMXRUeVZz?= =?utf-8?B?OFkwdC9Ic2VRakI1Wk5zTlUzMzZZbVlqNjZrMTB3LzZSbnk4eVU1RVMwWWJa?= =?utf-8?B?UmJQekxubEllSVhIbFZ6anY3SFdVZFBmOFdpZktPd1BNOXZHYlc5WTRyN09F?= =?utf-8?B?MXVXNTRDNEp4NjMwaW92ekZtVWZJcStNZGFtdFc0VXFkQ2UyeGhtb0JGSURE?= =?utf-8?B?eWpHTVp5UDBwMTFrZlRsLzlLcGlMS2hDOEN4TjZyOHhWL3JGMTJCUTNVQ0pp?= =?utf-8?B?eDZsYzl3cXQ0anpsclFWVXYwQnNVeUQrUmp6TTlKdVVGcUpwRlhBOGZWMld5?= =?utf-8?B?K1l0dEtnOGdFL2w3a3hYb0s0K0FxbEg3cFY2T0ZIZVNOcXdKZW9jbisyQW9t?= =?utf-8?B?MVUzMnFLTmdXK1ZEN1djOGNPemxIbU1KNjJPR2pVYmJPMVp5a1hIMHE2dldK?= =?utf-8?B?Sk40aWE3eGlmL2NVMzFyU2JrNnlSa1k2ZU1CazVkUmlycjhTNElvMEE4S2ZJ?= =?utf-8?B?TWlLSFlMYVhmNU9TZkFZT0F2dUVrMU04RzJVVHNRZ2NoNjhRV0owaS9mOVFT?= =?utf-8?B?cVlnQ0xJRU5KNHVlT3BGQkFqRjJyc1Y5SXZRbmp3a292bkdKMnYvR1RIUGFV?= =?utf-8?B?dXQweEVwZlUwbngyd2JCTGF4bEIra0ZqcGlxU0M3SzRIeEFON1ZJeVZrTGF3?= =?utf-8?B?KzFwQlFGZXkzYjk0clFRUHZESUdhdVFCd1E5NU04SHNkREk2a3NCbTZueUxw?= =?utf-8?B?cUx5K3hZdHZoUzlkV2ZQdFpPYnhyU0xNZUV0RWV0ZHpLUHUvMHpWUHhOTkw4?= =?utf-8?B?WFNXbTkwSStzQk11Z0pQWXNxNTlDeTdNYm5ML3dzTFpOcHhpRUtDSkYwbEk2?= =?utf-8?B?dTEzdlF2ckQveFZXSXB6VTF3MXBFSnFudTBqUXFFeEt3RzVCZW04MW5nMDM2?= =?utf-8?B?TWVvVXRiN2lIWGI1N0NnODJ3UWVWRlBqdm9vMlROUjlrZUhseDR2UmpKNkhj?= =?utf-8?B?Q3RvZmZQdWNkVzlHS3YwQnpiT3RnRERLcElGRElUSUJUOW9MSEpuOUY0cDVK?= =?utf-8?B?NkdSVW9UR0ExaWtrQzgyS2FxWVBsNFpFTFN5OXRtTDY1Q1lvSHVxZXl2WTBK?= =?utf-8?B?Vnc4aFFBWUNaM0hkQURFWDZoMHVYR0hMNkRJOE5sREg1V2dVQXI3QVZXczB1?= =?utf-8?B?c3NFNUJsaVlGQlBNSXI5TUs1dCtLUzZLaGRjU2dpWks4cXAzaDR0d24zcjl5?= =?utf-8?B?VTc3REJmYlpWei9QYjdlOThqYWhEUG0xUUVqUUUyNUFWYS8ybE4yKzNLbzY2?= =?utf-8?B?Vy9nSE5BS2FiRXFpdUVIM1BGOHpxam5Gd1FYZThlQ3Nka3RVNXpLcW5kanA4?= =?utf-8?B?VjJFVDlIUUlhcWZqWWQ1VkFhL0JkeDd1U0ZnUnRJbCtROExyOEFFTUJDZEdR?= =?utf-8?B?QUUzU2lFaWNocFpia3hqbUo4ZThJSVVTRHZ5cHl0SGZmRW9YNGFGSHFkTFB5?= =?utf-8?B?Vlk0bVB5QXFRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;6:8LxFO5ItsGCWSVKhI0yPyZi8skSHDeBOEXfrYZTSbY99Mcf+AwcHjJbFO/7GDYcIa4dgPRht4qjf8ASPyRaWXYISFXK76LroKji8ZnCj21YD3+X17Q2O5W7u02znBiCPeqDHD1PmuaTZ0Cx4jZC/0v0SgZudAkeYAgR+RhCAzw6d0iNi75XG0hcCOXZ9BYHGzJegCBrpeJBaAVzutqqqk6NQEfnaZQ1dcj24E7kVD3YMiVcff6nGgEztzq2vDTntdleNxOCPYxpAva/hdAya3FzemOFaejmZI5v4DvlXB1IwJwq6+zHbVtEsF8cJ23MIaysRzfvINOuf5MZhsV1bNVGfJgd2ifed3Za7mNsWRlU=;5:137lU8ricrelhyIP/4lEgO9WFQxBQC2SBpVR4uQ2Q9wLMLH3YvzBnR5K9NTVE+qA97pPpUwcreL4rUBcxqjQC/eQ619QqwcBCOVnAZPMZutOWiKiAi0h5H78sknTV7XTLB5lEk0u4wZimUxh1V7F0q8XPac+QsUn6YlUf5vsjz0=;24:OIqi/m373ugwBa/njMMESVM66OfryUmeipwKplcE8uLCUCqbdClvkN1uLM5YZeWwxzwmY0D5ILv+2DJGGkNFS6K/MTSThGffz6DT7aSLlKI=;7:LAzHMWXhn4grPC2xMQSQP7UUq/cvXo6HFbiCKExTxyP/i2Q5mCzGjr0R56LkzYUlARWBA3ugHpfODlR01lnytJmC3waUbdOP1PcO4mLxf6cAgIYC6w6KebOUhVojybYNyyN8qvSHfANrmAo8DtBvSggOFdmjzrzXghwdEGk4RYiRLUlurtLoQ8rq2brbuwA/N3W0V3rSStTFK87NkQlE6eWizfpgCX+6J0bh+44il8UMIOQz4QSCLnANRoiJYLyU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;20:esN31/v3nONHzBQcguMhzt2UxvjIseM0yD8JT5hOzURJQhUpK652xaSCg0wgD+RlWxieYoIDrhLOhpdDYoFmGE+UpU0AXI8B4D5yISeVTfNkgRMq9vAfXQaBswbO2marUD4X21SrvJ7w5/K01efufFG6eha+l460OiFP1YbJPTWs9JuJ4VhgLbgZsEYOfyOuAw5PJDHqp0ysKN6hJL34VskwyzMxuGfPg4j1kBOj6K10ojQs23PUWrWBpNvjt1PI X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 22:01:35.5853 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a29769bd-c6b6-4bea-ac54-08d52561f2d8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1148 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/6/2017 3:41 PM, H. Peter Anvin wrote: > On 11/06/17 12:17, Tom Lendacky wrote: >> When crosvm is used to boot a kernel as a VM, the SMP MP-table is found >> at physical address 0x0. This causes mpf_base to be set to 0 and a >> subsequent "if (!mpf_base)" check in default_get_smp_config() results in >> the MP-table not being parsed. Further into the boot this results in an >> oops when attempting a read_apic_id(). >> >> Add a boolean variable that is set to true when the MP-table is found. >> Use this variable for testing if the MP-table was found so that even a >> value of 0 for mpf_base will result in continued parsing of the MP-table. >> >> Reported-by: Tomeu Vizoso >> Signed-off-by: Tom Lendacky > > Ahem... did anyone ever tell you that this is an epicly bad idea on your > part? The low megabyte of physical memory has very special meaning on > x86, and deviating from the standard use of this memory is a *very* > dangerous thing to do, and imposing on the kernel a "fake null pointer" > requirement that exists only for the convenience of your particular > brokenness is not okay. > > -hpa That was my initial thought... what was something doing down at the start of memory. But when I looked at default_find_smp_config() it specifically scans the bottom 1K for a an MP-table signature. I was hoping to get some feedback as to whether this would really be an acceptable thing to do. So I'm good with this patch being rejected, but the change I made in 5997efb96756 ("x86/boot: Use memremap() to map the MPF and MPC data") does break something that was working before. Thanks, Tom >