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 442F1C2D0CD for ; Wed, 21 May 2025 05:23:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6853B6B008A; Wed, 21 May 2025 01:23:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6364D6B008C; Wed, 21 May 2025 01:23:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 54C376B0092; Wed, 21 May 2025 01:23:28 -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 3ACE16B008A for ; Wed, 21 May 2025 01:23:28 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D38B457880 for ; Wed, 21 May 2025 05:23:27 +0000 (UTC) X-FDA: 83465772054.18.72C25A3 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) by imf13.hostedemail.com (Postfix) with ESMTP id 823B420003 for ; Wed, 21 May 2025 05:23:25 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Vo5IKfLx; spf=pass (imf13.hostedemail.com: domain of vivek.kasireddy@intel.com designates 198.175.65.19 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747805006; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=+ujlicCYw83li2J0kCRAMVXW3OSSfkTNXiW8ySiVHb8=; b=g+VArhkU1OloE/8/Wu4IIpoBD1b5BSPUufgSxzwL/bsoun6q6DAndV7MyZTORaqh1sGo67 fcU5Fk4pDcu1GMdAJyOeGt/LzuW7cGmxd6MDMB67X1Mmvl4hHjfq9onoG3glJX5bbmdIJU Lwxjz//CJQYqBmhSToDEuTTBgXPN7XA= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Vo5IKfLx; spf=pass (imf13.hostedemail.com: domain of vivek.kasireddy@intel.com designates 198.175.65.19 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747805006; a=rsa-sha256; cv=none; b=u7/GGwfJ7lUuV51Rz1kDwGF2+NjXwVGKshYtMOGB8g2LdvGBlhyIazWpsV3Eq7Sr8UOU1s LlZYKAU21uzAPUIKDrmUuDSVKYgJUZjp73Q5Na49Rg8CzeeB78Ml58kMzsQNp+kYBBINMT FgrofZd0PkT14sfZ/K3cg0yzXlS6wQE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1747805006; x=1779341006; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=5D4JFwFWlsVSItofs+vUC95lY3B/S1pTOTOoHAxgPXI=; b=Vo5IKfLxpGC4Vs0kqLAuSZStsJBVgtSiKYA/+bTfugTher0mlrxOF+uk oqeOnxi5revWgsj1CwOPQQ2h1ehZwyj0oJE5pBePfVaDmKWvRL/Qc5D0W WKGgwrxfEax31F6nT5Lmvin0AQfMh4MjZ4ujB95Wt+NnOAREcpP13lqse 47NL4WLJ0IJbbk9Xa2fzTUH4fMyP9qM2YZu6DQK21zNM/3zsVrkgSupiF ZqDqmZgq2GXnv5l9Yq/G/+v7skYzTScqQrEsm2jHOC8G7iXVjshtJawKP Mcj3xWpOFoJgtCs0kaYl7nAHPWoixdX60bR4PrlBxVAAwGtZN7kPr5KF5 Q==; X-CSE-ConnectionGUID: 2EVKoXIiRjCllKDFidmLDQ== X-CSE-MsgGUID: 6TMimhbQRguK/GF0F7kndg== X-IronPort-AV: E=McAfee;i="6700,10204,11439"; a="49638991" X-IronPort-AV: E=Sophos;i="6.15,303,1739865600"; d="scan'208";a="49638991" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2025 22:23:24 -0700 X-CSE-ConnectionGUID: W1aGyqDzRBaCz8WzOF+5xQ== X-CSE-MsgGUID: yor5D6xMTuCBwDI4bLWJtw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,303,1739865600"; d="scan'208";a="163188660" Received: from vkasired-desk2.fm.intel.com ([10.105.128.132]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2025 22:23:23 -0700 From: Vivek Kasireddy To: dri-devel@lists.freedesktop.org, linux-mm@kvack.org Cc: Vivek Kasireddy , Gerd Hoffmann , Steve Sistare , Muchun Song , David Hildenbrand , Andrew Morton Subject: [PATCH v3 0/3] mm/memfd: Reserve hugetlb folios before allocation Date: Tue, 20 May 2025 22:19:34 -0700 Message-ID: <20250521052119.1105530-1-vivek.kasireddy@intel.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 823B420003 X-Rspamd-Server: rspam09 X-Stat-Signature: bwpnuqyhtoqskje3xdj51guytraz5skd X-HE-Tag: 1747805005-585309 X-HE-Meta: U2FsdGVkX1/u3scei6IoPvLvDGUgmR2TOoQlT/qcHtjYuXl1sXzsmJwKtY7phkm+g5h4Zbp6Lq1+NGhrk9mOZk5dtqwBKGarntdlyutWgzgVFU4zM5K4VX5JC32cLPElmXeS0kjS3958PwOcg3gaxAAJ693FNv3ViO4ZE+LxeDzpJ4R8WyiF5JjSjOgmh2mUKcaHWjCxXSQZFgENwfEUFEw6TAx9VMGsbNWtXI5GavpOv/ILffhfjx7Cy5Zl+FwINGqQOYtEn73SgmlH4RK/TPpLlB7bfuWgtKm9fbEtB1WRDHEVQCLWbqG5+4j4aoafbb9NCYr/XUB4uVPHpXsi+Xf1Q9mM9TBozpQr5fMbR9NxMt0VmrEXoYRuMITrwKz7rOphLHkm7JO1RmVgxmtJnjQJnOlSoLD+y+8UCwG0qnrVZK3Yv/5UQvWEei5yy9grK9Na0DAUrUzFOJd52fQxwIht4Yo+wfIfr2AWOIe0xdBloTmMi0KimfUBU3hEw6Tyn8pA50Sv2wyvymNUJcVi8C5RS+tdd9KrfuEqgXrhuAM+JvOOK27BU5mRGHxw3/+fXCsotSHSh4E0g9n2CwnpZ9akqj6lisn7dZ/sLDyloWEiO1stIrPu7wFVLYMyppm0RWZo6XsoeYIDmO1Ja0tcXe0fTfDsFAGlVldJ4Oyp1xiBjidzfAew/I321g6gIB0zca/I+uecL/UFCLzORKI7JCnbuC8UYZfOT8CU8RBqSsPP/yT0/AFs7LP7CX26gL6J5Pkflp6Y5Q+bU9w8hYeduvESWdTCl3o67NUzFlnKfUwzRqubELLZ+xr2Psq4aKMBoKQkoTWTdAcBqSOM76qoTLKBFIai6z8RLtHFxo9aNlMowbIUL867ajpCPoC8bbmiNY7dQZNtjSRjnJJvVGiO45fYfoHfdIux/ECrtqp5LmkhE3FTx0jzEmicGD11D62XS/mHx4u+XsdsFq5CMzL Jw0dykbZ D2axWWfdrwvdM5xyi+w2H8NWp0+9TLo5dBJjlyi+mcsIQdQwH/8pKt59qEi7jpJPVXe6kWcMAGvAb4uSfsn0LkemtfGMZzci4TRx2uSLGNR9iX4QOg8VCQkFAadG4UmlGD35ZRlLhawnyDu83r9wNKT+V7YDOrjowjHUSEr1f7VtgohmJU/cd3oR1CGAE1Ju+ahVfUVKXj2wNCD1xe1YRAZRLNST26InVfZE9upBxacC1SLSq6kLaEvX511KUgWL58t8p 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: There are cases where we try to pin a folio but discover that it has not been faulted-in. So, we try to allocate it in memfd_alloc_folio() but there is a chance that we might encounter a crash/failure (VM_BUG_ON(!h->resv_huge_pages)) if there are no active reservations at that instant. This issue was reported by syzbot. Therefore, to avoid this situation and fix this issue, we just need to make a reservation (by calling hugetlb_reserve_pages()) before we try to allocate the folio. This will ensure that we are properly doing region/subpool accounting associated with our allocation. ----------------------------- Patchset overview: Patch 1: Return nr of updated entries from hugetlb_reserve_pages() Patch 2: Fix for VM_BUG_ON(!h->resv_huge_pages) crash reported by syzbot Patch 3: New udmabuf selftest to invoke memfd_alloc_folio() This series is tested by running the new udmabuf selftest introduced in patch #3 along with the other selftests. Changelog: v2 -> v3: - Call hugetlb_unreserve_pages() only if the reservation was actively (and successfully) made from memfd_alloc_folio() (David) v1 -> v2: - Replace VM_BUG_ON() with WARN_ON_ONCE() in the function alloc_hugetlb_folio_reserve() (David) - Move the inline function subpool_inode() from hugetlb.c into the relevant header (hugetlb.h) - Call hugetlb_unreserve_pages() if the folio cannot be added to the page cache as well - Added a new udmabuf selftest to exercise the same path as that of syzbot Cc: Gerd Hoffmann Cc: Steve Sistare Cc: Muchun Song Cc: David Hildenbrand Cc: Andrew Morton Vivek Kasireddy (3): mm/hugetlb: Make hugetlb_reserve_pages() return nr of entries updated mm/memfd: Reserve hugetlb folios before allocation selftests/udmabuf: Add a test to pin first before writing to memfd fs/hugetlbfs/inode.c | 8 ++--- include/linux/hugetlb.h | 7 +++- mm/hugetlb.c | 33 +++++++++++-------- mm/memfd.c | 17 ++++++++-- .../selftests/drivers/dma-buf/udmabuf.c | 20 ++++++++++- 5 files changed, 62 insertions(+), 23 deletions(-) -- 2.49.0