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 4D27CFC6172 for ; Fri, 13 Sep 2024 22:26:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 787ED6B009B; Fri, 13 Sep 2024 18:26:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 737A36B009D; Fri, 13 Sep 2024 18:26:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D80F6B009E; Fri, 13 Sep 2024 18:26:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 401FC6B009B for ; Fri, 13 Sep 2024 18:26:56 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B1581120C9E for ; Fri, 13 Sep 2024 22:26:55 +0000 (UTC) X-FDA: 82561151190.04.023F87C Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by imf06.hostedemail.com (Postfix) with ESMTP id 4EF92180004 for ; Fri, 13 Sep 2024 22:26:53 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b=L7ZhIj6h; dmarc=pass (policy=none) header.from=quicinc.com; spf=pass (imf06.hostedemail.com: domain of quic_eberman@quicinc.com designates 205.220.180.131 as permitted sender) smtp.mailfrom=quic_eberman@quicinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726266335; a=rsa-sha256; cv=none; b=o/2q4eIaY3MdqLgrgyS1WUgsrrr56FVI2eg0jMijo0/4uCeEiUDK5BlkNkt3B7wpMg/Tl5 cfqFK9pQz93PHnZjamNzSDmVEu46NdIVsRZbVWCWdnwutpuxU47fIsbukWcQSVuMHUmur+ uBqlYHbIFuAa9fahzIcLwRv4NGfWY30= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b=L7ZhIj6h; dmarc=pass (policy=none) header.from=quicinc.com; spf=pass (imf06.hostedemail.com: domain of quic_eberman@quicinc.com designates 205.220.180.131 as permitted sender) smtp.mailfrom=quic_eberman@quicinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726266335; 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=Uk9R8EworvfXJgI1loKuB2zSuA6mO6IdvNS7+IBXEtQ=; b=EK7YScUC8ZbEp3R9ATsQEPmhl9lO1SiC/clLQFZlE98ahssHaQcFI+ixgDqHNANFS6wjYX eZknR8nTbS6hGfGybzPT7qyCOmWudtSXEsiJeGO02lHm+R+3glihwjjlui/RJ48tEKozlE 6L2mUbDAZ6iz/xkqNaXXrqf9luL6Ulg= Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48DAFUlh004967; Fri, 13 Sep 2024 22:26:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=qcppdkim1; bh=Uk9R8EworvfXJgI1loKuB2zS uA6mO6IdvNS7+IBXEtQ=; b=L7ZhIj6ho9aJldsQXLc9u5ttXOCfJlpuKJjAzmRw I5gkLv982ScsetX66eNRkcauRY/QSi3CxDwu+Plx+Y5fe8n4xoZtAP+Gxe0Wyjfa 1XWmqG8u7Oqhv5kbwvEBcuxwJpQ/LRBKLe4YNCmZCWQRlNATpeTvLlsF06wl/QYL CHIu8TZ7R0JhghLBzlDCcvxsHMw7XQ6sSuUWE4As0dIf9XQnO9x0yl6Hn5kl0hFl 2ogTO9pigZ+47MOcn9GDPuP3kwal0wRQuf5AJL5F0W/fQNFnxy6hMaa1yCN85SEc 3v135b/aILqEd84l6HNnq6H/+JUdS7SMJtycG0f4KPKiTw== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 41kvma5p3m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 13 Sep 2024 22:26:33 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 48DMQVHO017065 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 13 Sep 2024 22:26:31 GMT Received: from hu-eberman-lv.qualcomm.com (10.49.16.6) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Fri, 13 Sep 2024 15:26:30 -0700 Date: Fri, 13 Sep 2024 15:26:30 -0700 From: Elliot Berman To: Ackerley Tng CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH 15/39] KVM: guest_memfd: hugetlb: allocate and truncate from hugetlb Message-ID: <20240913151802822-0700.eberman@hu-eberman-lv.qualcomm.com> References: <768488c67540aa18c200d7ee16e75a3a087022d4.1726009989.git.ackerleytng@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <768488c67540aa18c200d7ee16e75a3a087022d4.1726009989.git.ackerleytng@google.com> X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: suaMa3NZIFw7PT50Hox3kCz63QqfnhRF X-Proofpoint-GUID: suaMa3NZIFw7PT50Hox3kCz63QqfnhRF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 priorityscore=1501 adultscore=0 mlxscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2408220000 definitions=main-2409130159 X-Rspamd-Queue-Id: 4EF92180004 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5hdog31xtuwkjnbnwp73jenx8gpym33m X-HE-Tag: 1726266413-920417 X-HE-Meta: U2FsdGVkX1+QyYeQrNvr9AIkmmLlulnf7MaXa0TOfM77A1Lr2YHn6mL/5ANI3FvMwIBO5buwTemvPTqZhDmhXzn68G22ouTsV4pqwPK+iwnR/EHBTQ1A8ypndRK2tJrVAPZI7KyVxpW/jKBYAd2bM5aIeRJpfiws1q5wesU81YLlJXeDD1CBOyzZylTWd49XbYo0wVxO8gJu83dYwk64euHyjIbJue0iH8QmxJBsiCSxK15Gu1TDfmyfv5a67FdzRGVRGdmVhZT4uypfXoNBvIOhDOk3k2B4trAD0C1uVH8AtQmB7F2/P1vzpodkHAp2urAxaiDqBT99R4L/viiCWyPjrUhthvfY+AJP+kpM9TVv0vsCSYzQAqzqMNNJJZJmWzIkyydY3w6kvsLuf8Pay9N5Q4isTPt9SybQGpiE6ibHClG4celC9Eu04h34fZpXkB4/q9+RXfuMq+FAsya8tNlwutKnbwer1EQ3yTKgWCd4ZCRrBqQmhdDgiYYEzXH1y1k7AqIsezPrvhNe+Na0/XbN0HR5YU6VPXl3WnO3baNGL4Xro5HY6IWyMqJBdrtBhy4TRRTsU2AY3HJaqo1rDOsNG76z8c6YKjFyXAiWWKoRdNuDRbphJ8kzSGsMsG96ngWtQ4jtKvC/sLBkvi0Q5VO/zYgtSZf6zuVYexohfg38HqlsD7h0lCFmCkf2ZTa/jXN29RKjE8Zf3fIFnkQ1Qz+K4Idm3vqz54vYeFikSRXA3PVVSkjVkkfzMdFnX+ndwFbVtyHBw5hIXjpTnD5Guv6mQ6quIMrr9X8Hp8jFSiSP8kSCwWn496IPIC6h6oeOn+8wqSvzLk6Ce1rnICj+Qj3/evcbn6ismmm/62s18qreweKAFG03TapoHjeHKqULOBvwL9ogK2VGdEmDmQzBViWeR/t4JDuG+JGbH5IXDmPep+4vXFkeVVns2vG9/HDj7VLJlUAjm0zkWG4r+yV S0izbZCD 0pNcrDenerb8Bbi6hUPAhKZuDxu+2IgYmJCQ0BNbtk8vanHUnPXRbypxIi7aD3v8T/Afzwn0HmshTwGS1LWgroCxa2AWfxXdLqzVyL9VvutPYkU1a+e73oBzUwbmDbsK8G1ggzm7549AW70TAqhXCSXfapD039bduKsbKxZ/Sb9Tkvw7F5RzD2Gpe/rDsTOXMqjJhvy7lSxTiBFAjdDXs+pgMFhdj7uoVuK2dDuZ5qCaas1/VDgFg4gBl6rHihmjiu0KaYjsO8MRspH2CWS+DGrzZn8UzVIj4gf3O6TX63AOanVf5N/SpYHSoxvyk0OG82gTRXwNxfYmLOPjAgOtV8Ohghl47941RHV4KTdb+xDkG0j7RA3frC6g4E157VEjPoD6TBBoMX4uP6fOjtaMXz7JFvA== 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, Sep 10, 2024 at 11:43:46PM +0000, Ackerley Tng wrote: > If HugeTLB is requested at guest_memfd creation time, HugeTLB pages > will be used to back guest_memfd. > > Signed-off-by: Ackerley Tng > --- > virt/kvm/guest_memfd.c | 252 ++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 239 insertions(+), 13 deletions(-) > > diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c > index 31e1115273e1..2e6f12e2bac8 100644 > --- a/virt/kvm/guest_memfd.c > +++ b/virt/kvm/guest_memfd.c > @@ -8,6 +8,8 @@ > #include > #include > #include > +#include > +#include > > #include "kvm_mm.h" > > @@ -29,6 +31,13 @@ static struct kvm_gmem_hugetlb *kvm_gmem_hgmem(struct inode *inode) > return inode->i_mapping->i_private_data; > } > > +static bool is_kvm_gmem_hugetlb(struct inode *inode) > +{ > + u64 flags = (u64)inode->i_private; > + > + return flags & KVM_GUEST_MEMFD_HUGETLB; > +} > + > /** > * folio_file_pfn - like folio_file_page, but return a pfn. > * @folio: The folio which contains this index. > @@ -58,6 +67,9 @@ static int __kvm_gmem_prepare_folio(struct kvm *kvm, struct kvm_memory_slot *slo > return 0; > } > > +/** > + * Use the uptodate flag to indicate that the folio is prepared for KVM's usage. > + */ > static inline void kvm_gmem_mark_prepared(struct folio *folio) > { > folio_mark_uptodate(folio); > @@ -72,13 +84,18 @@ static inline void kvm_gmem_mark_prepared(struct folio *folio) > static int kvm_gmem_prepare_folio(struct kvm *kvm, struct kvm_memory_slot *slot, > gfn_t gfn, struct folio *folio) > { > - unsigned long nr_pages, i; > pgoff_t index; > int r; > > - nr_pages = folio_nr_pages(folio); > - for (i = 0; i < nr_pages; i++) > - clear_highpage(folio_page(folio, i)); > + if (folio_test_hugetlb(folio)) { > + folio_zero_user(folio, folio->index << PAGE_SHIFT); Is (folio->index << PAGE_SHIFT) the right address hint to provide? I don't think we can say the folio will be mapped at this address since this value is an offset into the file. In most cases, I believe it won't be mapped anywhere since we just allocated it. Thanks, Elliot