Received: by 2002:ab2:6991:0:b0:1f7:f6c3:9cb1 with SMTP id v17csp364422lqo; Wed, 8 May 2024 02:02:55 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCU8hqSOxVdygWASCxHg8kzOX+foctzqjY+Ge+s9yuzYANbF8KD2555bySnAOS5f06nV11PWBaLZXw6lkjp1UMW3od2A1oH6vXp93himTQ== X-Google-Smtp-Source: AGHT+IHnnin2vQXh/q2VF31wRsHGfvHOG0CQZV6GZYQQi/9/0YmxnTQz6GdU+6u8OP9sgSZeTzRB X-Received: by 2002:a05:6a20:7346:b0:1af:8ca1:8fec with SMTP id adf61e73a8af0-1afc8d3d3c3mr2272892637.16.1715158974696; Wed, 08 May 2024 02:02:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715158974; cv=pass; d=google.com; s=arc-20160816; b=syzlh/7ueL6GM2Y3FpeOfM4K8ORtRHNFYi3l0KjrOh7gZVhOzatOG/V5uXUK/ozHpw 8tkIHlRX1YCl8b178CUb0FT5hI/xtJwwFmB7SvBR6x7zJKV3uLIuYaBGkufsqwnCAkIi kEIbJaZNBkdQzlU5460uQIRvI1/eEPxu3SJkfvZUHTR65KHFwy1LGYnrUez1vRVsDSux UoZgc19aNrGyXCgcfRUoIyO1wbjOX42fQWW5xeoQiYaCYh6Qy5tVsY4gLVdmfyEjQJAR 8ykoz1VQMYqJB4xgLvzksnI1s5oAi/TJMSVebQ+TgWXVdyhZpgGWQiWkJkdSFrmtiETK t8OA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id; bh=X7x8LkNPw2S+Ti4V6QAx9i+Y8aS1xRttMk5L9fGjgnI=; fh=fVswt6nBEjQ1OBKyP92JYPIQa1bKBS+Ggicg/LNLN9w=; b=jHz17rjjDjTMThlz0D6j8WdBVd8C+AoNUxGpbeeL7AqWuCTvz6bm91qfCN7MthmckZ vodiungMnZIa29wcU4wl+EPQ8FY9gAf3i8Fwda5LCcoSvjsh3WNu7U7W2UIp+tQDFVTV jHvQpXHNsOgnTZ3JYLnbj2G4eVJciASGJRCGQzgHGJ+uYnOIqX+6xW87qIamNgZKPxte 1YPynRJwatjWirU2kA15qVXBmFdKDQFgAC/PxWVoOxhelFp4VgwZtC4fn6Vv3670+ldm 8WfKQnDbKXexi53im3Zy1nlnMyK8y5MqM6D82hm01vJKTV9v/8ADNbwNofOmytH/fdVt 83wQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-172949-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-172949-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id bt27-20020a056a00439b00b006e65d654afbsi9400534pfb.32.2024.05.08.02.02.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 May 2024 02:02:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-172949-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-172949-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-172949-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 3D766281B25 for ; Wed, 8 May 2024 09:02:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A5E1973176; Wed, 8 May 2024 09:02:48 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EBA123A1BE for ; Wed, 8 May 2024 09:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715158968; cv=none; b=aCRAlADGaxXLRMk1xwHiW6X4mDHzWs6kg42FO6cAD7ON4R2baVzr2cpqFwvUDIYm+p2evw6tu4vGn9wZ6JbIptYNNwzwjjlSLaqz2foWaAaXWRESdZDhZGTPWLoB4iQN1rDxwCPv63sxdxY1RNKeYHI5j2yOHMmjq9/bACjDDSs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715158968; c=relaxed/simple; bh=qdVURWUQTSFjr2TDtJ9VB2HmxpiC61kP72lHZ5Sh/9A=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=J63+AM6GYPhPd6iL7PUPdgRMTSyZ3kwhJrbJQq1vDMguW1pJ7c0MMa9hrB4MWvo+bO0zmauufYE5KnbkXXLcvPa0q+ILTjiEhsubabhCjNAhrRtZZbR9HDjTgEcGyHxX3dqeY3TXQCWGtyhYPD05qBAcvYihzMTaELYl9ucAJSU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9ECFD1063; Wed, 8 May 2024 02:03:10 -0700 (PDT) Received: from [10.57.67.194] (unknown [10.57.67.194]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 43F0C3F6A8; Wed, 8 May 2024 02:02:43 -0700 (PDT) Message-ID: Date: Wed, 8 May 2024 10:02:41 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 5/8] mm: shmem: add multi-size THP sysfs interface for anonymous shmem Content-Language: en-GB To: David Hildenbrand , Baolin Wang , akpm@linux-foundation.org, hughd@google.com Cc: willy@infradead.org, ioworker0@gmail.com, wangkefeng.wang@huawei.com, ying.huang@intel.com, 21cnbao@gmail.com, shy828301@gmail.com, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <6b4afed1ef26dbd08ae9ec58449b329564dcef3e.1714978902.git.baolin.wang@linux.alibaba.com> <30329a82-45b9-4e78-8c48-bd56af113786@arm.com> <0b3735bc-2ad7-44f8-808b-37fc90d57199@linux.alibaba.com> From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 08/05/2024 08:12, David Hildenbrand wrote: > On 08.05.24 09:08, David Hildenbrand wrote: >> On 08.05.24 06:45, Baolin Wang wrote: >>> >>> >>> On 2024/5/7 18:52, Ryan Roberts wrote: >>>> On 06/05/2024 09:46, Baolin Wang wrote: >>>>> To support the use of mTHP with anonymous shmem, add a new sysfs interface >>>>> 'shmem_enabled' in the '/sys/kernel/mm/transparent_hugepage/hugepages-kB/' >>>>> directory for each mTHP to control whether shmem is enabled for that mTHP, >>>>> with a value similar to the top level 'shmem_enabled', which can be set to: >>>>> "always", "inherit (to inherit the top level setting)", "within_size", >>>>> "advise", >>>>> "never", "deny", "force". These values follow the same semantics as the top >>>>> level, except the 'deny' is equivalent to 'never', and 'force' is equivalent >>>>> to 'always' to keep compatibility. >>>> >>>> We decided at [1] to not allow 'force' for non-PMD-sizes. >>>> >>>> [1] >>>> https://lore.kernel.org/linux-mm/533f37e9-81bf-4fa2-9b72-12cdcb1edb3f@redhat.com/ >>>> >>>> However, thinking about this a bit more, I wonder if the decision we made to >>>> allow all hugepages-xxkB/enabled controls to take "inherit" was the wrong one. >>>> Perhaps we should have only allowed the PMD-sized enable=inherit (this is just >>>> for legacy back compat after all, I don't think there is any use case where >>>> changing multiple mTHP size controls atomically is actually useful). Applying >>> >>> Agree. This is also our usage of 'inherit'. > > Missed that one: there might be use cases in the future once we would start > defaulting to "inherit" for all knobs (a distro might default to that) and > default-enable THP in the global knob. Then, it would be easy to disable any THP > by disabling the global knob. (I think that's the future we're heading to, where > we'd have an "auto" mode that can be set on the global toggle). > > But I am just making up use cases ;) I think it will be valuable and just doing > it consistently now might be cleaner. I agree that consistency between enabled and shmem_enabled is top priority. And yes, I had forgotten about the glorious "auto" future. So probably continuing all sizes to select "inherit" is best. But for shmem_enabled, that means we need the following error checking: - It is an error to set "force" for any size except PMD-size - It is an error to set "force" for the global control if any size except PMD- size is set to "inherit" - It is an error to set "inherit" for any size except PMD-size if the global control is set to "force". Certainly not too difficult to code and prove to be correct, but not the nicest UX from the user's point of view when they start seeing errors. I think we previously said this would likely be temporary, and if/when tmpfs gets mTHP support, we could simplify and allow all sizes to be set to "force". But I wonder if tmpfs would ever need explicit mTHP control? Maybe it would be more suited to the approach the page cache takes to transparently ramp up the folio size as it faults more in. (Just saying there is a chance that this error checking becomes permanent).