Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754139AbeALAen (ORCPT + 1 other); Thu, 11 Jan 2018 19:34:43 -0500 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:25312 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753186AbeALAek (ORCPT ); Thu, 11 Jan 2018 19:34:40 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [PATCH] x86/retpoline: Fill return stack buffer on vmexit From: Tom Lendacky To: David Woodhouse , Andi Kleen Cc: Paul Turner , LKML , Linus Torvalds , Greg Kroah-Hartman , Tim Chen , Dave Hansen , tglx@linutronix.de, Kees Cook , Rik van Riel , Peter Zijlstra , Andy Lutomirski , Jiri Kosina , gnomes@lxorguk.ukuu.org.uk, x86@kernel.org, bp@alien8.de, rga@amazon.de References: <1515624682-3556-1-git-send-email-dwmw@amazon.co.uk> <1515628062.22302.278.camel@infradead.org> <15e712cc-3bf3-bc85-7ed4-caeba30a26a4@amd.com> Message-ID: <8c29194a-0071-87f0-9c72-21ad8ab58ae0@amd.com> Date: Thu, 11 Jan 2018 18:34:32 -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: <15e712cc-3bf3-bc85-7ed4-caeba30a26a4@amd.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR14CA0025.namprd14.prod.outlook.com (10.171.172.139) To CY4PR12MB1143.namprd12.prod.outlook.com (10.168.164.135) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 621c39c6-2b8c-4b6b-0e36-08d559544367 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:CY4PR12MB1143; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;3:q+vAw3/xKimH1MdW8x0iuYaZPEzBgQ7+TF/CehX+/0gpvzI9KFEjVl/c3x+Zsjmy/2xmKTnguOPNqk/xBdElOASVBmi6JiaKb6j/eFmZ3AgnNjM7ixVf9h+YHEe5DwdnB0Ul6tkFGDoQV/yt7q//bhDjgHwC98QPRel4pKnsBGmQRoaOC5C6KcGBeUSk/Dp4tWBnJDsIURRJoaPATtTGP3rtWMBfoFHpvD0E+oSAu5VEr9Ki2w7kE21fVHVGfsWl;25:vwDIx65gNTDc+ib/CXCSV71GFy4jm2r/eA8wInpr57m8IEY2dh18n4ObaosNy/0cpz/gA3XcCyB/uW6HLcPZeMv7xWOV0HYRk7Gc/oVRLH0OMgG9VCTazU96Mvd7Rb0EbuT3ICwK4Q0LdbAaV9T9CGXSpa4vmaB3caSm4vUgdf1GAsIMBkld9xC/L3gx2Z3eenFapavltY8b8zhfLDhzYuagkfonqFRXH5h3O98Nve8xNAyO8xQfeKGBqeTYZzg4qYVQNqrRZrkqNMFFRSP/NYdUoHLw5tPP2WxUmpt7gOPPZgGqeCR4C+mzxuYLtbpgEKlK982D9AL5pcKhKwNUcQ==;31:HeDy+d+64nfZXhl8+BDp7DqGGANURvdKGsLsInaI1skv2B41o8O+euK2455Z/WtsV8INyRAwlzBOtLDygvKXryTjMy72h3hX/hptydV9VSCDbyQ01xElsCdfvhsAQ+ZzK8uGEvQYPux1mKXKUsKIosRhrIDIKezVtHQfisbK4dElcxoMOMUU98L27kW135PiiiDUsOzFoxbq/S+TAMw3YFCqGZG+rJqk1W9+nCLRk3g= X-MS-TrafficTypeDiagnostic: CY4PR12MB1143: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;20:2GBBrwkC8jQDJ6ZVaA8O4cagaHxrwv+Op49SfZ27Uk3gpRbSP58uBVh+YMYTzvppGJF87FgPxdZBUNSufmd+fPoKA99GAlXgSshmsKN8wxCzEOGQetXe8eamrXaznD/UYrIDoJSvUizxImAFhjM59SpEORctuyk9GNoV/GcJNlVm7D/HgiWdBzADxCzoxLSHHwi/zxrj+ZLvfL4L3cZe2oc0EUrI/Emfv/NAlweAqMbXWlhj/rmB95bovOiR6rNJErXWK+X/OLGnSx5JNhVMpFQYzb/Bh5IPXNBH+dJI8u/IGwMZhdqMSBgUt47KOhGKpQj7MxFZzJEGe8gfqEzB0wGlDw/ktgRVrF0/ueh8rUS2ymtnO0+7fRS4xvGBnsitxNE8ExM5y4jYrQcLlguH+J9+cjdEwGIJVovnvFgkBHS5s+ts7YZQHv2ii5ox/HaIf6f1+P+4oXqaXQIMhzFOSmWngYBAWQHVjT0jzVrTBViLGgES422RGdvvX+0kyElK;4:CAraBlTTSdgDZbEkuTQrmdElHIKuOhdgCbp5S/0jvYed93ftpar70FE03SzQdFavdCJnJscsOZ72TssxctLYOllFihexHEVCGXshdWdGX5XN6TZVmzGUep8zIrKgMkybs3kCpj11+gjRCMSReste8bIBiDZk3a2ia/P5pbsogPODQOzKJq4GQMBGfDd0Eo9rha8YYf3NbnugnnK50fJB43iqR+3Hhddg91W4C0s2+ms5hdez4Zv1hJd6Oj1dIzFKg7JOZFs7VCYZqq282tTriTNN4kBfbHmZ+G/WkbAt4/G1P9obTPG3yeQ22cQ6xtIEhGoVQtkF9HfHo3CASma1P1Ze67i8t7NTXlpCQLYCl24= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(148501403981450)(146755900322472); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(3002001)(3231023)(944501075)(10201501046)(93006095)(93001095)(6055026)(6041268)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011);SRVR:CY4PR12MB1143;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:CY4PR12MB1143; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(346002)(39860400002)(366004)(376002)(39380400002)(396003)(377424004)(24454002)(189003)(199004)(230700001)(8936002)(305945005)(90366009)(6306002)(50466002)(31686004)(6666003)(81156014)(53936002)(64126003)(8676002)(81166006)(77096006)(7416002)(97736004)(68736007)(2950100002)(86362001)(6486002)(76176011)(16526018)(36756003)(54906003)(2486003)(23676004)(316002)(106356001)(25786009)(58126008)(52116002)(83506002)(52146003)(65826007)(229853002)(6116002)(2906002)(11609785009)(5660300001)(16576012)(7736002)(478600001)(6246003)(53546011)(386003)(966005)(47776003)(66066001)(65956001)(72206003)(4326008)(3260700006)(31696002)(110136005)(105586002)(65806001)(3846002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1143;H:[10.236.65.116];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzIzOk45bmg3MVZuN0RFRlRpNXJNdTVTWjlsZllt?= =?utf-8?B?RUQ2Szl3cVh2N3R3N3l5K0o5QlloMEdaRHNseUVsV3Y4OW9IUkpieFFRdi9x?= =?utf-8?B?UVZBWndiVFRtREQ0TWxpcDJQR2hES3RxaGI2alV5aHl2OXhjNU5FWDcrQVcr?= =?utf-8?B?RVF3aTI1UG9JRUJmS2JMNEdSZVpCaDZmb3piRHg5Y1BDamowdXN6SWtpck1X?= =?utf-8?B?dTV4TDRaQm8zUUxyWkRacS9oOExSb3lwSGR6T2dSUytnMDF6ZW5wejBjbFE3?= =?utf-8?B?UUtnWm84aTJCVm9kWnNIc01VeHlDYXo5SjZ1L1FYVUdQY0ZuSzVhZ3BrbE9s?= =?utf-8?B?eTkwZUlDZHk4YVQ3akxqc01VeE5mMFpTN3E1OVZRRXRJVStLK0EycEdxRjVo?= =?utf-8?B?RXN6WDJkWHB4dFgvZ1NYUkJtamZhQ2tyOHI1YnhLUVZqUzk0REdIYk4zK1or?= =?utf-8?B?aXN4azQ4TVA5a3c4a0M1eTl1L3l1dWp1Ykc2aFhrZm1jOVYvWGxJMWNFUTRh?= =?utf-8?B?b2VjdjREd1pubnk5WkxBd3puZk5lcnJLYnYzbDJvWENzMXJtQUVBUFdWUGtF?= =?utf-8?B?RFJuRUo5SDFDZEkyVExHSVlqR3k4M0pYMDRRM21vbkczNEM3NnNhTVBFRUpy?= =?utf-8?B?MStQSGwraGJ4NnpEdjhGTHhoSGNMSkx2TkZWc0FPOTRUcmNrMGRNSVQvY252?= =?utf-8?B?YUFoK0NiUmdodTBRTEE0MTlhV3l5aUR4bEs5WC9ETkFlSGxEc0NZenJ6SGZu?= =?utf-8?B?L1BZVjlySHJGQjc4bzlKLytObFRIYjBPQ3I2cm5KbzRDaWpGNFNCd1BYUVdV?= =?utf-8?B?UFRyL3M4UFFvbnpDNm5nb0tFSExiZ0J0NVNEVWxwRFV2Tm1pZks2NVRXbE9H?= =?utf-8?B?SEtzSEQwcDA1WEJnT2lCcmxVQ0pYQ2xUc1lPZFlDcTFpbGV3cnZCc0tYam9v?= =?utf-8?B?c0NNeUhzZnVXKzg3RlN2eXZOblRseE96K2NCOHBvVDFWOXNtNW9aUDQzc1VP?= =?utf-8?B?Z3Z2d2VWTlVrL3pQM1Nabi8zK01rU1pBbmpzWXRkOENDa2tRdjA2NzUzc0Np?= =?utf-8?B?NkNINWRJYlJNSUYxSkc3UXZhbU9IS0p1TEt6bERnRFgwbnBZdm1FTk1wVE83?= =?utf-8?B?N20yNW9vVTR1RnRBNjdReTBXckM4WjlyR09LRkViUEsvdnFPSWFnWU82Q2hr?= =?utf-8?B?YzYxYnhmYXorQTRWTmFwOEp2Y1JVSWZKOVZPaVhoUk9uck1zVXdRR2tMZWsy?= =?utf-8?B?ajFiRzlIZHZ1N2U5UjVnVVhpZXp4NkwrR0JqenArZ1RPZmkyeTRNZ000bDYr?= =?utf-8?B?ay8rTEhMUzFpQkM0b0lCdFRWUFh5OEYzQ1d5QXpHSXFuczZWQzdIRFhHUy91?= =?utf-8?B?ejJIUUlSSnd1MzRja1p2WFJrZm5wL0hXVzJ2ckRHTThqeEpRVXNSeTBqK0NU?= =?utf-8?B?dzdvU29iRzVINW8wck1mNVI1TmVtTGNZNzAxWWY4QzBQUjZHWUxib2pWNVhm?= =?utf-8?B?SUJKbzUyeEZ3TlJxMjVmbjI1SkJxMmEvQllVc1A1NVBVZVpIR2E4L1pJZDJx?= =?utf-8?B?OEg3Y2JqbURZL0JiekFmVDM0Tktkdlc5dS9DbCtKQ3Z5RStiN0Frd1JhVmd4?= =?utf-8?B?ZzF1eXF6UXpwODArUzJaSDhYODZ1WmJkVngwS1Q3WkNoTTBtVjlGOU5TeUMx?= =?utf-8?B?eG1DZzJKUnpMdFZQVG5NU2xrNFRrdUJyaC9wK3dVRHBIRUdsMnVkNkRXMTlJ?= =?utf-8?B?QTVqOGoxUFBqamtTVjdWN0poSWNBbEVtbVZ5SkZ1RERnUzRWSjFva1RDVUNu?= =?utf-8?B?RnRPRDlFRHVHZzVjNDUvbEphYjQ5TFQ0VWlFeWZwN0pYalpOWDlBdWZoV1pq?= =?utf-8?B?QUtmVmNmc0M1M1lLbFJuVHFGVkFBQTVyeFVqeWt1Wjl4djdLUDVmVkJiZkRB?= =?utf-8?B?NVdIekJic29YM2c2aXZIZlAwZllka3BuZU9rNVovblVZY3hFclhxRnpmWXFQ?= =?utf-8?B?MzRBMGw2SkpnaktFRFN2SC9SVlBIb2g4MThJM2R5VlN1TWhLWldORHJBSXNG?= =?utf-8?B?Nysyd2dMZzFESUM5MWhaMW1NV1FvM05WS3N3SVBlS0NlOTVyUWRNQkhTK1Ft?= =?utf-8?B?aHc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;6:gVlfmXJGC9+k6v9u236nOzO5kewj7W9pRAedaqqR4yeqSWpqRLR+/fHtovcRHqfrIDubt7dJChzQ+Q7pYQCf7uub4Rb/vYJ+l4dGMKnkVOEHxvAwcA2AUi+I0Z3jZTzSsVY6D/bZ2B/EexoYRFsBD2maQJ52AQDjbj7zA6lLDRB99aKbUdI3dXhxfMViwrkpSBXfj5Cu/zjcctmGgmmla+g5gfgormB9HKF5/duj3YvXVHqJsdDRhom242cgElXRZKgbFmrno0NzJha0YFornIE81Gz0sQ4g+KVLg57kh++m91YG1dLLSRkswjtAfF7WEzCWAZq2c2T3ZKWiv8c2SOUM1T7rJp3YuJCefRteqK8=;5:o6KdWoQpJzKEV3MQnieoC8So426RVOZkBDWr9yJWtah5sGTB1nTx84Jev1u9gCZZJQlhCLRYBxbUyQp+L8pIe0qqACscqMh5sbEIxda95VXoH4+VbxOIqo6Hvdgsf07jBk9fE4Nts5sqYfYcYBjRhjWJ22GksjNvvPArq48dvTU=;24:vql25ztZgeCJQ9tJgnCXyeb55u1kYDrFjbF0C7m/UoVDsYYhc4gH7uzmTzeg4vIc4O+OW/XM6WYepw74s8fQarBD8PE7QJdex03xKsPsdyI=;7:hSa33bm/6Yrnfi5EHZhJoWWNeOZ5lJwkgSKTZoLeR8ycMGMPnnGEd4sCx0g2oz3nqDef5Fc/bJWGgzAap6D3QYzQIoAqDJzeEACZ8I9szESKkufxwGtbqk7gR6SKFJNTQoSNyXroVQo4kfWq02tEkC/mUMgojx7/UjIu54nD/sSyNBZeMLxCTZmJ2yaDGKLEhyTihg15bSdmEtHxJqFJEl5//7kZWl3me7bpWtmDShXaDHzQ6paKuPmKxfbsxDL0 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;20:3NpFXX68ROLRvD8tW7MPfNtKKjqEJwSeOPSCyE+Yw4iMLLnhg17Z1fLYewpOGtAFJUrcwOcQCjfhq3V6meN6qb6wse2NEWyVA93grNal0P5xDXoDfJBhkcr8aSm7/ltyWGCn18nMASdViclqwYhYQGKDejaMX4fCV14CgPk0Vg4DrAwQrPyXSWjCliMtVbQRohjA5jDSyXmBsAYZAdl9mKBTDYD/3QEAGmurAXF4TB0dwtGjv41TWU8KPSdsG3k6 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 00:34:36.1304 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 621c39c6-2b8c-4b6b-0e36-08d559544367 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1143 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 1/10/2018 6:14 PM, Tom Lendacky wrote: > On 1/10/2018 5:47 PM, David Woodhouse wrote: >> On Wed, 2018-01-10 at 22:51 +0000, David Woodhouse wrote: >>> In accordance with the Intel and AMD documentation, we need to overwrite >>> all entries in the RSB on exiting a guest, to prevent malicious branch >>> target predictions from affecting the host kernel. This is needed both >>> for retpoline and for IBRS. >>> >>> Signed-off-by: David Woodhouse >>> --- >>> Untested in this form although it's a variant on what we've had already. >>> I have an army of machines willing to do my bidding but nested virt >>> is non-trivial and I figure I might as well post it as someone else >>> can probably test it in less than the time it takes me to work out how. >> >> Now smoke tested with Intel VT-x, but not yet on AMD. Tom, would you be >> able to do that? > > Yes, I'll try to get to it as soon as I can, but it might be tomorrow > (morning). Sorry for the delay. This is working on my system for normal virt, but is failing with nested virt. However, it does not appear that this patch is the problem. I've gone back to commit 8d56eff266f3 in the x86/pti tree (before retpoline, etc.) and nested virt is still broke. Not sure how much time I want to spend digging through this since nested virt on 4.15-rc7 works. Thanks, Tom > > Thanks, > Tom > >> >> >>> This implements the most pressing of the RSB stuffing documented >>> by dhansen (based our discussions) in https://goo.gl/pXbvBE