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 8CF3EC4167B for ; Tue, 5 Dec 2023 17:06:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B9F96B009A; Tue, 5 Dec 2023 12:06:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 269C26B009B; Tue, 5 Dec 2023 12:06:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 131EB6B009C; Tue, 5 Dec 2023 12:06:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 044B36B009A for ; Tue, 5 Dec 2023 12:06:00 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id CDFD8C0202 for ; Tue, 5 Dec 2023 17:05:59 +0000 (UTC) X-FDA: 81533392038.04.C933AB5 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf15.hostedemail.com (Postfix) with ESMTP id 7A609A0007 for ; Tue, 5 Dec 2023 17:05:57 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=SW62cBQ+; spf=pass (imf15.hostedemail.com: domain of dmaluka@chromium.org designates 209.85.208.54 as permitted sender) smtp.mailfrom=dmaluka@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701795957; 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=R1K+1G9jV9cMz0Q64D03lk7V9VhpTBUeMxZV0+5svsQ=; b=Jvw89IbDbQMfDbYaeqaiHFAZ5wiWY1ysynCtwOYwlvFNp7NBNdQvlM+vj4A/T4AKbyk+aZ LkFgPjg5q6Gle2SkfTdFoteijLz1flXVOnLI4DDJmPt30TKqePKWxfpxfMCSzfuPkfrfy1 Rn5Cvb3TlglkO/rtHg67ktLoaNoKQNc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701795957; a=rsa-sha256; cv=none; b=r+5M6EKjIjc68RUbixLc74nJrW8+3+iHbo2n1n8DAa+QuiO/BygZVNDbWL9HYTb2hLALpE 0IPHEJbqrpkWrEf21AICs6IwCQly9tjP/+1zc1OIYQUOzsYXL6tJCGFE7QwBZNNREf21G2 9tvHbE8c0+bZWDfLU8KRLG5oMHsYSyQ= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=SW62cBQ+; spf=pass (imf15.hostedemail.com: domain of dmaluka@chromium.org designates 209.85.208.54 as permitted sender) smtp.mailfrom=dmaluka@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-548ce39b101so7365734a12.2 for ; Tue, 05 Dec 2023 09:05:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1701795956; x=1702400756; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=R1K+1G9jV9cMz0Q64D03lk7V9VhpTBUeMxZV0+5svsQ=; b=SW62cBQ+PQoTu+TL4Ie61naErFuok+uSfYT/F0hj9zzpmQ240XxFjJgN4gW38V4fuG w09iOOKYGs3ABV6KkLx2Eb4mjGxZGmCpniNl+D/ICNmucBtY87KB32Pbp5gKGkMgehf6 MSTHYkWZIe/LTkc/Dtl6LjvR/J7S44h75g6A4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701795956; x=1702400756; 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=R1K+1G9jV9cMz0Q64D03lk7V9VhpTBUeMxZV0+5svsQ=; b=Y5eaYkqf+wE9YAWWSzMNH/JDhg/uUnqCmN/31AIHBxQAf8Q8PiaurvJ/teGMTQDU7Q b90//Bg2X3v422M1Yuz9Qau71E0QYbgOeC5mYnyr3c0Wfb/A2phrAi/ej5X0do2LkSCv pupjH7kebEERMMLExdI2Au1TDHuw/J5F8TdUWL1tnTPu1ObRN0hcH0qnWezrILVB+Nuk Ac4attXTlzJxwqOAckF3zxoAes0Q8AGfY1iPKXWg4qzBvUNHTxX1jUhovZnpcYmPcZRF lCC67DjW9mz1esDy7ZRoGP+dKh2o4g/TQs5Zu36POf4Yuo1u0H1vBaZvQugnrIKuvtkp WMuQ== X-Gm-Message-State: AOJu0YwLVBFrfmJAmtUzwco/BKdXBJBU/hZtHJwTYU2Xp7qgHm20HANG 0pGhN6zn/w6zL8RmUaGB2vs4mLAriE2SfMuYZF2idg== X-Google-Smtp-Source: AGHT+IEJjv6k4HHDmPuN/DOL3JgyIPQJ5mOx/E0GmdjiSXKSC5qRKQSfAzW1uPBtvrB536WJjRMELQ== X-Received: by 2002:a05:6402:520d:b0:54d:255a:4354 with SMTP id s13-20020a056402520d00b0054d255a4354mr608038edd.13.1701795955970; Tue, 05 Dec 2023 09:05:55 -0800 (PST) Received: from google.com ([83.142.187.84]) by smtp.gmail.com with ESMTPSA id l4-20020a056402124400b0054c9635b24esm1334843edw.21.2023.12.05.09.05.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 09:05:55 -0800 (PST) Date: Tue, 5 Dec 2023 18:05:53 +0100 From: Dmytro Maluka To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/thp: add CONFIG_TRANSPARENT_HUGEPAGE_NEVER option Message-ID: References: <20231204163254.2636289-1-dmaluka@chromium.org> <20231204111301.7e087b2f851b30121561e8fc@linux-foundation.org> <20231204121524.dfa9f98e809c91b353968d34@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231204121524.dfa9f98e809c91b353968d34@linux-foundation.org> X-Stat-Signature: hq1etmaao11eob61jy3gtrzs8qpygck5 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 7A609A0007 X-Rspam-User: X-HE-Tag: 1701795957-574491 X-HE-Meta: U2FsdGVkX1/CRyamiYf2CyAckrbDd4oaXPexe17hRpOK3BJ+x3oIsC8ox7w4GFgQFYjKNVHtE/Cy5t4cl1k7zcudLo1j14I48JvN8O+2c+BzDj7feSVqLaDQBhT8OHnmxpqarOQ/ZEVBmOpkeuwoJ+nXHmjm933y4WPqGoPG7+cxT10l7wd6TLQ0M/XLSfz10p5TGh9+JAdr7mGSjP1riKgj4HPEQXarw5acsHJ1Lr+9hhszvftSNqmPTk8JKI8KTAHqKvKYWsCZ91WdqclFKLVgHGJLmKRV3nX7V7MVwekpUrkr20vJnYWfu5LKH5f9AqmC+35WkSKgMN06v4ZVixjrDCqJo8DWAu75cpyn13P6fDvRITDirhIw/4lfGhpSOJ5slxJ59Fk1vZdXrIrEBCJ53jwK+FCJ33D49ypvwVrDn5OVI8fs53BN2fNatvQPfpyyftrG1WAxPO2s96zOZC+IIGyWIS7bBHyvLkMA/5HNtRpz5OfB5+dJ83AzR1mgySYGELLreR1sB3OMIw4XZprx7QPO1wwg6tRyP1bIek2/x5qq4Ez5ym4qT9Vs7BiwK0wWpD/YUfSxA7kAkJCTyXvkDRF4NMPyp0TmR9IqevmA8Pe7MFCQCaDp/ICHnWlQXvlhFFMu9Gc+wCKa62JMkoFEJx6FT5BveUsnNprPfQW/m+G+2UI+tzOCWfzvIr3tsgEZT9mq4P01Kx7UrOh9/iXuM8Sy6pJ3kqj6rmRmeuCDogEAxHcnngcsH0Rg6fvzlH5iQpp892kjuyj/VgkTrj4+CecDgVawdRdcoZtdbFrTuAydzhPREOwgEuKLqxG6+YmeS8rVZ8qlYSMo4U0SZcSr1gXDVewZN06PksBjI4sIQV0PFNDsUW7INoAp68fvbiAp4xsFWP+vV5N1+Wd+vJVQpZlnkvMp1D83mar4cLaSczWL+nEmuD08oRdb07mztyAtrtfUeN8Liu9k9Je YuYXA7Xb C8gE3yRRMeG2UK6+6CfPKRebbxRi9A5o8mHSouoYC74/eZlqxRdV1GUY4bl79lTHClqhSHebBuuyOYpyAMRYy0WhlMbaL+o41irdaS5LEUTkDQQ7AYrBDQHoogIhgidFHve5zKAifsRWlW6Fena5raf+RR+0MwJiUJr162okVSc3Jnyv7HWKruLtg09ocsOj8fyUpKzORsdipQIYo9q//w9PPxuDwuPrPltf7tg5fZAugEoiCbJ4YGuu0NcSQjcLwG5OGDGAGqdULgCwuYPmXa6I4iazNxY6iNmc70n360aFHPmpT6TNQ38uWZ6jRNjeBO5SCvUs9gOrkFKDt7Xd+sFBtoZyBtavysDFMYhcs9TQIB7zWfiN3fO0zEDQ3mdHa/Gpdtthnks893Z0KqUZsXpdQ5kvisK95XCKcTCe3Xel+paaCfKnj6HI1/+7SKvMavyteK3C10XT1RoQ= 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, Dec 04, 2023 at 12:15:24PM -0800, Andrew Morton wrote: > On Mon, 4 Dec 2023 20:57:33 +0100 Dmytro Maluka wrote: > > > On Mon, Dec 04, 2023 at 11:13:01AM -0800, Andrew Morton wrote: > > > 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/ > > > > It is in line with the descriptions of TRANSPARENT_HUGEPAGE_ALWAYS and > > TRANSPARENT_HUGEPAGE_MADVISE: "Enabling Transparent Hugepage ..." > > Those are incorrect also. Ok, corrected in v2. Also clarified the changelog wrt your 2nd question. > > > > + enabled at runtime via sysfs. > > > > endchoice > > > > > > The patch adds the config option but doesn't use it? > > > > I should have been more precise: it is not a new option but a new choice > > for CONFIG_TRANSPARENT_HUGEPAGE, in addition to the existing ALWAYS and > > MADVISE choices. In mm/huge_memory.c in the declaration of the > > transparent_hugepage_flags variable, if either ALWAYS or MADVISE is > > chosen, transparent_hugepage_flags is initialized with such a value > > that makes khugepaged being started by default during bootup. This patch > > allows enabling CONFIG_TRANSPARENT_HUGEPAGE without setting either > > ALWAYS or MADVISE, so that transparent_hugepage_flags is initialized > > with such a value that khugepaged is not started by default. > > OK, thanks.