From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DB4DC47422 for ; Fri, 26 Jan 2024 17:04:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF31F6B0083; Fri, 26 Jan 2024 12:04:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DAB696B0095; Fri, 26 Jan 2024 12:04:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C1B366B0098; Fri, 26 Jan 2024 12:04:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B08446B0083 for ; Fri, 26 Jan 2024 12:04:39 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7A2B4A26CD for ; Fri, 26 Jan 2024 17:04:39 +0000 (UTC) X-FDA: 81722086278.07.94A087F Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2061.outbound.protection.outlook.com [40.107.237.61]) by imf19.hostedemail.com (Postfix) with ESMTP id 861F41A002C for ; Fri, 26 Jan 2024 17:04:35 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=K7TwhBwo; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf19.hostedemail.com: domain of Michael.Roth@amd.com designates 40.107.237.61 as permitted sender) smtp.mailfrom=Michael.Roth@amd.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706288675; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7D3HMU4iNiLKmlHuqj7Pyiq0i3oOiWA0wLhseqWLGJE=; b=YtiB/A+x93EGXuFyVmxCjIQBiNKMxRR2JTl2gyzbi+P5BTj8E+7qzsVDq8qoI52CQE8tLC 67FenNeNc+6QlZOTxaQzsfaF4OUNoknnn6TstUYnH/WcJk1wRFXikDFSiB9AOSFDzpBLCe dB6AFOKfFO0fn99AT2ybY3Tj7lLtH54= ARC-Authentication-Results: i=2; imf19.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=K7TwhBwo; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf19.hostedemail.com: domain of Michael.Roth@amd.com designates 40.107.237.61 as permitted sender) smtp.mailfrom=Michael.Roth@amd.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1706288675; a=rsa-sha256; cv=pass; b=6p2Ybe3uaFwoNzVf3fXYBNeRxPtgWgukgHedXQVMMWan/MsuxavYAxB2CHqyoryeNYJgiK tHpuxU0xCqwg/IR4B1OUrt56NxNgy4zM8FulooN7EGVQzN4HgzV/keZcKKJl5/1Rp03K8R 3aHlw+HlX24L18tfHKVzc8srNw7tAC4= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d7xH/NtPJZRS+RkJUmQuDNWhknQHwb9+zJ+pYSmOvzpJV6CSZeqM85taMgALAxBf1HCwyBLeup2xiICE960rleTuR7ZE/em3PNmnoIIphbdwO/BRZR7uE0xRAOUsUyUYV+RigPEGHFL1u1IYoA1kjJSi98F+6HdUiij3HuCdMfKwxiNcfJ58g1VmoQ2gZ3vmj5eDrFkZWQ6L82VLr5cocn+9jVaA+iMHIt1pUfPBsq3FFSDaNiye0paxi3wK1g3wu4lgWdmB7Zd91RpEEB0Xo46wVOUAal+II0vrj8k7N4B607xxGYMjTGvOhO+8qKRCkgsQlBMSIenxMmEV997ixA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7D3HMU4iNiLKmlHuqj7Pyiq0i3oOiWA0wLhseqWLGJE=; b=Ar7n4r2jM6GCywfxni9SB93dYuah0jmXUxI1tethNedbJgcdN9dcRzwXx47IvHzZHyQw5I/P3ueej5HeBBiLFgJmGJl1BkslyUg/1F3TmAwgrD45Monv7f35SlJO0+boXzKXMtml9y4xGcS0oBW0eZVHzg8W/yohy7dKYYIsB99JK56xS7DuyL5zBfd/QVt3o2mjSIvAsxqK2bfZ/waHiDqZgsGhEwUoqR9dShY9lL1ryRoFsZI6r2vANw8josol5Ty24LgGDNIia7y1l30ebIwM1oKHlNtDJjlrbSDrighLFri0n+h82ZtpykY/j0TcIrRpKvetzpzwv6fj2H2LGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=alien8.de smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7D3HMU4iNiLKmlHuqj7Pyiq0i3oOiWA0wLhseqWLGJE=; b=K7TwhBwok/nYgBwjan/byZuOeQDLTc46S/zW2yELxTUthSPpOVMdAh/Bwbvag9epAbq0WNRNzbNu8iKx8Vnm3gFND+7upcZlCbDVqENvqLQKSUMeBKfEMb8G8NIUpPzDE9txDkjRiwyuj2VGD9oYU7NbVCzDJ7gNudi8CmlMWUc= Received: from BN9PR03CA0919.namprd03.prod.outlook.com (2603:10b6:408:107::24) by DM4PR12MB5342.namprd12.prod.outlook.com (2603:10b6:5:39f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.24; Fri, 26 Jan 2024 17:04:31 +0000 Received: from BN2PEPF000044AC.namprd04.prod.outlook.com (2603:10b6:408:107:cafe::a8) by BN9PR03CA0919.outlook.office365.com (2603:10b6:408:107::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.27 via Frontend Transport; Fri, 26 Jan 2024 17:04:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN2PEPF000044AC.mail.protection.outlook.com (10.167.243.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7228.16 via Frontend Transport; Fri, 26 Jan 2024 17:04:30 +0000 Received: from localhost (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 26 Jan 2024 11:04:28 -0600 Date: Fri, 26 Jan 2024 11:04:15 -0600 From: Michael Roth To: Borislav Petkov CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH v2 11/25] x86/sev: Adjust directmap to avoid inadvertant RMP faults Message-ID: <20240126170415.f7r4nvsrzgpzcrzv@amd.com> References: <20240126041126.1927228-1-michael.roth@amd.com> <20240126041126.1927228-12-michael.roth@amd.com> <20240126153451.GDZbPRG3KxaQik-0aY@fat_crate.local> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20240126153451.GDZbPRG3KxaQik-0aY@fat_crate.local> X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044AC:EE_|DM4PR12MB5342:EE_ X-MS-Office365-Filtering-Correlation-Id: 16614c17-f87a-4b56-3195-08dc1e90dcb8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1QMnA6ffmzgL/PyywB+uInmTvbFcDvcLerf00p9Y6y1hC8ECTPEID2wCPZ0U/ih+nTJRacH5aStUwtSUWvObwHtzz9doa3p9Z6IGrxuZYg6Bde2UEL8Il952P5eyeasKbSx3detu2ws/z3wYe/nH5CAhThkDI9V9Nf9A4UT8qQ3jviWIfbFKGxACgljVM/bweo9hdFYW+3R1v4HMjYAyik86Q4E5sqsMqbeiEhaMoY0RFfsM1kGD3l+pVCMOUpEnEXEbrsCAH5M/tZZ83I+wjGzS2lNo59MHFpPLOqJH7aDCxoRGW+k3Ej3FLDj3pH0bvD5b2yS0Xpe22dlfVc1H517U/z5J78dBwDZiYVzqg/PkeUVEAnOCmOxIOgwY5aUkgQTbOz4DhnjqrD9O1WfCHZUfeX5s0ZoHy5fgxWOvRhUdt4wIKQrmVrBSgiyWw83UVd1kjn8o+DEE/2KSGNIoo4AHdUeY5hX6IeNz4xbYoNAN27VyeKMS8Zxj1pjcDDoDPjMtFZuPE74q1IcVp2j4h16dnbWJGeEZbVJfTCX4Ae9ZgBLzshGfAw4B1xNHWG4S4SN1epnd8b8npCrS01Ucuir3XEDrBDYBoiNN4xPWfE8QOqjfIo1wrWiNPVZxzoWKLHXgNjA7sGlI8LvpNvkpFblPLsLBda1jQ1zJqA0XRq5sJuglh7BNz77nH/GECEQHDKgPtDHAskME9srrtKagUIza2VIJqLaIGsYcmxTc6tgiJiKd0k+UV8XpNf+S5R8Gi3I0swmGacufZSx6ojlTTQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(39860400002)(376002)(346002)(230922051799003)(82310400011)(64100799003)(1800799012)(186009)(451199024)(40470700004)(46966006)(36840700001)(336012)(426003)(26005)(16526019)(2616005)(4326008)(36756003)(1076003)(6916009)(8676002)(70586007)(54906003)(316002)(44832011)(7416002)(7406005)(2906002)(5660300002)(8936002)(86362001)(70206006)(6666004)(478600001)(41300700001)(966005)(40460700003)(40480700001)(36860700001)(47076005)(81166007)(82740400003)(356005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2024 17:04:30.5231 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 16614c17-f87a-4b56-3195-08dc1e90dcb8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044AC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5342 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 861F41A002C X-Stat-Signature: auqps18e15ob8nu1pcp4h1w7epot4rjx X-Rspam-User: X-HE-Tag: 1706288675-825217 X-HE-Meta: U2FsdGVkX1/xvAlCoB1fah01xtLBizvNiHjk43q7Q1WYK+iIKvnytsrL4qT5bs7KFMvRhw/RW0aYC3l9MnC7ML+KEwixLrFFVDmtBCBuy4HDQSvVxdbf0cGCNv1o1AqOUT0ueTsqB/WjnBcWgQSIpklM3U3r9r1dkCu1tYuMDYcFyosD5ePX13viXNgFWxjJLY59L4lAGyfTr7pRPx9nTFWqQZsp2S9uy7fRlvDNCM/XUMJI0j6DRZiE35AaqHQXWOOhKIEB6ratUMQQeoRlZbPzs323N3w4zXoj6Dvu/8W2BUByYVXMo/ORPfdSD5QWVkLOIkj5IYkg3x6eEa9ycF8R653JiR/Wbe6v5J+EagNHuxjruZhLuWNVkimFFrqrXS/yxeSACszobr4VEMsurI2KCDDv50F9VRp6Itn1TSLX9eFGlEVb/YP9JrZ1bZBz9D7f8uNfJmme1lofLn57yV+xsUCX7GIAb5gzixlyUP4WL8/V+Z4FHhB/BxtzGoT8lj8loVmGISkqMPjmnmKSJfj6/K48YiK0x6hPkSszBtzx+Gd1QLvtlMgXU3NxMb95QYtoQi2VFUcXvWesKSKctNqgbzeW2wWB17DXAPjs7s0zEEGnyIB1VoiJGzBLYROh9yIRUSiX9LlpO6qmrG12wtoS/RQo5FphSzUXftcUhu0gI6zo1fglxTuiBgQg0oWoGofkc99A9PHevCABhMq9doVS4JIbfeavwxZ71KbeZ1TBXIL54OVSXOBQeEjw7zptj8TP9ZzCA5dJig0wsJQJh39O8Y/TAicz26eloxLAauSd4WAUHGTuUJsCAGkFkbCxw1J1dlM7Ub8RtOz6ES1togi8Z60lUq5NoCiLeoy1xnwDSG+J2THqvQsZgbM6TC6io9a0OHraEADs9QO7N+iUV7qju+F6h1XD3nL9+Ax5oj5KffFj8JcMA6EV33aLzaeXlnNWguRupTwJxd/Y21g rxZg4mx9 X3ew7XIeRrkimaylklWsDh8TnI7MsgWXPz4izUzbcUpnSDsOsbJizxeH3b6gDXppZsNIZRGFBvrsmjUVJMfLflHc7RWbgY148Snmulp+o/C9Adgw6QILIY0Pc2CdQq68qCa/B7WB7746L7UzFn4giwCyNo36Bq4yyM7IYTOP+jjDwBuyHPDkoS+/h01dZcFc7kKPaKjYt3CH1nu0burD/vVLcp3re2XsFDbIHZUB6UhPXfVtTrRjhDomkPebuSRFoCsRaTQJ8AcVCQ3R4ydhsv67NJ50SuZvNyko0IHB4UQ+dVAxrod7hnrkIrvQ/JdV2agDbAkI3dH/8C7bx4vqVN1jSV5o/KC564U3epGUkOY5/YLaIcmyaGYGA3O4icuFY2i1AQ4Kpdpf7wV7PKGrpn7fg353wYubQitVJL6G4xgZBU9U= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Jan 26, 2024 at 04:34:51PM +0100, Borislav Petkov wrote: > On Thu, Jan 25, 2024 at 10:11:11PM -0600, Michael Roth wrote: > > +static int adjust_direct_map(u64 pfn, int rmp_level) > > +{ > > + unsigned long vaddr = (unsigned long)pfn_to_kaddr(pfn); > > + unsigned int level; > > + int npages, ret; > > + pte_t *pte; > > Again, something I asked the last time but no reply: > > Looking at Documentation/arch/x86/x86_64/mm.rst, the direct map starts > at page_offset_base so this here should at least check > > if (vaddr < __PAGE_OFFSET) > return 0; vaddr comes from pfn_to_kaddr(pfn), i.e. __va(paddr), so it will necessarily be a direct-mapped address above __PAGE_OFFSET. > > I'm not sure about the upper end. Right now, the adjusting should not For upper-end, a pfn_valid(pfn) check might suffice, since only a valid PFN would have a possibly-valid mapping wthin the directmap range. > happen only for the direct map but also for the whole kernel address > space range because we don't want to cause any mismatch between page > mappings anywhere. > > Which means, this function should be called adjust_kernel_map() or so... These are PFNs that are owned/allocated-to the caller. Due to the nature of the directmap it's possible non-owners would write to a mapping that overlaps, but vmalloc()/etc. would not create mappings for any pages that were not specifically part of an allocation that belongs to the caller, so I don't see where there's any chance for an overlap there. And the caller of these functions would not be adjusting directmap for PFNs that might be mapped into other kernel address ranges like kernel-text/etc unless the caller was specifically making SNP-aware adjustments to those ranges, in which case it would be responsible for making those other adjustments, or implementing the necessary helpers/etc. I'm not aware of such cases in the current code, and I don't think it makes sense to attempt to try to handle them here generically until such a case arises, since it will likely involve more specific requirements than what we can anticipate from a theoretical/generic standpoint. -Mike > > Hmmm. > > -- > Regards/Gruss, > Boris. > > https://people.kernel.org/tglx/notes-about-netiquette