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 E9233E77187 for ; Wed, 18 Dec 2024 14:33:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 829926B00A6; Wed, 18 Dec 2024 09:33:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D9866B00A8; Wed, 18 Dec 2024 09:33:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A0BE6B00AA; Wed, 18 Dec 2024 09:33:49 -0500 (EST) 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 4BCA96B00A6 for ; Wed, 18 Dec 2024 09:33:49 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E54AA43EA0 for ; Wed, 18 Dec 2024 14:33:48 +0000 (UTC) X-FDA: 82908323442.14.BE2625C Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) by imf03.hostedemail.com (Postfix) with ESMTP id A1A5C20022 for ; Wed, 18 Dec 2024 14:33:32 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eyAeUud7; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of 3Sd1iZwsKCNAwy60D70KF922AA270.yA8749GJ-886Hwy6.AD2@flex--ackerleytng.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=3Sd1iZwsKCNAwy60D70KF922AA270.yA8749GJ-886Hwy6.AD2@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734532397; a=rsa-sha256; cv=none; b=YZSUDGxya+fSHP3YbExsXh3NDXX3EXx65NmuOjN+I2wztZd2JUWTPDOL3EhYC3YLXeML8l EEgxwOaGqQO62o+ugvws+Lm9nf67JBjusSm4tebiQkIPAyT8cTXP65jS4R8bpvg50oKBJJ fOWzPN0tFVP+xLFOz6sCQsadj3CvmT4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eyAeUud7; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of 3Sd1iZwsKCNAwy60D70KF922AA270.yA8749GJ-886Hwy6.AD2@flex--ackerleytng.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=3Sd1iZwsKCNAwy60D70KF922AA270.yA8749GJ-886Hwy6.AD2@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734532397; 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:dkim-signature; bh=8/xJoyb6w1jlu83wNixggt1n56YUBqKQLkNI4Qu0JN0=; b=mH993Y6CJRO6VOY7OuTKmyrelNTxdZPX0x7Mq7Xa6so9gY4f9WYb1Jo+4SxrRYx7qsovV+ oReoqly0RZaiP9gxUXytAAcsuAAFOf356niTqQZEwNaPk+P8dUUbs4PmRj7/9OyFCuY/VK 31bUjZGVuk/cuPjNBZploQ0DdlAT6go= Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-6c8f99fef10so7066002a12.3 for ; Wed, 18 Dec 2024 06:33:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734532425; x=1735137225; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date:from:to :cc:subject:date:message-id:reply-to; bh=8/xJoyb6w1jlu83wNixggt1n56YUBqKQLkNI4Qu0JN0=; b=eyAeUud78YtLRnqlSosrAzJmgaowDb377aHPF1+qLxbDqCtnDFGU9nL5/tmlGYjZ50 qpUXZVRpCvXrodI0MkgqlDqMYfndOTAGz0ZDk9JmP0td4FeTxl4ZRZ/oLemVebJ7r8VY GAAIb7L3cnDii7bU4k5OCMwiXHgi6wwsOz3KqqRPVVG4OJ3iX3aS2RX2VtC7QBl7VYmz xSc0p+ZHmR3Ai1SGj4IWVRD0MyUTvRyMvC1OjRQXG4n1f45mKycdw6PF2vV7RjAMpSa2 MvSDILi/lDMwZCBvMxHmYr/Xe/9NkV6VHNiH4r84SLIx9+at9dKRUpFubULflQ3OFxVi Idrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734532425; x=1735137225; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8/xJoyb6w1jlu83wNixggt1n56YUBqKQLkNI4Qu0JN0=; b=dd0Q87bHeukWI26rw+aEYzjUT+wzfKtjI7mDvLSkI4ergc1gupk7hePtAvHFj2hz6d aB0HkrcupLJE3t9zCbivs0LVqb8ek1bPTe/4QDulnA2vShTZq1Y3AEAyfnNdU97IS7gG LFYEhGq8h+/cZanE7IPu2cwzU0eSlq2Bsu1Ltju6fu6/iVHzUvyoJ1aZw5mFw2V/47TQ a8dXWYMklETqi4janlNaQXzSb+CFqha/RPblOlyK4uoDqMzSivHpPX2iYfd51sEoz9JS J2LuVoaZUhn5RxmrKq4tgEugzmaCQe4dsb8FogxkOoF08XIbg7ZtNWck2A6ej4oxY6P7 oltQ== X-Forwarded-Encrypted: i=1; AJvYcCUWBlL4dFqo9IDSOZOffVnqf53kQlmoX09mAYWeZyeM/L6oD16t28pVuyvgUUSKvqIRFrsnvh9qjQ==@kvack.org X-Gm-Message-State: AOJu0YxNkwo8G1G7sObL9kEKaWR8LMldt9CYcjPDJ0ipk41YSJQoD92S u/QPCuUWRPl+MGxGssoyIz2qcGVS7Gq8uZvoeQZxL3dx0Qcfb/RGTSCV+4bwt7WPL1arp3AQdfo BXubfYOugzu1fgsNCALTsdw== X-Google-Smtp-Source: AGHT+IHUufAPpS8l99EymNtFz8RildaHB41w/vA8gIWEPkTGuh9C6vPrLPov88ikvfsgvPhCy2mT/3z8ZivBiOEJVw== X-Received: from pfbeb1.prod.google.com ([2002:a05:6a00:4c81:b0:725:ceac:b47e]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:a104:b0:1e1:3970:d75a with SMTP id adf61e73a8af0-1e5b45f9e04mr4817391637.9.1734532425565; Wed, 18 Dec 2024 06:33:45 -0800 (PST) Date: Wed, 18 Dec 2024 14:33:43 +0000 In-Reply-To: <20241201212240.533824-2-peterx@redhat.com> (message from Peter Xu on Sun, 1 Dec 2024 16:22:34 -0500) Mime-Version: 1.0 Message-ID: Subject: Re: [PATCH 1/7] mm/hugetlb: Fix avoid_reserve to allow taking folio from subpool From: Ackerley Tng To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, riel@surriel.com, leitao@debian.org, akpm@linux-foundation.org, peterx@redhat.com, muchun.song@linux.dev, osalvador@suse.de, roman.gushchin@linux.dev, nao.horiguchi@gmail.com, stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: zh66sh31kzm9wo4khcuqcmdqim1hcq5u X-Rspam-User: X-Rspamd-Queue-Id: A1A5C20022 X-Rspamd-Server: rspam08 X-HE-Tag: 1734532412-144405 X-HE-Meta: U2FsdGVkX19xKAFnWE9p08mNJQ6/Yh3JG6iOqFPButgjHaP+TJCxC7iQVrVpPui7PzwuXbTCNtlOqC5VnXXtvc/4VxNoKIRI2KeZNN1giiWVYM17ZFC3Djp2p2k/0ngo+huz5VHBd2s9vxRJShMw63ZgJBgVuRcnssEMOfVTF9wze/HjiSIGDBw5ytMOvJGivu7ihpr3ryjGTnSELS5Q9n+6dZ+ih/UEk8anSCdRXm+EINOnk0YI3pZI0DXS76nJgTsNLsd9Zdrjwuqgg+fQ+Fyxm4HPls5fWz2gntwAlCrfIoH/dHSTSMCpjDHLDPHUeuqbrhMJVaWh91J/g5nD1mMmgELKexSJoknYl/uUA1zn8eLcpWDLR0JSe4Zwk33SZdT3L+WjK3BgilhbQmqPRuj/L9H/U6wxOB9/YSvVs1PMT/s1wA7RP0VSnxz3VPE9AHBi+XIjwl88jWE7+d8c7ZhOAzgFDTmhfN7PlUcVbkMLJpHekl3PO/h+mUsul27mbGDUKyVJDKSFO+Qy3zFjx7bQewiEhwC0hwV6NLd6kZeb7GLY1rbfXFfIpO60ea4FK1BsPZHzEeDXkLiJHvacVT8xOJGP9kv7xY00pz0kriaN97FpoZIxF/ETKHl9388JyROQNkv91kzzugqvo8cjlG3dzdxkyIABf0tKuG4HTJ74aYKfbrUfPxOVlrmNDWVnPwER7HXX86JkehPtF3srqYI7+MiknYo5F36YHfrpAT35xlhtNGUP8DjnhDw+T9xzGvSC0Mx2TOp/BLCUaiUNt6ZFbtiEtpTSYEgAqbldgApRgpqfQqIyzcUycfI5L76xLDTUKkBEznnjBVPVB/6Gpd61Vl2T8s4x5brxck5xOylcHgHvbYVbYyRZ/NcJKkJQLtgi3Yz4XrtfWX+47xIhIbu83b1/MGxFeFGN/3mdYQ6IWDKmbu3t8d7+JHvb6GWP2ct6SYAdzjSETY8vIqO kNPaKOzR jK/kOGvdunI2fRCAB2rA48YQEFNHz4lLUutvvTlm9Yb2oeoaT8jLv9GsYeEx2y2vJHv5+CJJRVyZYTMu0kjmvhBr8KOazW9o72pPBeNyL8bXq95oXp3Etc07N1kLhn19ptit+cHABdFyM7YOy+G4qLC+220LKV+hemUJM8S7n6NvHOJWgf2rYnn1L2yAY+ifHLJyN/Om2ych+eb5LLryibSljSD/3Jln15rmSGF6rPBrENwydxCkIVZDtbYfGuLZmu0mRCGnCJ94ezl5J2dbcW8l9KWxxM6IeQ+Ps7C60ymrt7SuBzKFOtystxfnHUv4hjcHbduWt488TYodfrK6LBjiH4lOQvUMpfTgHLeBteiztUG94TRBwlsPqRw/qreziGgqm5y5p7uPwbUZPHCU7giNo4CXbO0igQWiyvv6AeS8nI/uYXjfGWdF/vCOf7kYPGhIxRHoULGWyfo40I2CGVzRu8JbgqLktYLyTNQg9hKSiI9Z5KKeeX42/Twv9Y4eCg4EOYx8eCMeRcPDXT1p3CMsW6l0FUkh7sjvaQwJ+hh7vUUr2d06UK6Ekmn62eYhZjxaY1N/RotZQkbxWrLYZVb2uPuNWzdK6KTaChKQJSs3B5UOiLQyVcTgfcThtW1bwWXnvOZV/ubmrgpX9CUmacgheCgMkNmYEUBJQgwJa7ONM7l4Hg/fEpKKzWQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.038383, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Peter Xu writes: > Since commit 04f2cbe35699 ("hugetlb: guarantee that COW faults for a > process that called mmap(MAP_PRIVATE) on hugetlbfs will succeed"), > avoid_reserve was introduced for a special case of CoW on hugetlb private > mappings, and only if the owner VMA is trying to allocate yet another > hugetlb folio that is not reserved within the private vma reserved map. > > Later on, in commit d85f69b0b533 ("mm/hugetlb: alloc_huge_page handle areas > hole punched by fallocate"), alloc_huge_page() enforced to not consume any > global reservation as long as avoid_reserve=true. This operation doesn't > look correct, because even if it will enforce the allocation to not use > global reservation at all, it will still try to take one reservation from > the spool (if the subpool existed). Then since the spool reserved pages > take from global reservation, it'll also take one reservation globally. > > Logically it can cause global reservation to go wrong. > > I wrote a reproducer below Thank you so much for looking into this! > I was able to reproduce this using your reproducer. /sys/kernel/mm/hugepages/hugepages-2048kB/resv_hugepages is not decremented even after the reproducer exits. # sysctl vm.nr_hugepages=16 vm.nr_hugepages = 16 # mkdir ./hugetlb-pool # mount -t hugetlbfs -o min_size=8M,pagesize=2M none ./hugetlb-pool # for i in $(seq 16); do ./a.out hugetlb-pool/test; cat /sys/kernel/mm/hugepages/hugepages-2048kB/resv_hugepages; done 5 6 7 8 9 10 11 12 13 14 15 16 16 16 16 16 # I'll go over the rest of your patches and dig into the meaning of `avoid_reserve`.