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 0A990C433EF for ; Mon, 4 Apr 2022 17:19:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 795D46B0071; Mon, 4 Apr 2022 13:19:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 743EA6B0073; Mon, 4 Apr 2022 13:19:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E48F6B0074; Mon, 4 Apr 2022 13:19:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0253.hostedemail.com [216.40.44.253]) by kanga.kvack.org (Postfix) with ESMTP id 4CC7E6B0071 for ; Mon, 4 Apr 2022 13:19:31 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 0B40DAC50E for ; Mon, 4 Apr 2022 17:19:21 +0000 (UTC) X-FDA: 79319857722.21.E489CFF Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf18.hostedemail.com (Postfix) with ESMTP id 536A91C0032 for ; Mon, 4 Apr 2022 17:19:20 +0000 (UTC) Received: by mail-pj1-f44.google.com with SMTP id n6-20020a17090a670600b001caa71a9c4aso2570182pjj.1 for ; Mon, 04 Apr 2022 10:19:20 -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=uhZvWBIYSPxrHtL/UXP4sOCKqMqAgTQ5cHbzprIzUlI=; b=rzW4aaUe8wJHBTW/ExLvJddgYRg1t4YhtSpQVQScLfUwXMUjqtSxLLNi52Rpn5/B9e 4fm33kwEjNNC8PObxWVWNVFke/MshRfAUZolEP0oeRGIcWs1cMZ8dqnCMHUOTSSXF2R+ Nxc7bj+ITBZAcBUCg6yEKcw6zz2obIN/RDEpBS+4YLPJ4AjvRWmQYm9ga69a1RiY4EDX oGzty137ABa8Ztyvwr1RlrkdXRpVcepr1eO0rJxfGr76K3XVs6VQ3L6PIza3Wro/7erv oZSbbPlhDhdZagCPj0TuB4euNN0h0a1bfMWvh80WoOYfDkjShCEByhv1m6HFJ/OrDhaM E/NQ== 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=uhZvWBIYSPxrHtL/UXP4sOCKqMqAgTQ5cHbzprIzUlI=; b=rz/798Hihxs8MIcOeYbHoJV5aEqG81yuYGh5L0nVKxD5XGqBKgL+kEii8iAvJjfSUp lroWbpicBhcUKbjNMCZxFXaU9VwKKWpJ9fr5+C1eYYDjvgtTv3rJT/NR+Gj0qYswrg9m CimJ0hV7foDvD1WVh28A8bn5I9obyfltt1+wKEXP3b0wcNlvQgAPm1d2b6xOVtmKoygj Nh0wzN4Je8UoNpWFm4mQQwOl5CM5J22A2mffY46ttY0tOpw8yTgInSa6ri8n2cYBBz+D HIP6badkKfFE6ZgV4scR7UpOBctccy5dv/wQaVKMlTZnn40XURhrOz6AZuda5wP27W0W G7jw== X-Gm-Message-State: AOAM531paFREoqwYhi3nQ5L3MxoeL00I8FHJZT4CYuSDpDRLnWYfZ7vR InfkKqpZ/unHcxVnsvkeXmOekdeSow81KHQv0iSShQ== X-Google-Smtp-Source: ABdhPJz50EolXnmloOFRdflV7luhmQEbXQ6TLx1sRiAzjczB5dC9hpz0y8SCGJwdMY8U2thvWleWIxvnBRXFYbPjKbA= X-Received: by 2002:a17:903:2351:b0:156:a562:b3f8 with SMTP id c17-20020a170903235100b00156a562b3f8mr670651plh.81.1649092759112; Mon, 04 Apr 2022 10:19:19 -0700 (PDT) MIME-Version: 1.0 References: <20220331084151.2600229-1-yosryahmed@google.com> <874k3d6vuq.fsf@vajain21.in.ibm.com> <871qyd7bif.fsf@vajain21.in.ibm.com> In-Reply-To: <871qyd7bif.fsf@vajain21.in.ibm.com> From: Yosry Ahmed Date: Mon, 4 Apr 2022 10:18:42 -0700 Message-ID: Subject: Re: [PATCH resend] memcg: introduce per-memcg reclaim interface To: Vaibhav Jain Cc: Johannes Weiner , Michal Hocko , Shakeel Butt , Andrew Morton , 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 , Wei Xu , Greg Thelen Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: wzczjhzuscr75xebdf5byeq1idp9n5bi Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=rzW4aaUe; spf=pass (imf18.hostedemail.com: domain of yosryahmed@google.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 536A91C0032 X-HE-Tag: 1649092760-896444 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 Sun, Apr 3, 2022 at 8:50 PM Vaibhav Jain wrote: > > > Apologies for the delayed response, > > Yosry Ahmed writes: > > > On Fri, Apr 1, 2022 at 1:39 AM Vaibhav Jain wrote: > >> > >> > >> Yosry Ahmed writes: > >> > From: Shakeel Butt > >> > > >> > Introduce an memcg interface to trigger memory reclaim on a memory cgroup. > >> > >> > >> > + > >> > + 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; > >> > >> I think there should be a cond_resched() in this loop before > >> try_to_free_mem_cgroup_pages() to have better chances of reclaim > >> succeding early. > >> > > Thanks for taking the time to look at this! > > > > I believe this loop is modeled after the loop in memory_high_write() > > for the memory.high interface. Is there a reason why it should be > > needed here but not there? > > > > memory_high_write() calls drain_all_stock() atleast once before calling > try_to_free_mem_cgroup_pages(). This would drain all percpu stocks > for the given memcg and its descendents, giving a high chance > try_to_free_mem_cgroup_pages() to succeed quickly. Such a functionality > is missing from this patch. > > Adding a cond_resched() would atleast give chance to other processess > within the memcg to run and make forward progress thereby making more > pages available for reclaim. > > Suggestion is partly based on __perform_reclaim() issues a cond_resche() > as it may get called repeatedly during direct reclaim path. > As Michal pointed out, there is already a call to cond_resched() in shrink_node_memcgs(). > > >> > >> > >> -- > >> Cheers > >> ~ Vaibhav > > > > -- > Cheers > ~ Vaibhav