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 47D97C282D1 for ; Thu, 6 Mar 2025 17:33:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 24869280002; Thu, 6 Mar 2025 12:33:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F83B280001; Thu, 6 Mar 2025 12:33:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 09989280002; Thu, 6 Mar 2025 12:33:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E0E8A280001 for ; Thu, 6 Mar 2025 12:33:25 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id C1E621A216A for ; Thu, 6 Mar 2025 17:33:26 +0000 (UTC) X-FDA: 83191822812.11.F404D23 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 3D5AF40006 for ; Thu, 6 Mar 2025 17:33:24 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=aCkB8+yT; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741282404; a=rsa-sha256; cv=none; b=Blj8FzwwsdctJfhl8MFtxamStOn0S9Ruqcy8PVI0vBr/POTSMBYlQ0I5XmcCAv2BD5ctAm fij3FPWeFEIeVc0IrGlM1fsY7ge3M3LF/68oFT8fg8GcYSO34MZyxGtG3oh4mRrqR5scdf i+Lc4i3W4FRsfyB+sgpGZBYyczvLGlc= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=aCkB8+yT; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741282404; 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=Hp0N3y6evf2yrWiBp62GjhkD2NyHCbEpRbyXBBPihTw=; b=4pm8JxKoab+YAwUbU/Ck8TNPIkcxxTwDB73434m4S1yns4bb4zQ7Cw7x8VgoayQwKpFzn9 bC58nF3tGA0263WUFStD1uBJNP/bues6iD8FzcmVcuVlSgMDqbAJOfuLs8m+JBATFQlaPU n+Jx0QRwMl1PRZdUBxlvIWaVBb6CclM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741282403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Hp0N3y6evf2yrWiBp62GjhkD2NyHCbEpRbyXBBPihTw=; b=aCkB8+yTrNndCul8pNoOfJNUvGbqBCBa5GAHpSVh7o28XWC6QnGqcDkg5OaNkl9bgYQhoC nyedf/DXLUK9SlSGNXyNkPvLZw+QyyyzoAs25yX7ZI9DS3k+ogndx39vFCSbj7eV3ZgrZO DbAMuvtEiyJGu8oEM3QOlFuftA+aV/k= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-681-4YrmxwSIMRSt8CaMnetpFQ-1; Thu, 06 Mar 2025 12:33:17 -0500 X-MC-Unique: 4YrmxwSIMRSt8CaMnetpFQ-1 X-Mimecast-MFC-AGG-ID: 4YrmxwSIMRSt8CaMnetpFQ_1741282397 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-6e8bc58e90dso17376326d6.3 for ; Thu, 06 Mar 2025 09:33:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741282397; x=1741887197; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Hp0N3y6evf2yrWiBp62GjhkD2NyHCbEpRbyXBBPihTw=; b=QDgwK7H2+G9KWWuje5S43hOvLSBPvAmM+YLK4/mrEMKddN3sgNEY4UtdaoubTPwaWx watFFss71+p/eA2Sg2KBdBPyk7KrMI5jOpa+TMD8N+WQD4NyWae59KNLsw8vmhkfYyuy TmCo6+w0DfgkT2kDIjgLdiFlsjmb/P8t6MiHxEr0aSuOOsLu46+1xOV4h5Ygd2ox0M3a hSXqx14gj9GJaFf7PbVPk4axT+C/YWipXKrOOQQ9nz1FuyGL5K3ODZMiazLApPLPb6qY Dbpk6tqQfcRkgyGRxoXyrX5GK6rLAvUP4XUMlHI87mMNa6yqjoJ0P0Xq2zOsuUNYdLpC k7Jg== X-Forwarded-Encrypted: i=1; AJvYcCVwCdrIiS2ECtWzFGUcwdPUnL0ShACcvCk4IA0v8X8jCAXshvuBfPd235owKB+wJGY7gIHJSuht/Q==@kvack.org X-Gm-Message-State: AOJu0YzyoPoPHKjVRDz/+DoiONKZy6iClSoG6EnMGiCX8tJgOjY9ndI2 W01dFt9wIyqfHZGO/4mzHuP+o62Ln70IyGWjh9GBshgyCxd97C+WQDinmLjlVcf/E43og7FkTqe GV/h2jLvwId4GxsSAWeTX4PPfdV6TiFFhxAeV/Xl8hKFR6O3s X-Gm-Gg: ASbGnct4XdsZqulnytlMDeuXC2A3b3cSIe7+QdPzT2zI60tAjsxYnEzeV+diQnQd4dT wfG96RWV2Ljm6vx2WGXmWHI6EZEyRZ/ErYtcRywO1HlsFrCAW4up/gPtpJR1MGw1vn1WuXqKkER fYn0dZJhWrFHkLkZ8NfkHC0qztW77w85wzc9r8tCaZh2djKL0FC/XdcvX6bjaL5AuZr8wQYPivM bEMEJ8/ditXf1eCA3Q4rY7LbApTwDPoGqEc0UA3osOlY+hd/ZMTno//APIupTpaQinei9w3qvx0 0DXKvPY= X-Received: by 2002:ad4:5dcb:0:b0:6d3:f1ff:f8d6 with SMTP id 6a1803df08f44-6e8e6dd4013mr91007336d6.40.1741282397127; Thu, 06 Mar 2025 09:33:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IFXGTY2TZuxc/5qoe6G+TjInYEiN1/MY4M3Q3Wi5nBQl7XJwnFgOewPjxKsSfPGwYlCfIdGig== X-Received: by 2002:ad4:5dcb:0:b0:6d3:f1ff:f8d6 with SMTP id 6a1803df08f44-6e8e6dd4013mr91007016d6.40.1741282396798; Thu, 06 Mar 2025 09:33:16 -0800 (PST) Received: from x1.local ([85.131.185.92]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6e8f70a44b8sm9395206d6.59.2025.03.06.09.33.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Mar 2025 09:33:15 -0800 (PST) Date: Thu, 6 Mar 2025 12:33:12 -0500 From: Peter Xu To: Ackerley Tng Cc: tabba@google.com, quic_eberman@quicinc.com, roypat@amazon.co.uk, jgg@nvidia.com, david@redhat.com, rientjes@google.com, fvdl@google.com, jthoughton@google.com, seanjc@google.com, pbonzini@redhat.com, zhiquan1.li@intel.com, fan.du@intel.com, jun.miao@intel.com, isaku.yamahata@intel.com, muchun.song@linux.dev, mike.kravetz@oracle.com, erdemaktas@google.com, vannapurve@google.com, qperret@google.com, jhubbard@nvidia.com, willy@infradead.org, shuah@kernel.org, brauner@kernel.org, bfoster@redhat.com, kent.overstreet@linux.dev, pvorel@suse.cz, rppt@kernel.org, richard.weiyang@gmail.com, anup@brainfault.org, haibo1.xu@intel.com, ajones@ventanamicro.com, vkuznets@redhat.com, maciej.wieczor-retman@intel.com, pgonda@google.com, oliver.upton@linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-fsdevel@kvack.org Subject: Re: [RFC PATCH 14/39] KVM: guest_memfd: hugetlb: initialization and cleanup Message-ID: References: <3fec11d8a007505405eadcf2b3e10ec9051cf6bf.1726009989.git.ackerleytng@google.com> MIME-Version: 1.0 In-Reply-To: <3fec11d8a007505405eadcf2b3e10ec9051cf6bf.1726009989.git.ackerleytng@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: hsKlQkIAEUFvziJkGwJTfjTXteQKAXsbfV7R6gTjfOY_1741282397 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 3D5AF40006 X-Stat-Signature: pzho1d35qgneabi4p8gjiby3r1tqqn8d X-Rspam-User: X-HE-Tag: 1741282404-39771 X-HE-Meta: U2FsdGVkX1+j0vMTZGXZ/lZnbvbCFlWy04ZfE7DVGAkcP/ZJpcms7BLj3kQ9GsuFYkL1aWg85uU4rpLCYbn2pl+tIME0HV9vFZnwIq4CgX7XfetHqTuNfbJDsBsJJdHeqWuatN4BPQd/SOVYPf/DZefto+BKvcmNAnlKrqed47gxWx+p0rj0DdZXMEC466nuIE4OaiBgDc9BIyA4D4jsGj0Jm1wwkBDhDcc5HBJ/ZmYkCkIbfGFH7E8WiKW2y0taMJJK6iwMQzoaHSdu1uEd9b7qh+Gy6fpzAloJpD7EN72IboeKji8LQ2jj/dx0BXdbhcbygUwGZpU017KKcZup3jvSGZ88lDWWVWInbViWhh/NpUMEvA4rRV+3IRuFvq6AZoZnC7hGMurYLVflf/W2ErMppvRF9DDapTWqg1ZLZkQTX/z/PQtrDV7rqQOqKDYgs1IEqatx7VwM8p2JbIBC5+RA5gDNGi9Lgd3bHgy8P0P+j0gJenVpG3NTgygZPvrSvmdypahpo4/92UghRK9GJ7nY98f8r18DZFUdkxXFvkcOVvJR1/Bz392UX3kODJoeXPC2xSqvasD+Bii5OEnW1RV6thnrSF6WPT0wOi+ZxVmh2vtVwlZ3nUTIt7CAQeRY/PYti+qZsho+jFA4/QZcRrGqgOqfJyvSECIKuP4MKy5CUqV2N12sJKdy0nPo+/vfvHi26Ee84zZZIdKd/dI73EpysmLKLVsEleFu67PNxAR8rhEloUXROGmLSxr40ixrpKAaPmA6DVBQvpKT9EMt8jd0j5DCvdOjUJXjhqdbF/QOcoxIRYVlYVqIkI30OcVOQXhrvCerfP1HwF9GVjfbbhhvYJnw34optQkE9aKi9msZHVdBgditgW+rpP8uW41hLmIKK5uM0d7RXrtBNm/SerJNIxZlVLBtvL4RwYviQ5y6sG5SUM67D/+f9SPQxSz3vwX3CI0wtpijhPL9EBs Kalys+H5 A2Pyg+70SaZeS/ryTFy03fevLTq7i0cwtcKiHVdlszap7y98mWl2KiXaiSWZabMu2P68RFvMgHJLyQIPGseK1XMSlOGg85cLsrc0sd+920DLUSo3apLSAHHm9tTYDCz2zi8dirfxMoWwq93gH6/DKrgnp8BT70jchMlwCLIeEklPR9lSOlJUpggMi8AMmoc0WeNicw+iEExVMa9VMlw4JsdOWvT0GY+lue8h+4Sr9i0Ni5KB8hwsrlR87rxci/t5xSgqwBN60y9OH7PD+h+SlM0ZZIjgQ/FFSHZM1c5v/cy6op0jouMQg4uLtCC1o6zFIo2qjV7SLPFQrgoPb0bQzClyCxFKPSLT4FsIUeh6clCvr9rF4sEPHBB1b5AtENDnKG8UelZ/fvz43DhwusUfPfcpRnXeTvUGg7v80bylh+NgaOayqbPQMrXztKQhPLPg5V8NA 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:45PM +0000, Ackerley Tng wrote: > +static int kvm_gmem_hugetlb_filemap_remove_folios(struct address_space *mapping, > + struct hstate *h, > + loff_t lstart, loff_t lend) > +{ > + const pgoff_t end = lend >> PAGE_SHIFT; > + pgoff_t next = lstart >> PAGE_SHIFT; > + struct folio_batch fbatch; > + int num_freed = 0; > + > + folio_batch_init(&fbatch); > + while (filemap_get_folios(mapping, &next, end - 1, &fbatch)) { > + int i; > + for (i = 0; i < folio_batch_count(&fbatch); ++i) { > + struct folio *folio; > + pgoff_t hindex; > + u32 hash; > + > + folio = fbatch.folios[i]; > + hindex = folio->index >> huge_page_order(h); > + hash = hugetlb_fault_mutex_hash(mapping, hindex); > + > + mutex_lock(&hugetlb_fault_mutex_table[hash]); I'm debugging some issue and this caught my attention. IIUC we need to unmap the last time here with the fault mutex, right? Something like: unmap_mapping_range(mapping, lstart, lend, 0); Otherwise I don't know what protects a concurrent fault from happening when removing the folio from the page cache simultaneously. Could refer to remove_inode_single_folio() for hugetlbfs. For generic folios, it normally needs the folio lock when unmap, iiuc, but here the mutex should be fine. So far, even with the line added, my issue still didn't yet go away. However I figured I should raise this up here anyway at least as a pure question. > + kvm_gmem_hugetlb_filemap_remove_folio(folio); > + mutex_unlock(&hugetlb_fault_mutex_table[hash]); > + > + num_freed++; > + } > + folio_batch_release(&fbatch); > + cond_resched(); > + } > + > + return num_freed; > +} -- Peter Xu