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 AD1BAC83F3E for ; Tue, 5 Sep 2023 22:10:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE83D90000C; Tue, 5 Sep 2023 18:10:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E96D78E0014; Tue, 5 Sep 2023 18:10:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5EC490000C; Tue, 5 Sep 2023 18:10:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C906B8E0014 for ; Tue, 5 Sep 2023 18:10:31 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 727E31A07C0 for ; Tue, 5 Sep 2023 22:10:31 +0000 (UTC) X-FDA: 81203938662.24.55FE904 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf02.hostedemail.com (Postfix) with ESMTP id 8F08080024 for ; Tue, 5 Sep 2023 22:10:28 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=nvyd9FUS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693951828; 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=6MLVZ+tPqwFQ6sxNdU1/Ic7c0Xih0v87EytUMeTu9wg=; b=QDdOygbQLUMy5tV96qSaLkYgK9MEogQP9I1Y5wNkURKgq5fAqnUDXqItK9b6EEpEQKUJgI hIuF+ahTAhAXqwmMh+pj9oDyHtEZ/JsyjZczlLH98Kn5+QSaUVPQkYhfasL7rB5bBwry1D IE2IXQggbrxB8wizTNUN1Bwf8XOtNVk= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=nvyd9FUS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693951828; a=rsa-sha256; cv=none; b=hePhLd2SxRL0tuJFlPB1zp59HceIkbm1cBl9sAO8EtzTwd/RNOyDtKG2SrTUEXQbi/s8Lx 9hCSIh7z8VxrenHiW5sB969TgyockPdTxaVnO+TU4Ota/HHs8WCTKGc+3fqHiCgMvCZTQD fFKuBZSv0l0mr4oIb3BT/etv24jCsf8= Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-26934bc3059so231045a91.1 for ; Tue, 05 Sep 2023 15:10:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693951827; x=1694556627; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=6MLVZ+tPqwFQ6sxNdU1/Ic7c0Xih0v87EytUMeTu9wg=; b=nvyd9FUSVNarAo6dMfWGoLBHBzwNP26abHMeoXbiCdFjkkRwS3nIq3SOhtK85IG5ka k1MCZrkB7H4e8ZynEpnU85U1kxR9yfcBe5urhEJB/B7wAjdu5+PNjPatxYBcK/+wxbal pDYWJSlOvhVm1lrbEXO6qiR4Jvq/AZrkXwcND7oOsaZ5XbCVxNJqG5X9g8OOo4YvQI+d 0tyBwtWVws72gq7BIb+GuAO2rIq/k+7ezfsnGF0X1MAu/CRAhg4nFmKbjOsUgpyTjYYO GusMU47Qq3LUILZeQ7C7k6gMIHDe04zv40CzMz+c6sW73+EY5h7TTd5AcnjrR3F7Is4q yBTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693951827; x=1694556627; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6MLVZ+tPqwFQ6sxNdU1/Ic7c0Xih0v87EytUMeTu9wg=; b=PYzEyZ4IIeGrPN6vgHokBP1mkNU+21mgF9QN6Hj8sr0Og9aV/Qp9JF5Hile7dlYOcZ aoSK4zxaLY5yqWt8TEiPWIBm/txuiyMEXYvpSUmuPH5ArCG0oJlaWSZOTIzlV2Am/Fxc 23IKYw2nqR6TEh4NoRV/lIQKaYllICb8/B2l/sUWt9Wbi98B/4y3d55WaGKVzxp+ieIe lMbjYseMcKDIII65YkBKuO6TwXluKNPZUJ90lClskYMmw19l+erg3fjwXEKuNQOBOdOf mVKjuEqxQfCjoqz6jAOrd3tFY0n8w7TUqJB2Gjul63GhFVcQPmwo5Tvpt1fnJQka27kb pv5g== X-Gm-Message-State: AOJu0YyE5XFPPsSB4/m4BxaNtEJe67Ax4SW/tnbPQ9wl/EgxuPXt0JNO YDfm8oJZh9Gj8AYh/dXFUSOSb4o1vnUIfBIqq8w= X-Google-Smtp-Source: AGHT+IHcDLIX7zJo7/hqnmJuc83KH8lsVoVNoAxT8NzstlSm4SoZn/uzC1Q0W1H55vmBPK9TnC1y1oy/4y9acaYK92o= X-Received: by 2002:a17:90b:230b:b0:273:7bf5:b1bf with SMTP id mt11-20020a17090b230b00b002737bf5b1bfmr11258915pjb.9.1693951827096; Tue, 05 Sep 2023 15:10:27 -0700 (PDT) MIME-Version: 1.0 References: <20230902052611.144972-1-wolfgang9277@126.com> In-Reply-To: <20230902052611.144972-1-wolfgang9277@126.com> From: Yang Shi Date: Tue, 5 Sep 2023 15:10:14 -0700 Message-ID: Subject: Re: [PATCH] mm/khugepaged: make reserved memory adaptively To: wolfgang huang Cc: akpm@linux-foundation.org, linux-mm@kvack.org, wolfgang huang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8F08080024 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: omgt9ncykacf7ws5dd8aygeuxz3nwh6e X-HE-Tag: 1693951828-894327 X-HE-Meta: U2FsdGVkX18XHrGmBPBWsAOlkLPc2rvxN6UT+rSra3hqasVKxl2t/rfQgzXTs1Wb1B6Gn+ld9h8LTV3gGDX/Zeq6GR5zCRx2EwRnfqvbV+eEkFUSKobvHPrhBsUfWGHsefRq0UieSymW30SV6VNmo08Vp9LwsDWFxUxADGFXIjPhrpbjLOLpb23BCKBYWmPCL6RAjo/4wD9uSUzuzX3l7O+3myWON4GpkCFZfpAux8zZuKB47iDgT+9OBSlaF5+DcbMQMhCQjqt429MxBDWmC1iG8tZEnwv/sRnedKJLmZ+0VpXkkAaQHS9j9XIRpxV2xrjIOK2i+6SAnC7fUWnyg8G7BdTJyz5AcsezNJkoqB4oIim0JJ+orxXcpNugGPVAepVHWsZLr4YcmGQV5CurXYjhFhLoUxTL4XDD/uEDWcPEsY0UVyN2SUYjyu1Ely6U4VvxzxCEnOHwI8Nco2jliUuc6d+5KwbIx0/lLJvrSxfo4mbJCEZmTcIDxdxwVS+uY82txcPQ0GSaBpwGfw4R9oDp9LMKvimwBvatbfGP+1OTXx7C6X5liwWpwhb8fZLTTHnupjJb/ZZ1yc+pARMgPIq30Wbkz7BTC5v2y8WZnSMX1hD54wDE+2x+IqmbOX7dBRUdzE88RO5we6nJcZx8HsxRpT8CGLqrCEHSqLJl1vESvLD1con4pV72MWzYO14n3bngys6Q5FWgtH+liK7iTXZU3sWRhrZCw4P+x/PNGeixf3kHeJsyAGTK9J7UtE1iMSrSxBpYNyNgq2Phklu3acLfFDJYWys02/VKhF/gD5uSlGGwfm73xV9uMWqMFbhA4ElEbgCjYpDnXRG38Lxfgs1u+HceVrsmHfTG0H1hmA3CJcYiiVGHKcW240O/lzvruTNlVPwvxcNBXUXURhi51iIv3gRRCWg2/3+HbbI/73XJR4Se4uzh7uCfSc0dljIF4C0Et6Fxg6M2137Je+H DgXDjeQ6 3kEup2MQ7gih7PzseNLMakrEizCZKn6cpK9Ieffv8IVoNkXF4ZcGfAINnCF2Q75lZtGzglKktrG+5Zzib4dU6C1Q/h1AzYM8eVLU2WH5+DQntPfTCQdSblFasIXDxIfsgEwZrKCYNRQAd11MckcF7dXuaUjwE5bp+L5Rc0MzWd+ympu0Htw6V7anloCOHh7bOERHFoWNLOeyi2x0qWrAF47gO/sLOkePM0AsshuyOtipx+BTvhJsdozj3D6pOsMoY+8YzD4159MQ5Zusm1wvhHJy3cszyjiECnH1O1xSb2ao5YQAIAEFoVSqTtODm0ZSaA7ofrafrONh88VoZXQwY3F4nB+dKtLpQdp20Ze/hYlj6okGErE4z7gntWisOZaZ/I8A3rB0/bFLwHq0LbLOeWP1fZwjZW59WubNeIibFmJ1DDyUhhFAMvfMp6D37r4DJkKmop0J3uHndUK4= 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: On Fri, Sep 1, 2023 at 10:26=E2=80=AFPM wolfgang huang wrote: > > From: wolfgang huang > > In the 64k page configuration of ARM64, the size of THP is 512MB, > which usually reserves almost 5% of memory. However, the probability > of THP usage is not high, especially in the madvise configure. and > THP is not usually used, but a large amount of memory is reserved > for THP use, resulting in a lot of memory waste. > > So a dynamic method of adjusting reserved memory is proposed. when > scan and trying to merge into THP, the reserved memory is pulled up, > and when the system does not need to synthesize THP, the reserved > memory is kept low. this method can save a lot of memory in scenarios > without synthesizing THP, and can effectively pull up the reserved > memory to support when THP synthesis is needed. especially in the > case of madvise configure, the running effect will be better. > > Signed-off-by: wolfgang huang Thanks for the patch. There was already a thread about this problem, please refer to: https://lore.kernel.org/linux-mm/20230817035155.84230-1-liusong@linux.aliba= ba.com/ > --- > mm/khugepaged.c | 36 +++++++++++++++++++++++++++++++++++- > 1 file changed, 35 insertions(+), 1 deletion(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index 88433cc25d8a..41a837e618a5 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -129,6 +129,10 @@ static struct khugepaged_scan khugepaged_scan =3D { > .mm_head =3D LIST_HEAD_INIT(khugepaged_scan.mm_head), > }; > > +/* khugepaged should scan or not, trying to be thp, default as false */ > +static unsigned int khugepaged_thp_scan_state; > +static void set_recommended_min_free_kbytes(void); > + > #ifdef CONFIG_SYSFS > static ssize_t scan_sleep_millisecs_show(struct kobject *kobj, > struct kobj_attribute *attr, > @@ -2549,6 +2553,33 @@ static void khugepaged_wait_work(void) > wait_event_freezable(khugepaged_wait, khugepaged_wait_eve= nt()); > } > > +static int khugepaged_threshold(void) > +{ > + /* thp size threshold check */ > + if ((PAGE_SIZE << HPAGE_PMD_ORDER) >=3D SZ_512M) > + return true; > + return false; > +} > + > +static void khugepaged_update_wmarks(void) > +{ > + if (!khugepaged_threshold()) > + return; > + > + /* __khugepaged_enter push khugepaged to work, raise watermark */ > + if (khugepaged_has_work()) { > + /* Once set, do not repeat distrub watermark */ > + if (!khugepaged_thp_scan_state) { > + khugepaged_thp_scan_state =3D true; > + mutex_lock(&khugepaged_mutex); > + set_recommended_min_free_kbytes(); > + mutex_unlock(&khugepaged_mutex); > + } > + } else { > + khugepaged_thp_scan_state =3D false; > + } > +} > + > static int khugepaged(void *none) > { > struct khugepaged_mm_slot *mm_slot; > @@ -2559,6 +2590,7 @@ static int khugepaged(void *none) > while (!kthread_should_stop()) { > khugepaged_do_scan(&khugepaged_collapse_control); > khugepaged_wait_work(); > + khugepaged_update_wmarks(); > } > > spin_lock(&khugepaged_mm_lock); > @@ -2576,7 +2608,9 @@ static void set_recommended_min_free_kbytes(void) > int nr_zones =3D 0; > unsigned long recommended_min; > > - if (!hugepage_flags_enabled()) { > + if (!hugepage_flags_enabled() || > + (khugepaged_threshold() && > + !khugepaged_thp_scan_state)) { > calculate_min_free_kbytes(); > goto update_wmarks; > } > -- > 2.34.1 > >