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 AD6B7C433EF for ; Fri, 8 Apr 2022 17:21:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E71306B0072; Fri, 8 Apr 2022 13:21:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DF9966B0073; Fri, 8 Apr 2022 13:21:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4CAE6B0074; Fri, 8 Apr 2022 13:21:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0121.hostedemail.com [216.40.44.121]) by kanga.kvack.org (Postfix) with ESMTP id B3A0D6B0072 for ; Fri, 8 Apr 2022 13:21:47 -0400 (EDT) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 5764B183BCA2D for ; Fri, 8 Apr 2022 17:21:47 +0000 (UTC) X-FDA: 79334379054.24.293B471 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by imf22.hostedemail.com (Postfix) with ESMTP id C8D15C000A for ; Fri, 8 Apr 2022 17:21:46 +0000 (UTC) Received: by mail-pg1-f169.google.com with SMTP id k14so8360334pga.0 for ; Fri, 08 Apr 2022 10:21:46 -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=iM6uzIK2cRc6kF+XG8vLt5tKa+TcH20c4ZrUE/qi6/w=; b=lhsl/nELK+CjK9EjiqEgxM40CNFrd8O33D5yScOZeEFmN2mtYBl1RRyh7teoVon061 kj8aY6QVT/NAOTigSUu8Y7225f3BAoDTOIFbFJkqfikA4nBu9W5zKfjzNjscVbUZpCEL TOfbFvs9CWUtBubunb4AJlZmBb5dRqOf9Yk4pxiGSjBWmoRGBB5QRajWXj9az8Q251gb crS7qVsWxwVcQFaYZGkjAOUYH9TaUrXMqf5Y/wuhESvfTMT3NyPb+tqY6eFtedGk1kHC uNhWX+utb/ZtxKPlsJceIR3VICKbc1+Hr9yOvb7P/hl/5YSRR9rMdsoD2qOcmmo91tnf ktpA== 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=iM6uzIK2cRc6kF+XG8vLt5tKa+TcH20c4ZrUE/qi6/w=; b=u4rDcvAloGX6XzXs8htZ3RIv7qWi0HxDdQykUlwgGl0XLrNNlZ7+SXMwQw+CcIcfay STTiyo2hGaShd+yMgkdiJkg8OycCjurSvZn2Yi6n9AsfVBm5mCCL8HplYvzIr2c71WUb UrdDDwUjUEXX5ccq9Am2PFk3ggJsxvDTUecJzdhmZKn2sD4LBZ8J/V7u7lDfy1ydpqJ4 XVv8CCZ7towb/Ab/taXYKlf6pCrL9UbOYoHNGa0TFBGUuHuiMyKZGw9hDzN8mC9PHS3q FpT9N0ktIiwMsYkRbNVj/zV171Af/IjoWcbuHZjgsIBojyMKVHPcftf+a99aast4NG5x 0TGg== X-Gm-Message-State: AOAM531hRLb+4jf/dyYCbn/Vvax7ZnR5EVAG2E+LHMaecdmPFLrJEfZW uldKHfquN7c/2mSKQ1Akvt1Mb3G5TTT5oP3sFn6/cw== X-Google-Smtp-Source: ABdhPJyC7OqfNQfRa6C4f4USe56Z81wNzno+TIeM/lYp3ZM7PQEnEsoenRPgyb0yZY/kqYDC5BKIP2jJs8oo5ma2nH0= X-Received: by 2002:a62:e815:0:b0:505:8dbb:2f33 with SMTP id c21-20020a62e815000000b005058dbb2f33mr3189854pfi.68.1649438505432; Fri, 08 Apr 2022 10:21:45 -0700 (PDT) MIME-Version: 1.0 References: <20220408045743.1432968-1-yosryahmed@google.com> <20220408045743.1432968-2-yosryahmed@google.com> In-Reply-To: From: Yosry Ahmed Date: Fri, 8 Apr 2022 10:21:09 -0700 Message-ID: Subject: Re: [PATCH v3 1/4] memcg: introduce per-memcg reclaim interface To: Dan Schatzberg Cc: Johannes Weiner , Michal Hocko , Shakeel Butt , Andrew Morton , Roman Gushchin , David Rientjes , Tejun Heo , Zefan Li , Jonathan Corbet , Shuah Khan , Yu Zhao , Dave Hansen , Wei Xu , Greg Thelen , Chen Wandun , Vaibhav Jain , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Tim Chen , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, Linux Kernel Mailing List , Linux-MM , linux-kselftest@vger.kernel.org, Michal Hocko Content-Type: text/plain; charset="UTF-8" Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="lhsl/nEL"; spf=pass (imf22.hostedemail.com: domain of yosryahmed@google.com designates 209.85.215.169 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com X-Stat-Signature: 6n4nssnit851po3ipnpbwzgwxa4suuxx X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: C8D15C000A X-HE-Tag: 1649438506-304566 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, Apr 8, 2022 at 6:43 AM Dan Schatzberg wrote: > > On Fri, Apr 08, 2022 at 04:57:40AM +0000, Yosry Ahmed wrote: > > +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); > > Is there a reason not to support "max"? Empty string seems odd to me > here. We can certainly support "max" to reclaim as much as we can with MAX_RECLAIM_RETRIES, if there are no objections from the maintainers. > > > + if (err) > > + return err; > > + > > + while (nr_reclaimed < nr_to_reclaim) { > > + unsigned long reclaimed; > > + > > + if (signal_pending(current)) > > + break; > > I think this should be `return -EINTR;` Yes this makes more sense. I think this was modeled after the if block in memory_high_write(), but maybe it makes sense there to just report success as the new high limit was set anyway. Will change it in the next version. > > > + > > + reclaimed = try_to_free_mem_cgroup_pages(memcg, > > + nr_to_reclaim - nr_reclaimed, > > + GFP_KERNEL, true); > > + > > + if (!reclaimed && !nr_retries--) > > + break; > > Here you can just `return -EAGAIN;` Will do. > > > + > > + nr_reclaimed += reclaimed; > > + } > > + > > + return nr_reclaimed < nr_to_reclaim ? -EAGAIN : nbytes; > > Then this can just be `return nbytes;` Will do. > > I'm very much in favor of this new interface. Thanks for working on > it! Thanks so much for reviewing it!