Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp7807063rwl; Thu, 23 Mar 2023 08:55:14 -0700 (PDT) X-Google-Smtp-Source: AK7set8jAFG5lC6WaIYsyZ0GFA1a57EIa1YEvhrrK3lNGt2VvykNiuuouMBWvjeVK1ivdtTiNxQT X-Received: by 2002:a17:903:410c:b0:1a1:dfb6:b804 with SMTP id r12-20020a170903410c00b001a1dfb6b804mr5118752pld.11.1679586914107; Thu, 23 Mar 2023 08:55:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679586914; cv=none; d=google.com; s=arc-20160816; b=CoHZQVzsoPcUz9zbR+LIUTjKf45r/fVIvS26huCahysuPh32qmtyi8U+stXsBRyfYT A0fZTl0vN5MR1j6mkH775csjeyw2DgtEVoywMyQtPWd7xhRbjY2HSYjt3B61iLgXHOT1 MYJBToQv6x/Y1V2mishYT+IUHgjMhPICWcEJuAW7G3IAq3WyF5+nr/tUJvTMkjMmdmSN sWrhXZyWk0QAVEogG/ceaEGO63CAwsWboOkMhL3R3d7z3bqKZldXhUKBszgIAKd0Vdhy Kck/ueS6WvrdVgACQWXueqgLZCHSbWSWu6pZTqvxtJ7eSnVFweOzOB6y8+wJQVKc9Tkn DfXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=YBdASoORqRtNKDZe+JhohFUINcVjU1T9Cmqk53zCz4U=; b=e9x+F/Mew/mBgbHBoRaJAzJ4TRdJt1pksvj49Cb/gdCvogQE4Pg23ipqjLlai+svaB 0ZqjnPN/TnA+GEabF6PhOZjIYGZAjXhEn7OH1UmK6TznVoBRA3H0A88MLz1eSaZ0z733 vIBXIBcGwzeCAbAzPlX2Al6UndMcwMhyQQB7IDblfxZ5lvQJS0tRd86IqOXu+Oh06Woz IMjnHH0NJmTf/85fOxBzoXnCwJT4hphBlI9CQ3p8wwfzjQuCJZR000TDscpe3q4EKOVT GuLUAOfNp5kUzfcNA6P9NtLXeWxx1vmk3yaM6jfN5T5a/3jMT75EBYoqYEBdQ7hqQGug X1ZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=ckebmJKN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y3-20020a1709027c8300b001a071f98c39si18997755pll.166.2023.03.23.08.55.01; Thu, 23 Mar 2023 08:55:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=ckebmJKN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231439AbjCWPqv (ORCPT + 99 others); Thu, 23 Mar 2023 11:46:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231896AbjCWPqs (ORCPT ); Thu, 23 Mar 2023 11:46:48 -0400 Received: from mail-yw1-x1132.google.com (mail-yw1-x1132.google.com [IPv6:2607:f8b0:4864:20::1132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA54E2069C for ; Thu, 23 Mar 2023 08:46:46 -0700 (PDT) Received: by mail-yw1-x1132.google.com with SMTP id 00721157ae682-544b959a971so368009187b3.3 for ; Thu, 23 Mar 2023 08:46:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1679586406; 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=YBdASoORqRtNKDZe+JhohFUINcVjU1T9Cmqk53zCz4U=; b=ckebmJKNAMJvXNZunzlqH+ez60Rc/ONMAZsXIP/WI2OPr8Ugs6CAw5uIB5GQSzBF5t nZbEU4B2yYUqjm8x0bs1lBP/PqQ0xb8ZVEQCXkc+Z42xiibHqGVTX9wXrcoRFQ64iCs9 PotN+b/x3H8Xl2/rGsaQprbltIO3MbPyh+lr9YykF5ZkAaF01xGyi2kItgkAxOx3o1P0 N2yxvqIw6ycEiEWVwg5xka5yKOaO6E/6dCS3vsfKQlk7bduove72mFlBiob15+9a7S5w vsZQvTBTbmtQn+MZurcYgLRf23og+qiN+y+xr7p6VdhlSbMdUanDPNka6vaZTlo8dYu+ 7HUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679586406; 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=YBdASoORqRtNKDZe+JhohFUINcVjU1T9Cmqk53zCz4U=; b=FWxPlnOoEZtTYSohV0UaGTq7bDCV6P8shuNiMcqLXVMzfXMerzYqCO5Pvftdwe074N lATle8V8nipyUDo77PlFU49DrIoLhYc5gGucTj0RaIsHa7TcWXARXQ7eCe6Gqwq9QtES KYLb5DyM+4BdFzGDuH4kZk+JSOtj1fx8f3vnjHkmkD9Iw9tvJe5kM4qzITD7pzQV7GUp YvGh+/agukuhIakXMgNRrhtI4naQYzLQXqaHqj6o/7ZxItqm3BTtzeDRZv9u7/cqXPxI bq/BSzttzAmtSwHOzB4YVGsENYgPOqoyxkyaVHHEB57Zph/+WFllbYyMrZ8m6KBGA0iN zAnw== X-Gm-Message-State: AAQBX9ch2JzScVVJ1498MPf2K6anodzkx/MF930iaDPxLmoiXzMp36bK rRY51brqTf5NGL60VbGJOSbfauoUZMjXvybkqTKTTw== X-Received: by 2002:a81:ef08:0:b0:545:883a:542c with SMTP id o8-20020a81ef08000000b00545883a542cmr1297377ywm.0.1679586405658; Thu, 23 Mar 2023 08:46:45 -0700 (PDT) MIME-Version: 1.0 References: <20230323040037.2389095-1-yosryahmed@google.com> <20230323040037.2389095-2-yosryahmed@google.com> In-Reply-To: From: Shakeel Butt Date: Thu, 23 Mar 2023 08:46:34 -0700 Message-ID: Subject: Re: [RFC PATCH 1/7] cgroup: rstat: only disable interrupts for the percpu lock To: Yosry Ahmed Cc: Tejun Heo , Josef Bacik , Jens Axboe , Zefan Li , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Andrew Morton , Vasily Averin , cgroups@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-15.7 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 23, 2023 at 8:43=E2=80=AFAM Yosry Ahmed = wrote: > > On Thu, Mar 23, 2023 at 8:40=E2=80=AFAM Shakeel Butt wrote: > > > > On Thu, Mar 23, 2023 at 6:36=E2=80=AFAM Yosry Ahmed wrote: > > > > > [...] > > > > > > > > > > > 2. Are we really calling rstat flush in irq context? > > > > > > > > > > I think it is possible through the charge/uncharge path: > > > > > memcg_check_events()->mem_cgroup_threshold()->mem_cgroup_usage().= I > > > > > added the protection against flushing in an interrupt context for > > > > > future callers as well, as it may cause a deadlock if we don't di= sable > > > > > interrupts when acquiring cgroup_rstat_lock. > > > > > > > > > > > 3. The mem_cgroup_flush_stats() call in mem_cgroup_usage() is o= nly > > > > > > done for root memcg. Why is mem_cgroup_threshold() interested i= n root > > > > > > memcg usage? Why not ignore root memcg in mem_cgroup_threshold(= ) ? > > > > > > > > > > I am not sure, but the code looks like event notifications may be= set > > > > > up on root memcg, which is why we need to check thresholds. > > > > > > > > This is something we should deprecate as root memcg's usage is ill = defined. > > > > > > Right, but I think this would be orthogonal to this patch series. > > > > > > > I don't think we can make cgroup_rstat_lock a non-irq-disabling lock > > without either breaking a link between mem_cgroup_threshold and > > cgroup_rstat_lock or make mem_cgroup_threshold work without disabling > > irqs. > > > > So, this patch can not be applied before either of those two tasks are > > done (and we may find more such scenarios). > > > Could you elaborate why? > > My understanding is that with an in_task() check to make sure we only > acquire cgroup_rstat_lock from non-irq context it should be fine to > acquire cgroup_rstat_lock without disabling interrupts. From mem_cgroup_threshold() code path, cgroup_rstat_lock will be taken with irq disabled while other code paths will take cgroup_rstat_lock with irq enabled. This is a potential deadlock hazard unless cgroup_rstat_lock is always taken with irq disabled.