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 4FDAAC83F1B for ; Wed, 16 Jul 2025 13:04:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D36FF6B00A6; Wed, 16 Jul 2025 09:04:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE7426B00A7; Wed, 16 Jul 2025 09:04:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD6556B00AA; Wed, 16 Jul 2025 09:04:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A87846B00A6 for ; Wed, 16 Jul 2025 09:04:19 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E7F92160419 for ; Wed, 16 Jul 2025 13:04:18 +0000 (UTC) X-FDA: 83670146196.27.1D49AE5 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf22.hostedemail.com (Postfix) with ESMTP id 0FC55C0011 for ; Wed, 16 Jul 2025 13:04:16 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=naLyUGI8; spf=pass (imf22.hostedemail.com: domain of vannapurve@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=vannapurve@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752671057; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LLAVZJBXA44yj6VwhHi0/bIpO+wiOkRvcyjNUHb7iac=; b=I5kHVDKmBwUDilgKcMvbCpm6/MTAqq4Dv+qhlwEr3Vsalih5mJlrK9uOCiiLVh9Mae6jpw uKeCf3alpGYjAAPIgInwRRaLTWCjVyikubBEBAPtiz1tJTmYXfqxm7Ep0A/05lJwk6NXgR Dx1jPbXd6JnjsX14xSY2hnz8TGBgHQQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752671057; a=rsa-sha256; cv=none; b=nwZMn3+DwDquz1qwCahXrPd9SdzogyyvbsUN5HVKFu5JQa+117ROMTWmtO1//RQd7OYdMr Elk9JtvWUOS8n4hlf4WiW9dCDuPxCaTdaTnABOGID2idmOqs2Fs0NgSPdfrRtuNTZ0ztK/ H1k56jT6jfPXDmeTIJWK5ZM2usEgWIw= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=naLyUGI8; spf=pass (imf22.hostedemail.com: domain of vannapurve@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=vannapurve@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-235e389599fso228325ad.0 for ; Wed, 16 Jul 2025 06:04:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1752671056; x=1753275856; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=LLAVZJBXA44yj6VwhHi0/bIpO+wiOkRvcyjNUHb7iac=; b=naLyUGI8s6vu6IExRQZYxfgnLKBG4q6pl5ZxPLAh14TA7tPu/WALRnnD4K9x9LBBx+ 7NFQZhzWj5lnsZh8yc4u4XrlXnGNY720U8XHKpQ+oNq4U1yBdaAtW+F/xb1qmcAwSHWH q31SbuOxfxWauE5LVnxKNo1ePT6B1mxMSnl7LM8tF3Ig+oTYNgfcJF91NgDMpv6s+1gF 2K1nWwUqJnDaKP5aeOxW2fcBCnHcpv8L03RI5qxiQfUxSKPSHIgmljWJfYU6JkSKwETD Ru1HCqZ82JgTSpR9gQQ9GElm4lPjJ3i4bWVd95dbhYgIx1NruH+HzE6dspF0ytIaCLie leTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752671056; x=1753275856; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LLAVZJBXA44yj6VwhHi0/bIpO+wiOkRvcyjNUHb7iac=; b=pweBU/dY3XmGMAZU7AxYfun75yPOcgjpniOfYOGdNtXLtmMyl5MTb+6ImYX/F0sSic L3DODZawzR3q81Uh9i3jf0uOnc2+aGslXIJ4zAsjjXyghn5l6nZnS0gzNn8rEXA4mcEv 1fn/W1bskR/Uuq3E1SwA6NCG8OYGIPvMTtiP25fW9XfgSItFYbU0uAs8+lLNw7nPB1Y6 Igernz6QrxGv48pvqtgEBcRR+BiZ078TC2zDWp0gA0yJoQpqgsUpB8gzg9dhIHeuwYGj zJElSgHQkZwfR18Wm6HKCMjsvqTr8YGVOYACELqnA0BgLuGBOZGNO/A2Vknq1cx+wRi0 qwXw== X-Forwarded-Encrypted: i=1; AJvYcCUeOWgTEMpW0GE1mm7c6UIidzZljgEiZ8aR7CPT2OgL2zdlqYyAi+V4QzSe8Y2W5nUFlh8x2i2EUw==@kvack.org X-Gm-Message-State: AOJu0Yz/9bldSOdpQsTWVsYisk9czalbfK6Ux7zOe5BDSXxvuivchN0q HHEzNavFjO4odFFa/Sk/JJNQcOVXg0NkMNTtC6uJ13Oa/N7CJl0SxUX0o1O2C3FmNFhm0Rat47o EutHnBSE3n9IqOq6cFS96huYeNpgRgKdkYBALy/FS X-Gm-Gg: ASbGncuZd0ozlzN7RDvpy/gCqKhZtklkT/k8FRn/NiQ/EKtZpkG0s4vLw2hxBQPVg4s Qr2ifHMbUMWfTeJNht5zVlW6Mr8OdmytDukBDGBZ9tIZe2xXMpGh14+9XWYgmaLJhS3bqsnaN2s uuGIDBvugRxVJtJK4c8rUisCRwFbUQ+RtfwzuLxSv9eIjMEKIpaeELLWUUEL5Dm7dCQWQ0iE0nM IeLE8hfM5CBFIkS1Qa5TLPE/fxm1IVZUreRVOyI X-Google-Smtp-Source: AGHT+IFbLmFCf84DLgEZTrPnlX/z0jXT7rSCFSdJKQ9nbT3+zWzNNW5RpYO5vzltezW/SP2qsLvtJkBHsbSo1JZDMwI= X-Received: by 2002:a17:902:f644:b0:234:a734:4ab9 with SMTP id d9443c01a7336-23e2644e3e6mr2258645ad.20.1752671055278; Wed, 16 Jul 2025 06:04:15 -0700 (PDT) MIME-Version: 1.0 References: <20250613005400.3694904-1-michael.roth@amd.com> <20250613005400.3694904-4-michael.roth@amd.com> <20250715224825.gfeo5jdqjlvtn66l@amd.com> In-Reply-To: <20250715224825.gfeo5jdqjlvtn66l@amd.com> From: Vishal Annapurve Date: Wed, 16 Jul 2025 06:04:03 -0700 X-Gm-Features: Ac12FXw7GwQzMGCZjvuciUapFIHKHiW0DMmU5GVoQ0ZpnRjLUR7h_Expq8imx0o Message-ID: Subject: Re: [PATCH RFC v1 3/5] KVM: guest_memfd: Call arch invalidation hooks when converting to shared To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, david@redhat.com, tabba@google.com, ackerleytng@google.com, ira.weiny@intel.com, thomas.lendacky@amd.com, pbonzini@redhat.com, seanjc@google.com, vbabka@suse.cz, joro@8bytes.org, pratikrajesh.sampat@amd.com, liam.merwick@oracle.com, yan.y.zhao@intel.com, aik@amd.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 0FC55C0011 X-Stat-Signature: kcqrwo7dk9ngk4yfsixdxsg7azofpwpn X-Rspam-User: X-HE-Tag: 1752671056-742768 X-HE-Meta: U2FsdGVkX19W0gq8PSM4ngrKpqa41ojr9/gfzCy8WxEDOvMx46GXwLFcGLSv51qmna4QUE6kLiRuIGD4aXpiCpMijtcsnCz3+rr+oxeo7L2izQHPM19cHcc2XA6wnIW+nSx9z2LCgukgh5IZblWtVuyPemDsioiaAaBij4615Nj5WbjMsZ/GbGCkGereUMqiuNRp2bBXYA0llyeJ4H4FQzlPnE+XXLXAUGDtTrmIS9nW/jIyn+GTYIbj+lqttjWV4FaihTlg5bzreDU9Ane0GRqdsWt2NHx86LLUMg02DEaUeliYvJRm8hHgu72DjzNGdMDlaa5FtWxGo6LjWtx0EIDDW+LCM7JK+05iN3v73hnauQm8om4clMqa6kr+ouXXLuBvYgNSGQ7SSJPEl6Y99UvcGTssszN1K+vhapmbferctjpU+QLd+iVL+92ce04JQHsgavy4THLjF1bMYmtaIkav1wjo4zg2I26n6Doxemqw/+iuIH5t1y4Z32w6eSxr8nCbv/k3/UaX6TGGUIcq5A7eSC9Po8bf9pCbjRLYmc/kgy9mQxnuWHOs+SrGplBie+/9De3TMqxsJLk6IwNnDyO2R4JTHjMuvlfVRJiRMluRT0tmxRiE09pSs+AV/Po5olKh4r5NmFBP5uK+AJIkqJIICl+uk0U4NloGOoR2PJfkCpG4YZcWMK2XhmOgV5ZxmL6V2KmdtalVSQkQeVXYsQ8tbZadk5268VMeqQ+Xt0fv3zKBPvQWfxCihJKRbk6v6nv8wXYeqBR9diwBbusJSD7qtOxhs2COK/Hg7c/dXfyD1wms3sJBvFKDdtVwQDRTbbiNz4ofKmGZkE1aLk6ycj4K5msbrRksOZAWomVnH8e2pv8z5JWYQiabK67OpVuB5Waihc8RYzAAZXIetTGch6seClk93pEAVyvJLiakr6k73ry+0DZwJmqxoujLM/EeHu6LNDk3JOv0HOInXZC UXu1XszH xPw4dkJiLNVnf8H4vVGGQ3i96I+EKEd151Q8xpRoIWZbzw+FhYi0kvq582WY9pqyXyir2GwUvTdptoq39dQ+JkZqQQyfC9nu7UWvnJuSV1IwE6JMNYAYmc8sbvjO66dpUMykSZWakPzZoQsGZfEgaMqR1DI4kyUWZBr+JNY2R1diWojFwJAPFB107UaCA5RLh8E890E4MzRGKRegRHyQgDtoj5TYoWrYhTUbZ 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 Tue, Jul 15, 2025 at 3:56=E2=80=AFPM Michael Roth = wrote: > > > diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c > > > index b77cdccd340e..f27e1f3962bb 100644 > > > --- a/virt/kvm/guest_memfd.c > > > +++ b/virt/kvm/guest_memfd.c > > > @@ -203,6 +203,28 @@ static int kvm_gmem_shareability_apply(struct in= ode *inode, > > > struct maple_tree *mt; > > > > > > mt =3D &kvm_gmem_private(inode)->shareability; > > > + > > > + /* > > > + * If a folio has been allocated then it was possibly in a pr= ivate > > > + * state prior to conversion. Ensure arch invalidations are i= ssued > > > + * to return the folio to a normal/shared state as defined by= the > > > + * architecture before tracking it as shared in gmem. > > > + */ > > > + if (m =3D=3D SHAREABILITY_ALL) { > > > + pgoff_t idx; > > > + > > > + for (idx =3D work->start; idx < work->start + work->n= r_pages; idx++) { > > > > It is redundant to enter this loop for VM variants that don't need > > this loop e.g. for pKVM/TDX. I think KVM can dictate a set of rules > > (based on VM type) that guest_memfd will follow for memory management > > when it's created, e.g. something like: > > 1) needs pfn invalidation > > 2) needs zeroing on shared faults > > 3) needs zeroing on allocation > > Makes sense. Maybe internal/reserved GUEST_MEMFD_FLAG_*'s that can be pas= sed > to kvm_gmem_create()? Yeah, a set of internal flags in addition to what is passed by user space looks good to me. i.e. Something like: -int kvm_gmem_create(struct kvm *kvm, struct kvm_create_guest_memfd *args) +int kvm_gmem_create(struct kvm *kvm, struct kvm_create_guest_memfd *args, u64 kvm_flags) > > -Mike