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 15378C4167B for ; Mon, 4 Dec 2023 19:13:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C0616B02A3; Mon, 4 Dec 2023 14:13:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 370836B02AC; Mon, 4 Dec 2023 14:13:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 23A596B02B9; Mon, 4 Dec 2023 14:13:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 171FD6B02A3 for ; Mon, 4 Dec 2023 14:13:09 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E4C5980374 for ; Mon, 4 Dec 2023 19:13:08 +0000 (UTC) X-FDA: 81530083656.12.4C0239D Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf16.hostedemail.com (Postfix) with ESMTP id 89D8318000A for ; Mon, 4 Dec 2023 19:13:06 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="Kxlpz/LK"; dmarc=none; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701717187; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=F0mNsjL9r4VKP/GMVeKNNW2XeozD4RyUw4xG7AMtggs=; b=g1JiCcs4vfK+oQ9hublwRhemN/OvBeTSF24950bl/2bqjwQx6SYMsAB/Iso6ufgpYhlOkk mx+xO8U4lptqgXhMR19pU6JITRsis7qU6sNQFDEnKrZyX+Dfi6dGlavfQhzVrk5hLg7WCF ewKE0yHGwpAJ1da8nKwJ/ZLXEsOCWFo= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="Kxlpz/LK"; dmarc=none; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701717187; a=rsa-sha256; cv=none; b=rDTz34mQ62HK8tl6u68TLOetPgMmSv+tmLcyp8P7Ianx1pJhISBVV/542HjSoHP+RzotyA a6ChokI8K0N8ZYQhBvXO/f6aRS6ZlZ8vTDngsf8PgEJtb5rc1b0Ww7m288kbze3G/voSWR Urnbx7Aqca9ekiGsxS8urCS3RaJvwcE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id F02D7CE10C6; Mon, 4 Dec 2023 19:13:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2424CC433C8; Mon, 4 Dec 2023 19:13:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1701717182; bh=DF4i7VfdHFjU05wcCcPJaPR5JV0IOaDMnlYWyt6aCV4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Kxlpz/LKZoseZnQyZK0lBJrY0nGrMHNQAoj7u2HrMnoTEpfY67bSvSZxV6m5ZFvwY yZoC0pUuPgaWFZn94kG1Wr8E0atdjh2RrTTkB3nLGSbsD2U5kuzfl+tEo+BX8Kxc1Y LXcq5lfE4qDSZJ16h+IIxFKjyf+29xOILzUG6918= Date: Mon, 4 Dec 2023 11:13:01 -0800 From: Andrew Morton To: Dmytro Maluka Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/thp: add CONFIG_TRANSPARENT_HUGEPAGE_NEVER option Message-Id: <20231204111301.7e087b2f851b30121561e8fc@linux-foundation.org> In-Reply-To: <20231204163254.2636289-1-dmaluka@chromium.org> References: <20231204163254.2636289-1-dmaluka@chromium.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 89D8318000A X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 68fiqtep3qs7psq73fphzdpzmx8imibf X-HE-Tag: 1701717186-937805 X-HE-Meta: U2FsdGVkX18OUle4M+JYfo81nyDTk4WORQXTyRgKyRMYaFT6wW+zVfdLc0nipQfq0tqNogIbuIVfazN9eQryk30MPfrxKbQ4AENAJhAdWhSUvSebeaEeKDVyNjkmC6pB5wWF0gRDFqzNd/Yru0TTJENvJAYOIQyO1do9mEzjUlS42/3EzAJBvSByFDgLtG6Wy94L3KQ5Ogs3tInjdm2Ko0/eoPmlRnn1AD1IdylrZgz4h+Taa2J8EV5NAkgPBQQrCT49Sk71DxO4J5f5b0EB6vd9kVaVTUUOltvQ06TOEdFLReCN0ywktsMOi02ncCZxFmmxqZhZvKQ+9A7RFquEx552T3r+vggM1dExB1cNgvTa1Y9xwsXPj1lHyPEWeag2CKE/JYM5drjXKL2Ri+7FpYP7zy8rvsoH1EWidKSZmzM9a1Np3H0SH660zC8Taas2lNdfGKhGiTsn3ICN72+Jju5nNM7fwAqkqOQ+I/17jwKkA0fIFssm4X1/taxldLLbs8hWTNoDP4uhvYqjux7GO9/G4bnsNrvGj9HT1QPFTJXn6bjRSe0+2XevWUlFknmQaD0ckiz0zeyELKJV6m2jjGff6/8DK8f0nspXy4Ddi79HYNPJY0uvIvQJbnFyc/U+l2qHQyQFQY6gG51salnpTAfglo2jTBtlFKEUDl7NFR8w2wnCzDILwBPgDBACXqRjd4tRGDur43aZYTucZPCKQGZuCi608skqPgWHZnItS37vEk9Ddd/p8KyySg1GYKgqMs1/1GdGUpryisKGZa52h/l+FbqFGjTW+gtcmRUzAoP3/JBmPMOiTLqVZAIQB6Wyhe3SiJk2+97B7TaZPhGLT8hsTdUaVfsNqbRZhlY1XxYjtytoIg4/Rd+eWa/WeElUW7PA5/9yj4rZsUYOY6mTNkA1GwJVLN1Rv/N5sP8dxJyWzsnrimHhCXyWT5sG+xk9G+AGSqece6N1rc7CiH2 jS0Jta0Y XeUyx7UfXN+Yzlc0wm/9FUkNkDFk4MAkcRCmbhX/ByD1OB/q2fgot/kFtRGJmYUA+Tsn8CiDgTmzNB18Yw9/2KblUAo7RRA1iMLIBBHyyDExjeDkscTdsDf37zTFQYApr9kdzocvhOtJzt+KVzn1CTN1uC+y5UCNM7j5VVx6eZ13gZOtyAOH4LfOAKyWYlx9z9scd6QdoHwukdtrnadMZjsnVIx26MdbT1Dq75hovlKoVZ8OHtRkkeZawGBtNZD3ieJjzgJUZgR1u6Jvg0SAQOSWnFsGyvdDc7u+Se988j7ky3VSKb+rgL3C2vPTwnjuw8g+ozwV1HjMpMufjkWBG/0ostirVyRDEUvvp4Qi4OWgZAUTOENxtfKANWw== 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 Mon, 4 Dec 2023 17:32:54 +0100 Dmytro Maluka wrote: > Add an option to disable transparent hugepages by default, in line with > the existing transparent_hugepage=never command line setting. > > Rationale: khugepaged has its own non-negligible memory cost even if it > is not used by any applications, since it bumps up vm.min_free_kbytes to > its own required minimum in set_recommended_min_free_kbytes(). For > example, on a machine with 4GB RAM, with 3 mm zones and pageblock_order > == MAX_ORDER, starting khugepaged causes vm.min_free_kbytes increase > from 8MB to 132MB. > > So if we use THP on machines with e.g. >=8GB of memory for better > performance, but avoid using it on lower-memory machines to avoid its > memory overhead, then for the same reason we also want to avoid even > starting khugepaged on those <8GB machines. So with > CONFIG_TRANSPARENT_HUGEPAGE_NEVER we can use the same kernel image on > both >=8GB and <8GB machines, with THP support enabled but khugepaged > not started by default. The userspace can then decide to enable THP > (i.e. start khugepaged) via sysfs if needed, based on the total amount > of memory. > > This could also be achieved with the existing transparent_hugepage=never > setting in the kernel command line instead. But it seems cleaner to > avoid tweaking the command line for such a basic setting. > > P.S. I see that CONFIG_TRANSPARENT_HUGEPAGE_NEVER was already proposed > in the past [1] but without an explanation of the purpose. > > ... > > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -859,6 +859,12 @@ choice > madvise(MADV_HUGEPAGE) but it won't risk to increase the > memory footprint of applications without a guaranteed > benefit. > + > + config TRANSPARENT_HUGEPAGE_NEVER > + bool "never" > + help > + Disabling Transparent Hugepage by default. It can still be s/Disabling/Disable/ > + enabled at runtime via sysfs. > endchoice The patch adds the config option but doesn't use it?