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 7E5E9CD13CF for ; Mon, 18 Sep 2023 01:23:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE7A26B01F6; Sun, 17 Sep 2023 21:23:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E701F6B01F7; Sun, 17 Sep 2023 21:23:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC3876B01F8; Sun, 17 Sep 2023 21:23:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BA29D6B01F6 for ; Sun, 17 Sep 2023 21:23:12 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6E6CFB3A64 for ; Mon, 18 Sep 2023 01:23:12 +0000 (UTC) X-FDA: 81247969824.01.279C41F Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by imf18.hostedemail.com (Postfix) with ESMTP id 31E341C000B for ; Mon, 18 Sep 2023 01:23:07 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lEi58c8y; spf=pass (imf18.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695000189; h=from:from:sender:reply-to: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=ur7Su/Z1/S0UvJGlJ+MkSZAJR/Mdw50edtAS62R+TIo=; b=zQPBdythVlu+QxiomiYjjIQcFx/cMsFu/+EAI9QDRImV0aTV6vwFSMH4aWDDcM5OrrBSjI Y2R6pwrjjvx7WZEDqfpd0xz5/9BM8G9qjtWKhETinckU9OqmBVZoYvPJv91OeXuKcEpy1/ Ca0q8xF0A3xwpnDCC4A00JAR1khD/Kw= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lEi58c8y; spf=pass (imf18.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1695000189; a=rsa-sha256; cv=fail; b=AISEjiWVufiwbL5IGC2xwMIF6962YRSGJWh7hKX1zcVwFx4Ze0O7LbZHI5/sW2IswmLoTT /HWZ9Ov7GuRGy9+MGKp1vs/JfgTBKCnEXjL1+9Eo8UXiJ0C3MZ1zveJM+0X1Pj0p0FHC4E zMpjtfi3HkiX9NQ1yVNt5rYi0KGnuaU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695000188; x=1726536188; h=date:from:to:cc:subject:message-id:reply-to:references: in-reply-to:mime-version; bh=6EbWrAqaFv/oHwPa3uHaSjB2vXOYqABxuhluMCXJBeU=; b=lEi58c8ydmFpP9FAbGKefhQdRUgNo2U7SzB24+8rRHN0qowFn2Q7Vf0Q mlBUpuYf6yti4aZx98xsPGI+Tfd80s6QJTUZ8w5myaoPM36iS3HombJHM UbusJFcAtc4JaCH/7eDQS1iQoMlovLjs6i94T+6Q+einAJ7tFuCTudW8U HmqEXMe3GB81gzryVtSbWZqm1xO2v/qT3tmQYFbHZ2GQjhUZUnWZVKmqe KeeuIMe9+txsG+fVsc/aBVSPSa5yp6N0LCcOntx5CCEvQXKHP4Z+N8hhb jY/kMmDg5MpJ4Q9PCpKp7JXrUO9bQ7uf/pX7yKKtjLu85rmbNBNvwakrX w==; X-IronPort-AV: E=McAfee;i="6600,9927,10836"; a="378457073" X-IronPort-AV: E=Sophos;i="6.02,155,1688454000"; d="scan'208";a="378457073" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Sep 2023 18:23:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10836"; a="780722719" X-IronPort-AV: E=Sophos;i="6.02,155,1688454000"; d="scan'208";a="780722719" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Sep 2023 18:23:05 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Sun, 17 Sep 2023 18:23:04 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Sun, 17 Sep 2023 18:23:04 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Sun, 17 Sep 2023 18:23:04 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Sun, 17 Sep 2023 18:23:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J4lxWoZMRzAo59z1I2pLgOx3hN8lzTQUlvMzOM7K9OUhvudB00Qu/9HvqCF01lRRIFdsVZYY4bo2vYGAyqFY2JnT3Hp1bTWC37DE99k4emtDOJrGX8tczu6KpmKbc9BCONTtGewX269+ksZt40semzuXvnEC/lgn4eKQpVQ8aUidPgoMYo/p31pTas3eSXPWIpVJdbrQquQrQkbtV0GSwrcfbtDKDfNoYX+e5HUZZPKrBKA+supJxWF99rV/qLXh9yLR+MQAZEWKoDTRQDJtm1djuk2qzmdFSiGSOYcv4dqTXby1GbSKzv0XxdQHY9T4mwqIsYx89A4AcSChZB65Yg== 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=ur7Su/Z1/S0UvJGlJ+MkSZAJR/Mdw50edtAS62R+TIo=; b=k6QX1ZS3kU/YiOJYmeT2AbpagbgPgVCgip9actldoQxQLS3Uhb9BVf8hLUs3I/2xOfp8Zd1rcj8PP//MlxYOAZJ8eX/DpeJf7P4SUhRkrbhbp2zuQnqrKPm8KovJ31tPVyfcc1ISYWq+DwrGFv2xPo4mEqIY6VUoslpzfXlG9jAE0nujlh1zJUVBM6M4oPxuAjGcgnzFGK5n92SSOgKZ+7b+TV014UQxoZ4tRx1rzqLtX6wwY/crBgkLcNuaXC6o2RLZySmU1npKh7CXTJta3R9cc88G0FB6Ntf3LeKosCl8sAnINhHKy52VWbsahhWCaTE3EzA+91kxrcgGHMpBKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) by LV3PR11MB8529.namprd11.prod.outlook.com (2603:10b6:408:1b3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Mon, 18 Sep 2023 01:23:01 +0000 Received: from DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::5e79:2d52:51e:f602]) by DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::5e79:2d52:51e:f602%6]) with mapi id 15.20.6792.024; Mon, 18 Sep 2023 01:23:01 +0000 Date: Mon, 18 Sep 2023 08:54:55 +0800 From: Yan Zhao To: Sean Christopherson CC: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , "Matthew Wilcox (Oracle)" , Andrew Morton , Paul Moore , James Morris , "Serge E. Hallyn" , , , , , , , , , , , , Chao Peng , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , Yu Zhang , Isaku Yamahata , Xu Yilun , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , "Liam Merwick" , Isaku Yamahata , "Kirill A . Shutemov" Subject: Re: [RFC PATCH v12 18/33] KVM: x86/mmu: Handle page fault for private memory Message-ID: Reply-To: Yan Zhao References: <20230914015531.1419405-1-seanjc@google.com> <20230914015531.1419405-19-seanjc@google.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SG3P274CA0022.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::34) To DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR11MB5966:EE_|LV3PR11MB8529:EE_ X-MS-Office365-Filtering-Correlation-Id: bef82a8b-4508-4e7d-100d-08dbb7e5cbca X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GZxw9XyHnvNfIg4V0xpSa90vulloD9GcHC30G1Pw4rK3AUp1NRWTn5y1psz16m6Xh0yVXYUN7RDdbZ+hoV4XCEVwXJScoqGutuzZ5YzCFx48WmwGwGaLybzjZQ07kNE3TggRY4kw3uNShmRsjCB6WcZXOt3CaxU81WtdmMMKk6y4Mu5pNPVIe+1erm2urVM1ZyPXkTSAgKRHNBjvWJcr3wXpWuWIgfRgNqzB7bP17BgSY2ZVU53gbUwIzw2Q1hqVHXeqOttx+VoHQnVaoLLJZ18qqL1/MzG37wwjWs9bBtb92t2UYNSiO/ovuqWUQ0spY6/Y7dpRpOhKjSmhzaYKI6gjO/bnLUCZb0je/vKQYSzyiMHyzx13aI6nNCehFizXVw+aEy4ukTVv+bdmi3vvPHPjEQx2KBvj2yuM6d1g4HtjEJWg2p59LcUfPLU2tgvexeUoy98urVFXh0BQldeoZBaAlFAS3Np1fV2TJFJn3k8ZIFSCM8SvresZfG+iSLzgqlLUhiiCxa8PG51n43VjT66WWfZCK5TXa1Urt9e/S1Z7UzE+g8k9nf0d+prm0p/Q X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR11MB5966.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39850400004)(396003)(136003)(346002)(366004)(186009)(1800799009)(451199024)(478600001)(66476007)(6916009)(54906003)(316002)(66946007)(66556008)(6506007)(26005)(6486002)(6512007)(6666004)(8936002)(8676002)(41300700001)(7416002)(7406005)(5660300002)(2906002)(4326008)(3450700001)(38100700002)(82960400001)(86362001)(83380400001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+QC4LkLcreg4ZiO8oKZsUBSIAB3DK50h5w8kyIS8oDZ5L6oRmkpsZ6uGBagA?= =?us-ascii?Q?Htgj33E49Bvr/fWfSYMLNIJVnzwWNRu6lt8KmuBxfHg1+OGAcpqUBOjSwMT9?= =?us-ascii?Q?J5RiEdOZHc+HD1vo3+N1STPQPVSqeXfiyvN9ePFhCmVtJN/mL7cd5TzxMnkd?= =?us-ascii?Q?BpE0AP7ZZqjlD3mRCE/JPBYbTIfkFsZnzCkihlUR3ohS4aFhrpL16/GB6N4/?= =?us-ascii?Q?JTs1x/MzR7WG9RmD+eA+2YbPK91cA1PJ/MpnODua/dBAYlkFmKgfcqo9udcN?= =?us-ascii?Q?S2YFarnz9ZRKzz2vVc+4wuOvjIiGpV3VHhwOgg6BBNAEzb7NaYiKwdBud/h4?= =?us-ascii?Q?NHnjDcbWl9ZYBlORS7KDRjtwraieDcGk+jTHeAaPrSTAwjI9pl2yxgkTExRp?= =?us-ascii?Q?J19vr6+qSFwMmmJcEfOBk+8b6ItzuF7gU3arbmmc0GUz/AwIKHZNbDaYgYRd?= =?us-ascii?Q?SwbjPV0NsOGHO0Oywr0W6nksTLg2wZeCrg/ic2Z+Up8S8s+oFSq2t/D0SE8J?= =?us-ascii?Q?XlUt2BpflFhLcO52+VfrYno66dvD9HvhwVobPSVH60xOpvdOrj0Z7Y+Rhqow?= =?us-ascii?Q?XZnOphonStxah3V7SXZEgDMSBT1V3dVgbOafMkvNgovXXZXSzRCWaonngOyl?= =?us-ascii?Q?mvy+zkmHC7No1lLPilhos7sTp2oC/31F3XNxUHS0KM5RfpyinTRqV0oarC4r?= =?us-ascii?Q?L+fzuIw8YRX6wkBFEbqzqnMqhypC34rbHUlC4XVBZFLGEgCQTVc2xPpBtHou?= =?us-ascii?Q?Wb/bTY0oqLzU/lUgsVkzIXZtv+z4KCBOrTpfQ7JEzbs9NBBP5Wz6qd5rH5uD?= =?us-ascii?Q?tpI7ESebV9jzaJBT8q8GCfykL9LoIDZawx+FGQij45abNHDZVYIxRdjMu8BX?= =?us-ascii?Q?vyVh8BFwVF1+F5QINLZU8jeSOnSdaA/ZRoz/2qyjlR0P419mqvewsNqSas8g?= =?us-ascii?Q?OEtEehOMirrIa46yE0JZmTznT/1UOoKAwWgP13gAiaHiX005TAR9zY+YYT6x?= =?us-ascii?Q?KUGnGU2Sp/Q1FrWJ26lIqHR71ieEPfVl+PdHnN3eRynxCYX5N22ieneMcFNS?= =?us-ascii?Q?sqq2Uba8I8TzECItrY9TKxKWA83oU1KlMihP8tjvI393y6ela0gzuolkO/zo?= =?us-ascii?Q?fJUe5dQfg5tCFwc33T9DZjNjzomBoFrMZw7pRI5iUFERScaGbvvqDpVBp8G3?= =?us-ascii?Q?LMbYSQPuE++1toe2Astb3QOAY4upFR5HVJxIermEr63HR3yjBlsLIe5XRsTq?= =?us-ascii?Q?ozqzFpdTvvcNkCewLJCg3QW4MRRzW73itY0RDaOtG6aQyke2r3Z1iie7HUYH?= =?us-ascii?Q?n8+kW5zTok+ClZm8Xk2Xx6bdlfxgDMVD+CDA2rtGzjXZVzjJzT0xiUN4PHWu?= =?us-ascii?Q?folYGbFtU8vB+oZ09iU/NHKy33Dc07am9LdgztlQMbZAgr1MixN6sJfin9PD?= =?us-ascii?Q?zSkEW/bCTtNLDQ4rWtvL1HIE2yVH6PN+PSCe2N2IiQiQz8/TGEQ04WY3ts3L?= =?us-ascii?Q?zxwGATpFJPp6fyd2szMQIcAeOeyojmMH4bQUYSCeYV4Ocu94qwOKprLdGqRj?= =?us-ascii?Q?Be9OHBH+r7cTaQwMZHWurNzQxfohkAnrJS6zucCj?= X-MS-Exchange-CrossTenant-Network-Message-Id: bef82a8b-4508-4e7d-100d-08dbb7e5cbca X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB5966.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2023 01:22:59.9211 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RGUJS95eCjqGyaHpC1kPLEmwQl1il+Ri5x/Lf061Du/Wdw2FNu22cj+zYJ/uHmeOZDW0s7WR0Jxjl66m0PIz0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR11MB8529 X-OriginatorOrg: intel.com X-Rspamd-Queue-Id: 31E341C000B X-Rspam-User: X-Stat-Signature: hmdfksq6ktyhqg8ybh7n74qza95gi17s X-Rspamd-Server: rspam01 X-HE-Tag: 1695000187-365977 X-HE-Meta: U2FsdGVkX1/YPlGLxUBlGb9QYRb6yjcNGARFSOyxIVTY6KmSdF1BJ158REQhjjzE3Y1YdSc+gi1vKuMw8A8/NvnOsfKwUs0DDnGhf6/2ohUQyQsYd7LMjrStbuYqDyHo8afDgBpILK86ufRDShuu/D9yrYtaFgjYsMJYI+bfWvatZa2HlRdlpHkiWXoYy2W4m4Tz311hVl4/Rx8Vi+jQ++fUpaYOm5v7Rd4oghaP7q5+/WCbb3Qh9cZFrZ7F2Y90k00YSe/g54KXO/ssp5i2n0+LVrd+pzZ0B2yZf1ReQPl7VhU9H2JbvhmLCzw5k2Lp1DJWJvH5OD9KpaBpIRcQh0mEDrHAqpCZ5R9+9ovr/l4WOsen/o5GdNcUXFSP55uQFhDmYSkqodYBQkx86sq0jSfGTPUrQvNNORtJYURITRGkDe5trCIVnpXI+uLTrSBm+pN7bT9vvGEbBiFzso3wrdHb18jywT6QqszxsrGvHmtSsJgBlZEu1uFg0HW/iY6s1Uak/k+zQTYThj6E6oWSJOZWbpDGWeGTn6KEiTSD0mGlJlzRbYzVBhEf4RTZ9X7geC+noLczOIhlR1zuhXAzXNt+88LOYPk5kC1GupmWPSJmqjGzZ/upCqAOFPfkt1+XyihT94b25eLI9AyKgmvRIZF5p1nDHxEilBVMXCG7fNlqvcopKqtLvPkeiqJ+B6gWrYDK95c7bftctOQeqm6pJLoGR3CuaCaCRQlGM+UTV8GGSN4tB/kIFNmzARvAG63fiQu39F8qMmcGgSmw2FjD8KWu4Mrh/AtvACeuQPLF7WsvMswo+6O/aDfmdM+Yi31HVAyK7ZpnhqJh68UFxoIDr4dtGaL6iiKti0vjT2JGn6EXIVjDzTtftAO/VhSrnATJDCQ9Sw2siBNpLAObJV0Fg3BbqrHZjTdt5x3ik/2QXzPf1DGmo/jiMjwHnBufBkEiTpFtnl6EzwynhiIQW6+ yZgk22ia fFTv5+unMSiMHg1XtYaY69oTudtXr1iGyIkuCci5h15GHat4hgUse+h0ygjm0Ck+LCuNxLultqAYDOkOuMQ+dS+PQB9bFdFhIJ7XNjUPdteoI7RUjuPoXSSS6TCM+7LoXlPNRuTB0gMPPCGamAlCoJq1tDVeJ0No3gpQHjt/WIRA/P5iVKl8b3Dt7Yx5Mj6oZW5KW0WkhvUKxQm1HMU3ReQpD8/xFpWKzsGn0SyiUELhkFKecyoupWmkEZvVWienqSeWkk0iyUKJrgiSKYGqetKMpRf2bFdmGgHxJU/eJiK/r0jJyk9U/XhGxS9dzOy5OMyCUxykMaC59VvnK7pgDm7DB7oMeTS5vuZDsWNdMvqYz320u5nQY82DIc/UvJ1YgAaqA1RYxhm/O9hwQKd1kSiddGfDk2TwMpVP78UxXtJMwQyzdc3mWp3ivuancxiejp4Ujvse5niMMwLw= 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: On Fri, Sep 15, 2023 at 07:26:16AM -0700, Sean Christopherson wrote: > On Fri, Sep 15, 2023, Yan Zhao wrote: > > On Wed, Sep 13, 2023 at 06:55:16PM -0700, Sean Christopherson wrote: > > .... > > > +static void kvm_mmu_prepare_memory_fault_exit(struct kvm_vcpu *vcpu, > > > + struct kvm_page_fault *fault) > > > +{ > > > + kvm_prepare_memory_fault_exit(vcpu, fault->gfn << PAGE_SHIFT, > > > + PAGE_SIZE, fault->write, fault->exec, > > > + fault->is_private); > > > +} > > > + > > > +static int kvm_faultin_pfn_private(struct kvm_vcpu *vcpu, > > > + struct kvm_page_fault *fault) > > > +{ > > > + int max_order, r; > > > + > > > + if (!kvm_slot_can_be_private(fault->slot)) { > > > + kvm_mmu_prepare_memory_fault_exit(vcpu, fault); > > > + return -EFAULT; > > > + } > > > + > > > + r = kvm_gmem_get_pfn(vcpu->kvm, fault->slot, fault->gfn, &fault->pfn, > > > + &max_order); > > > + if (r) { > > > + kvm_mmu_prepare_memory_fault_exit(vcpu, fault); > > > + return r; > > > + } > > > + > > > + fault->max_level = min(kvm_max_level_for_order(max_order), > > > + fault->max_level); > > > + fault->map_writable = !(fault->slot->flags & KVM_MEM_READONLY); > > > + > > > + return RET_PF_CONTINUE; > > > +} > > > + > > > static int __kvm_faultin_pfn(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault) > > > { > > > struct kvm_memory_slot *slot = fault->slot; > > > @@ -4293,6 +4356,14 @@ static int __kvm_faultin_pfn(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault > > > return RET_PF_EMULATE; > > > } > > > > > > + if (fault->is_private != kvm_mem_is_private(vcpu->kvm, fault->gfn)) { > > In patch 21, > > fault->is_private is set as: > > ".is_private = kvm_mem_is_private(vcpu->kvm, cr2_or_gpa >> PAGE_SHIFT)", > > then, the inequality here means memory attribute has been updated after > > last check. > > So, why an exit to user space for converting is required instead of a mere retry? > > > > Or, is it because how .is_private is assigned in patch 21 is subjected to change > > in future? > > This. Retrying on SNP or TDX would hang the guest. I suppose we could special Is this because if the guest access a page in private way (e.g. via private key in TDX), the returned page must be a private page? > case VMs where .is_private is derived from the memory attributes, but the > SW_PROTECTED_VM type is primary a development vehicle at this point. I'd like to > have it mimic SNP/TDX as much as possible; performance is a secondary concern. Ok. But this mimic is somewhat confusing as it may be problematic in below scenario, though sane guest should ensure no one is accessing a page before doing memory conversion. CPU 0 CPU 1 access GFN A in private way fault->is_private=true convert GFN A to shared set memory attribute of A to shared faultin, mismatch and exit set memory attribute of A to private vCPU access GFN A in shared way fault->is_private = true faultin, match and map a private PFN B vCPU accesses private PFN B in shared way > > E.g. userspace needs to be prepared for "spurious" exits due to races on SNP and > TDX, which this can theoretically exercise. Though the window is quite small so > I doubt that'll actually happen in practice; which of course also makes it less > important to retry instead of exiting.