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 1559FC433EF for ; Fri, 8 Apr 2022 13:43:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 778666B0074; Fri, 8 Apr 2022 09:43:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74F646B0075; Fri, 8 Apr 2022 09:43:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 617096B0078; Fri, 8 Apr 2022 09:43:07 -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 53AE16B0074 for ; Fri, 8 Apr 2022 09:43:07 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1FDA025B4E for ; Fri, 8 Apr 2022 13:43:07 +0000 (UTC) X-FDA: 79333828014.18.ABA926F Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by imf31.hostedemail.com (Postfix) with ESMTP id 98F0220005 for ; Fri, 8 Apr 2022 13:43:06 +0000 (UTC) Received: by mail-qk1-f179.google.com with SMTP id g11so3695795qke.1 for ; Fri, 08 Apr 2022 06:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=usXuRJ1HBdyqGrxJX6MSUUEje7zULhcW0WK5TkC07EU=; b=JGvLuYecJdMvhSnQQgFQpCHMrAZp1psXgvW4Wojv80bQnyUjpdPY1Yz/DqdVdmQgQQ pvWKNO78nmCZgnU3ADHDBABagTnxyahI46DtiJxJVRQzlYeEHap+MwA2HpwzyoyDOo9p kmL77mgh5l4qdNdp3yFw/CVxBixxaPsKrJz6zmW5qinIGKYIxt3tpa0T1d6zGUcnDuDf rclg+AatTczypAJ6SxUXFQ689CwdUCeGdii7LVrDr3UM5zg0YEvRQXzKqcFcqI4FvkRi JQRMmH2pHZwahBOkt8ec4MIdUijj1lZt0bTK5ua3Zs9CXs+qRvwlaBGjVXNpT8jhrpkA K/sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=usXuRJ1HBdyqGrxJX6MSUUEje7zULhcW0WK5TkC07EU=; b=EhVBP2EOYiYRV21ZU85kv333tf0l+yuXuFglx3f0ePeaHJEeBVExONBDQBw+QqH+Jb E33Aitw5g8BaZCiv0FNjJkPtEW64705aZ6+bbzniunwK1NJBh1f1UWc/7mkOXNzJKBn5 4oYFibrV4BBGfUuYa8AxZ9DjWFplG4ZLhx5CAh4c2HSRNBJ9FRsL28hPKDMpSlU8+1X0 9l/GxklYWJzhpck3cFkjF05BkdAokUbk4NWRSmI+S1+/TheOLYwfqe5Z8VCCkufz3TYo JF44DsPOxf4sBALZ1kZeNKtxLaSU2tlkE2WUI0pa+NeBUjFX/7tty2poi3lMLA2kU56t ov2A== X-Gm-Message-State: AOAM533bZTZ2D+DQgCx9sondTvPW76DEMNrD9utcXmHwgcGtyj/vDv0L QDImjnA9UEtT9dav1ktnS6Q= X-Google-Smtp-Source: ABdhPJwKb3j8nwLRTzxpkMdgP+ZKR36kQhmnucIRB4JxEvmQk5W70XZ9K3BjtfNj/y/WPSYCOCCD2g== X-Received: by 2002:a37:92c1:0:b0:699:a3e5:f74 with SMTP id u184-20020a3792c1000000b00699a3e50f74mr12768518qkd.141.1649425385772; Fri, 08 Apr 2022 06:43:05 -0700 (PDT) Received: from dschatzberg-fedora-PC0Y6AEN.dhcp.thefacebook.com ([2620:10d:c091:500::2:77ef]) by smtp.gmail.com with ESMTPSA id v12-20020a05622a130c00b002e1b3ccd9adsm17660596qtk.79.2022.04.08.06.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Apr 2022 06:43:05 -0700 (PDT) Date: Fri, 8 Apr 2022 09:43:03 -0400 From: Dan Schatzberg To: Yosry Ahmed 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 , Michal =?iso-8859-1?Q?Koutn=FD?= , Tim Chen , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Michal Hocko Subject: Re: [PATCH v3 1/4] memcg: introduce per-memcg reclaim interface Message-ID: References: <20220408045743.1432968-1-yosryahmed@google.com> <20220408045743.1432968-2-yosryahmed@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220408045743.1432968-2-yosryahmed@google.com> X-Stat-Signature: sdsh76bisww58eqjq46o6ad3dic81saa Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=JGvLuYec; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf31.hostedemail.com: domain of schatzberg.dan@gmail.com designates 209.85.222.179 as permitted sender) smtp.mailfrom=schatzberg.dan@gmail.com X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 98F0220005 X-HE-Tag: 1649425386-858597 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 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. > + 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;` > + > + 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;` > + > + nr_reclaimed += reclaimed; > + } > + > + return nr_reclaimed < nr_to_reclaim ? -EAGAIN : nbytes; Then this can just be `return nbytes;` I'm very much in favor of this new interface. Thanks for working on it!