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 387BCC433F5 for ; Fri, 1 Apr 2022 03:39:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C54638D0005; Thu, 31 Mar 2022 23:39:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C047D8D0002; Thu, 31 Mar 2022 23:39:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AA5C48D0005; Thu, 31 Mar 2022 23:39:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id 9DE8B8D0002 for ; Thu, 31 Mar 2022 23:39:00 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7E66722431 for ; Fri, 1 Apr 2022 03:38:50 +0000 (UTC) X-FDA: 79306903620.06.1780855 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) by imf30.hostedemail.com (Postfix) with ESMTP id F36F18000E for ; Fri, 1 Apr 2022 03:38:49 +0000 (UTC) Received: by mail-io1-f54.google.com with SMTP id p22so1868740iod.2 for ; Thu, 31 Mar 2022 20:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hJ9w0vjGF60hV1jwTCwkmqKMT8MPf1xtJXL++UES4qY=; b=sdZWMtzHnJv1VHTyDpKpYUwNhjIuI9a7tcXI/FgRTIIZ5ukpZ4YE1gzZ4NIwUJ/yLW ontK0twBtMRgMUAuB3XoVPBxkx1u8ljBY3neVZ/ZbKwoxvvOmtITTYduYFewRSwCrzgg 9ZgIB9ihjVZADAfyBSTxCQxVJHg0wEwL+QsxHCNc5OYHJcDV1fFk4tAcv81F2UhtPley Hncdj/WWY39C2l70OUJY7Tby2YvHAG4c/hVHDFx4R78Dj60TZX/eDiMRa82AM73wK7wh xP5FKWMZLhlqm3Z4lOn+c0+dLNADzkK1dadFETFvblqC8MQuUarqI4R43OmYEFbg22nl MCwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hJ9w0vjGF60hV1jwTCwkmqKMT8MPf1xtJXL++UES4qY=; b=LhL9LlSuWPeqK5AyjYlVbGfbbiLotv8vWjfYQ36KRKyPKYXhD/EnCU5WEvNo7A8X0O az5IH7BqmsYczc38wGF+H9aD4Uc8Eo9QpE3Op45jnWwClr/mDQCTNGnxwM65zz1n3+un 3TzmTerB+XLE4JQVbBgO2/MCzLmWpbyJjHOiK7r1m+uWAgB/zvX2lzI3TtwZHr4TKXQT aC8FtSuiVZ61eDku/+Z2BVl1JDLKaO8auatNsW6X4OexV4mvlZpeukCH1BR/3FnQRpkq 3eL0Xe1P0uH62Pw35Y1gTeKr/6RQlCV5+gWLH9d4c8RCw1M/sHcm/xbiYbxRIvKWOGE8 P/UA== X-Gm-Message-State: AOAM531Z8URHka2ymUij2RD5F6f7eaJoRr2hw3Vbvin3HZE/L/MNEyE0 8J6ouxsIFy87x+s8VhyCUIZ8a8ipM5BiA6++5Teq1A== X-Google-Smtp-Source: ABdhPJxeYgYAUsseH/rAMZM0rgUWfeHewSkxHQ10KcJClxBVFbO0qRkSJr/2Qjs1IEEJ5i8mMVQVP8aUF3NyPqW/K7E= X-Received: by 2002:a05:6638:3012:b0:317:9a63:ecd3 with SMTP id r18-20020a056638301200b003179a63ecd3mr4934731jak.210.1648784329202; Thu, 31 Mar 2022 20:38:49 -0700 (PDT) MIME-Version: 1.0 References: <20220331084151.2600229-1-yosryahmed@google.com> <20220331173350.1fe09370479a4a6f916b477d@linux-foundation.org> In-Reply-To: <20220331173350.1fe09370479a4a6f916b477d@linux-foundation.org> From: Wei Xu Date: Thu, 31 Mar 2022 20:38:38 -0700 Message-ID: Subject: Re: [PATCH resend] memcg: introduce per-memcg reclaim interface To: Andrew Morton Cc: Yosry Ahmed , Johannes Weiner , Michal Hocko , Shakeel Butt , David Rientjes , Tejun Heo , Zefan Li , Roman Gushchin , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, Linux Kernel Mailing List , Linux MM , Jonathan Corbet , Yu Zhao , Dave Hansen , Greg Thelen Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: rpr33qa8f9fftffsmdyc486x7uqsb9xr Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=sdZWMtzH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf30.hostedemail.com: domain of weixugc@google.com designates 209.85.166.54 as permitted sender) smtp.mailfrom=weixugc@google.com X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: F36F18000E X-HE-Tag: 1648784329-693590 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 Thu, Mar 31, 2022 at 5:33 PM Andrew Morton wrote: > > On Thu, 31 Mar 2022 08:41:51 +0000 Yosry Ahmed wrote: > > > --- a/mm/memcontrol.c > > +++ b/mm/memcontrol.c > > @@ -6355,6 +6355,38 @@ static ssize_t memory_oom_group_write(struct kernfs_open_file *of, > > return nbytes; > > } > > > > +static ssize_t memory_reclaim(struct kernfs_open_file *of, char *buf, > > + size_t nbytes, loff_t off) > > +{ > > + struct mem_cgroup *memcg = mem_cgroup_from_css(of_css(of)); > > + unsigned int nr_retries = MAX_RECLAIM_RETRIES; > > + unsigned long nr_to_reclaim, nr_reclaimed = 0; > > + int err; > > + > > + buf = strstrip(buf); > > + err = page_counter_memparse(buf, "", &nr_to_reclaim); > > + if (err) > > + return err; > > + > > + while (nr_reclaimed < nr_to_reclaim) { > > + unsigned long reclaimed; > > + > > + if (signal_pending(current)) > > + break; > > + > > + reclaimed = try_to_free_mem_cgroup_pages(memcg, > > + nr_to_reclaim - nr_reclaimed, > > + GFP_KERNEL, true); > > + > > + if (!reclaimed && !nr_retries--) > > + break; > > + > > + nr_reclaimed += reclaimed; > > + } > > Is there any way in which this can be provoked into triggering the > softlockup detector? memory.reclaim is similar to memory.high w.r.t. reclaiming memory, except that memory.reclaim is stateless, while the kernel remembers the state set by memory.high. So memory.reclaim should not bring in any new risks of triggering soft lockup, if any. > Is it optimal to do the MAX_RECLAIM_RETRIES loop in the kernel? > Would additional flexibility be gained by letting userspace handle > retrying? I agree it is better to retry from the userspace.