Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4788527pxv; Tue, 20 Jul 2021 11:29:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/MsR0znw6QF2bGBvYy3YSXXyS2HQvqgVA/0sOA+NY885RMGOX3pOvBXm2wwByPO4lHEOd X-Received: by 2002:a6b:7b44:: with SMTP id m4mr23671929iop.72.1626805741556; Tue, 20 Jul 2021 11:29:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1626805741; cv=pass; d=google.com; s=arc-20160816; b=ec8EYfEBc0ajABJgiVk3x6SA1U76rAqRImkVfIF50Civv3jV1porYqAofwvdt0UNRW hV+FRjm2o7UySWRMTcujuPO0rPrzMttTmDmOLptpJz1aBK6RfBGZpG1Yh4sqvKaBLWGf nz3t/jaF/IBrniG/ROFf2DFyrtPoATqMJ019NM/AC/rhWcdjUz6sMrBz+dzlsFZu5pde 9R4eQQgC4Qi8xnW0zM0S+65kJLkXhmh1te8+89We2MUyqJUSApeeYarmZBTIXHDNMTQN VVA2QWlSZMzlidtQ/uhhmF+ht39K18GoR8ye2FZlFqQV9rk0mYieFKrL6YsCLMxzRtIP VjGw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:in-reply-to:user-agent:date:message-id:from :references:to:subject:cc:dkim-signature; bh=9a0/cKIDyMRzYX5tDAnUYR5KSNbdQ8LxgbQ1puTkxf0=; b=CNc52JfvRtfEOIv786kJWXhix756JKZI4zbuSsNaDXv3uxVlaWTt3z01RLqwgIKHDr 5Vo6CgTjwqtPtEq+TmMrOw8RNVK6Ofar9u7mtpZHf7SRXbpaYoBKEOk9wjEkgzfkoKMB czAOvPp0sI+b5QB7wGmXAw5CEHELHOKVS+90hMVT6tdEEWz43ftX7g2cmEbwPkylH7lJ bo/BzaBGv2Ki+I0bCUq29TahTu/x9OPBcCVqR3JfV2y2mg+Pf+QpQIUpuVqSoePBwQ/f X5/tAWq7VUrVRH/b6EAsNSUlDVrA1+25b1M6q/1mJMFrggRazA3w39vl6c4e5cToUv4q ovZQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=Xb1IzUiP; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t2si22698355ilp.31.2021.07.20.11.28.49; Tue, 20 Jul 2021 11:29:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=Xb1IzUiP; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232802AbhGTRqN (ORCPT + 99 others); Tue, 20 Jul 2021 13:46:13 -0400 Received: from mail-dm6nam10on2053.outbound.protection.outlook.com ([40.107.93.53]:64770 "EHLO NAM10-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232712AbhGTRnA (ORCPT ); Tue, 20 Jul 2021 13:43:00 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JgXHkWtceAUkaihY2GgB1E9GUY4Ou234TmWL5jyR9MHM9GY135Rzqpz1D4siofn0qBN6Gsaw/tPLhtcTOEjz1m0HeAWT76LK4kKUxauySus28yRGmFVdATbCNSRZ8W+LH8BDVkO1BdRbi/H3OGuAd3pBMaqJaa45+10M6NA248VaO/tmxfQYy7eSoKJTEq4ZjlG5C7BXhGOS0r77KqtidkrQeSzMnZVuANrPejvJ9IM0I1/zcZQqyayMv0zVBmjcIAaF7zKgoZQ77Df6Rc3I7oyRIkKbQk2bR7MWCve6p6V0HUpng7aNzi/b6EeZ+oL4WomgIJyZA6IHDsgR43uClQ== 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-SenderADCheck; bh=9a0/cKIDyMRzYX5tDAnUYR5KSNbdQ8LxgbQ1puTkxf0=; b=V+cdumQqwx+2ioq+f2epiqcf1wbj1Gr+HyOG3ZrA4PVqo1j+IiVRQptHrpIZLMyS5NC64TgiHi6XPPrsfqG9kXAZNAefr04JVNlwUsWTw6iYkBkOgC5NIPyZmb+bBZdyrRS4XQGB2FQqe9LB4tQmA1L7oOjrzpCoiQGU4sAqE+fdWG4R+4X/Opiq9nxHXny0v+p8yZYsskp/Zph2jMmyZrlVv0AmPplIhHLvlsgX2c5gDeUsvMUpTckZCuXPXGN+7p7RBx7ZBhLPWJCs2+SWTsh7qCm9U3o5KP2TocrrEf7b0usqoxocVlAMkgqJN+4NsxRSjJXFZ97t52vKttUTqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none 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=9a0/cKIDyMRzYX5tDAnUYR5KSNbdQ8LxgbQ1puTkxf0=; b=Xb1IzUiPyQdV5h9fPXNSFDtmCEcO3j8ZGtq9TSc7Az27doFcqKpmS9S1S4Vh/LZ6WcWISrPiDGCX94auC35BFOfoY92XXQ5M90NJ6HC9atLa3Fm1JiPcyddIoUt7HMn+C66S2nkkhIwKAV5W3Nfn4SW8hY4cdhl6ZbI+T8KsLNw= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=amd.com; Received: from SN6PR12MB2718.namprd12.prod.outlook.com (2603:10b6:805:6f::22) by SN6PR12MB2768.namprd12.prod.outlook.com (2603:10b6:805:72::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21; Tue, 20 Jul 2021 18:23:36 +0000 Received: from SN6PR12MB2718.namprd12.prod.outlook.com ([fe80::a8a9:2aac:4fd1:88fa]) by SN6PR12MB2718.namprd12.prod.outlook.com ([fe80::a8a9:2aac:4fd1:88fa%3]) with mapi id 15.20.4331.034; Tue, 20 Jul 2021 18:23:36 +0000 Cc: brijesh.singh@amd.com, x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, Thomas Gleixner , Ingo Molnar , Joerg Roedel , Tom Lendacky , "H. Peter Anvin" , Ard Biesheuvel , Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Andy Lutomirski , Dave Hansen , Sergio Lopez , Peter Gonda , Peter Zijlstra , Srinivas Pandruvada , David Rientjes , Dov Murik , Tobin Feldman-Fitzthum , Borislav Petkov , Michael Roth , Vlastimil Babka , tony.luck@intel.com, npmccallum@redhat.com, brijesh.ksingh@gmail.com Subject: Re: [PATCH Part2 RFC v4 25/40] KVM: SVM: Reclaim the guest pages when SEV-SNP VM terminates To: Sean Christopherson References: <20210707183616.5620-1-brijesh.singh@amd.com> <20210707183616.5620-26-brijesh.singh@amd.com> <2711d9f9-21a0-7baa-d0ff-2c0f69ca6949@amd.com> <912c929c-06ba-a391-36bb-050384907d81@amd.com> <96154428-4c18-9e5f-3742-d0446a8d9848@amd.com> From: Brijesh Singh Message-ID: <1e9ea39d-ed68-ad91-63f8-661245b62dfe@amd.com> Date: Tue, 20 Jul 2021 13:23:34 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA0PR11CA0075.namprd11.prod.outlook.com (2603:10b6:806:d2::20) To SN6PR12MB2718.namprd12.prod.outlook.com (2603:10b6:805:6f::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.31.95] (165.204.77.1) by SA0PR11CA0075.namprd11.prod.outlook.com (2603:10b6:806:d2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.23 via Frontend Transport; Tue, 20 Jul 2021 18:23:34 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54a19ea7-506a-4436-5ae7-08d94bab7ce6 X-MS-TrafficTypeDiagnostic: SN6PR12MB2768: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OiLMB738Lw5cn3x8mXUCMVEmGIhyfkiydVfADvOF2HJfRZtqu8Gk5LP7iQkAPqXzSqdAM3YhW1tKR5RAwq2mdidh/oN5598iFfspJLrIk7yMTV7BRixb2qRhCudTxIdG2B+bnG+8o1u6veS09ts5zsGvKWsprzehqK5ePio7+7XtBFeuZxcCll5JarUkQuvkamQYTXsvNIBNs42tbV7LryG7tFfr8Zjj8wIWt2FMGTV5JapusDJ3A06Aa8T1Z1OxOXMqRY4+n2M+ToJB8hg3q8N876tNu/SZi9Whv0pW02lua/yPB7HyxHZXfrxWoctFnkGb6izH662fIoWlSoU/oWUayHjgwuKdSfdsGJO3wZLE393vMdLQ4ofEBPTTj4Kmwhq069PjzJNDJERPQwg6Zro2w04hTH1Lm0yI0bkrz//bSCryVvo/azPSXigbjImFb+6eVsRNAz+0IoKK03rDf5myshhE82VLCesTohGnEmZ3uP7x8Xt0HIZtYq5EoLe6lWUFWdy8CzsaweTgBJj2PGgrCeJeOjtN/aO73NjuCnKocE7WpxpqR9Fiv0lyNxQkG11UUDLecPuYgOqYIVGftDkNdxcTS5kWAHDHVlVMsQS/WmcGQ0rdqz5P+CDWgTwElUrz9gM1WxPR161U09nygw+AI0MoP1HhlQJ0aQGQtxgGeA5+7Knw3/B4KslG7e3sFK/HMcHhCLHZGJxLjzbha3W519JAsqLYMV2PFaW4/tPW6idOiqHdHtP6fcdFdy4G/e+gvgQSk3K7twxQCNHAxQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2718.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(346002)(376002)(39860400002)(366004)(396003)(2616005)(8936002)(66946007)(83380400001)(53546011)(956004)(5660300002)(26005)(31696002)(4326008)(66556008)(86362001)(2906002)(36756003)(66476007)(52116002)(44832011)(7406005)(16576012)(38350700002)(6916009)(38100700002)(54906003)(8676002)(316002)(31686004)(6486002)(478600001)(7416002)(186003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUs3YmtZMWVhTjNVYkVwL0NnMFBSQS9uUWhXOVFaRVFmSEkyRlYzNFE1Rzg5?= =?utf-8?B?NVB1dDBMaHR0N3QvL05lZFcxQ2ZyOEloS2RvRWlmU0l6YzE2cHhuU3c5Qjgv?= =?utf-8?B?bFN5cUk4R0FNMGw1QkVPTU5JbVpadkN4ZVVuQm9uUnJoYkJFb2hWelZOckZk?= =?utf-8?B?eG02azcvRG1VYVIwQXRVdFp4U0ZNMGpTSGtOMUxldWxTUGtoQW1YSXdqQ2dk?= =?utf-8?B?U1lrUUMzTWxjbjhuelBQTU1OS01IVWYvS2E3MXRONFZHbXM5dWo5V0lUbnJK?= =?utf-8?B?OExyTmloWGR3VlowUTFkd3grc0F0aWhvSU1qRlUxcGpHVHc3SmViU0x5RGkx?= =?utf-8?B?d1kxUjdTQ1dMWkNVMDhLRU90d3VxRkljNitkWmk1RXhsM3lXejhxOTdrYTdD?= =?utf-8?B?eERnbytWSk9ZWkdhZXgzWmJDd0w1NXZLTkdVdXFFK3ZPZEdEaVArSzVxYzFO?= =?utf-8?B?L1VPV2FMdnNOMnlBc3BCM1RxSzgwdjFPb1VKdFhybWNhNTZuaU44eE5rUlBy?= =?utf-8?B?SGNqamtDdmY4QnBYV0lBUjZ2RUhseDVqWEdRWWNzbmtwQ3MzSWtjbGxZTFVk?= =?utf-8?B?SFlld2MxVGFHK1RsckJ0N29OK0Q5Qk5HU2JObVJ4dGVmbjMrN3JqZ2duelRs?= =?utf-8?B?TlJ6OU1DUURybnFaYVB0UzdHU0g3eGgxMGNBZzVrS1B5cXN4ZEpMbndBTkNL?= =?utf-8?B?RENxYS9GeWh0NWJpeS8vZlVWUDVyME4zclBlVjBEdVd6TTlGMUxNOUFCZlFw?= =?utf-8?B?Y0J1YjR6bUxWVWRycUN5MEZkRCtvMlB1NHY2clBXU1RUWllJanBXS1BvdlFx?= =?utf-8?B?c2ZFcWZ6eHV2L3dXNTNjMkYxZ2RCNUtNemRTVGJUWFBtZTJabjdENFZRMHQ2?= =?utf-8?B?MmxaeTJxQ0hWaEFKMjBIelZ2cGQ1bkZNM0NhOHoxNGFaNHV1NlNMZHJUSVJU?= =?utf-8?B?SElwbGtBbnR5a24vMUl5N3JURFZOWUhUdUo2ZnN3RVIraklaVEFZM01IaTF2?= =?utf-8?B?RUpIZjVZNlZ0MUQyNmVYV3ZXZUxJclVXeTVXK0wvNEIrU2I1WHpTL0NwR21B?= =?utf-8?B?VkYrRC95TlhlQjFGL3RxQ2c3cVhCVGxXRHNSWEZ5SkE2VjlYeFhvS3kyRDh3?= =?utf-8?B?UHFrY25ONTlOSHFBcnFSNDN6Si9VbG5JakQzZUpESnRIZW1MenBsL1RhWUYw?= =?utf-8?B?cE50T0RJV0JlaWNBUlN4R2F1dDU5dXdCL05kNWJTSG92aFhjTFNyU1M2ejBv?= =?utf-8?B?Vi9HOTBaM3RJMXBwbEtEM3RpN2NVdFAxYjdKZ0MwUDNOdDhPWXBqT2kxUmo5?= =?utf-8?B?MVl2aUZwdk5mOEU5MDhWN3BIQlJ6RC9sZjZVdDBwK0VpanA3MTlMdEg5bWJw?= =?utf-8?B?QVUwQjJjVk1keDRxTTFSNzdMTjQyNWdTSEEzSWFDQVQyTjA2RWxQQlVadDFp?= =?utf-8?B?cDc2eVJIYWk5dW1NYWFHanp3V1JVbXdoOWJQSHlSTjMrTm1pYjBUVUtNZ1Ja?= =?utf-8?B?aUJZajlJd3lDOFNXckp2SE1EVmtIRXo2ME1wU0F0c2J3aUxsVW9uRWtqRExq?= =?utf-8?B?NlhIaU1OM080Y01nZlVIT2RPaVJIQkxEOUdFY2VHRFhMTGdkaWZUNkNSV2M3?= =?utf-8?B?akl1WFFOYzJGVnplNUtkaFdiWGI1QzRxQjQwTkM2UE8wc2l0QlFiam9OTW9V?= =?utf-8?B?ZGxhQWtydW9TMkFnS2pyWDlBS1c1aHhvTDNrODdJT2k4ZmlvZlBBcFduU0Jp?= =?utf-8?Q?PDAmwWPkBplEAanHhXWvJmE6CTrtUQLbtOx6aqZ?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54a19ea7-506a-4436-5ae7-08d94bab7ce6 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2718.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2021 18:23:35.9216 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: izex9SjX89OUWCAeXD78qQiGwHH/b8O4uZN2GDI5WsNU1HFkLAA3ICZHMsu5RdRtx7a7/mD6VC+a5N1WJ57Bew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2768 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 7/20/21 11:40 AM, Sean Christopherson wrote: > On Mon, Jul 19, 2021, Brijesh Singh wrote: >> >> On 7/19/21 2:03 PM, Sean Christopherson wrote: >>> On Mon, Jul 19, 2021, Brijesh Singh wrote: >>> Ah, not firmwrare, gotcha. But we can still use a helper, e.g. an inner >>> double-underscore helper, __rmp_make_private(). >> >> In that case we are basically passing the all the fields defined in the >> 'struct rmpupdate' as individual arguments. > > Yes, but (a) not _all_ fields, (b) it would allow hiding "struct rmpupdate", and > (c) this is much friendlier to readers: > > __rmp_make_private(pfn, gpa, PG_LEVEL_4K, svm->asid, true); > > than: > > rmpupdate(&rmpupdate); > Ok. > For the former, I can see in a single line of code that KVM is creating a 4k > private, immutable guest page. With the latter, I need to go hunt down all code > that modifies rmpupdate to understand what the code is doing. > >> How about something like this: >> >> * core kernel exports the rmpupdate() >> * the include/linux/sev.h header file defines the helper functions >> >> int rmp_make_private(u64 pfn, u64 gpa, int psize, int asid) > > I think we'll want s/psize/level, i.e. make it more obvious clear that the input > is PG_LEVEL_*. > ok, I will stick to x86 PG_LEVEL_* thanks