Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp5035056rwl; Tue, 28 Mar 2023 15:21:18 -0700 (PDT) X-Google-Smtp-Source: AKy350Yu8K7j0trLHzFtmRVyFlX8N9AqBjgvtBkbBqU0aLtVDkYS0N+DKQsZQBOM+DLrA4FtTYEV X-Received: by 2002:aa7:c557:0:b0:4fa:39a6:af25 with SMTP id s23-20020aa7c557000000b004fa39a6af25mr20403812edr.16.1680042078390; Tue, 28 Mar 2023 15:21:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680042078; cv=none; d=google.com; s=arc-20160816; b=OGDSXMOQOoai/HlmNeDxD6MV6G/bsfN6dPRP0VgDg2AwWDpjIYB64c7vmple0+3cV6 Pv+gxNoqhYVC0OLUCGDq8yginM2RUXYHk/HQ7yR52Ffc7XWG01jj5/KAFCtRF6eNxevT NZAumPskRDpLVGEIJk+/5cQtI5Aigluw8btEnt3YWTOBeJ489JaNM68XOxXZpj1wAHhJ /xBz/XK/AJ6dj9PREdnIMfLSMyOcIJvdhkJt5NJ/STwE7GNk4MTRC4y/vhiwYBsX70Dn Yv0e1MBnsRGNYMPKnbWFy3/qK6DkZjW78ncqTzRxs+luSViaU86WqZO9J3vFCNMueqo3 CISA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=ZQQVGwjs4PjltBBm07Wln67ACtAz9IV2/pUsgTkN4l8=; b=ymFywUnaP/2viVzR8tPBIyn4sY26lo7ST/VuwGnY/45ac59r6gz3XYDukRyweq8Fqq ij6XDq/7+CRaCcStRikjp8zx4BsPukASICA8xj9X82hQ5y0MkhUwENNbewFF39J++SxL kT/YJznelMRQ4wJVD3i1VxoVy/NHq9edSln4UiXeX8vEkHEvWVMTlY9Q/CgXvXnHyDsn yguFCP0ouAFfvobVe1/7V/NPPAwOgMNZDUaOBZuIxBeJPmOyEStLEjraSVdO3Pp3Y+U1 P4z/O8VxBwJoV8r1zeKlPiVp4WviDJvkRjrk3B7NLzBmw9nUzBl6eZGADPD33SPnPlqp UeIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=BwpN5IEN; 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 a5-20020aa7d745000000b004abcb9e6563si31501585eds.80.2023.03.28.15.20.53; Tue, 28 Mar 2023 15:21:18 -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=BwpN5IEN; 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 S230020AbjC1WRa (ORCPT + 99 others); Tue, 28 Mar 2023 18:17:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230140AbjC1WRN (ORCPT ); Tue, 28 Mar 2023 18:17:13 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5C112D57 for ; Tue, 28 Mar 2023 15:16:58 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id p12-20020a25420c000000b00b6eb3c67574so13394482yba.11 for ; Tue, 28 Mar 2023 15:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680041818; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=ZQQVGwjs4PjltBBm07Wln67ACtAz9IV2/pUsgTkN4l8=; b=BwpN5IENfDJAO3k0fvlZBkjsW+/4dRHFvKU3Y61vx7dQ2RtgMRwRfqyo0DTmjCAyVc CnLkW84f17NTLqbLQGhvt1qFEPE3lJHVmINhnviNxj716C70wOSUz3DOzWHSZ0RhU5XN r07qEoT8pGKoQFAOapju4r5aUWkkVs0eQmIgIci7KEjffCx1HyDeGdNPdwdlAJbu1aOk 7WwXMQu8pO8A54UInZRnQw9kbNQZxf/x1jM4losJCUKwsJkxT/8pf/ZH8ftd03KJhEdg XtPwGtxKxPzrVZOjpFL3fFaXSbnVLYOlrmJD9NS/UpXXC6msV74XQ/lannH6QIJ1sQ32 hXEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680041818; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZQQVGwjs4PjltBBm07Wln67ACtAz9IV2/pUsgTkN4l8=; b=DwWY2JM7kDBgV56PkudgqRlITQZCCTVlnsNd4UDja4mbKPnL6V6LI+lza5X0IEqX6W okMrNt9eoiT0fD4qSsXOoOCgg4mP1PVGI0l3LUqF2fX9gHM0ub1Bb05zwy4xMgtgWxIc LcfieuDq+b1hCeEpm54q6nLHxdh+hkE+Uy6YT7PQ6EZdbq9wAslyV3rhaQCc+buhyjqk plY3PPvJVR+dTNDEwobW14zO2LM7O62CugKLVLJVe3ce0hNxPfRDhrpR+OjT3Xaskh02 WEv/MT4eB4flD3MP5x3UMOoBHiKcBP9QEsZ/PgSq7RPQpDQdcgsST209yIlepoOadzb+ e01w== X-Gm-Message-State: AAQBX9d1hgkD99HwtRgC4p4a3JSCbx5TasSyqBoGk11Jl4fUuvOvjowQ zoL8SMogZBB1I8qwj5ZRxJHmYoOqvw9Rodra X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2327]) (user=yosryahmed job=sendgmr) by 2002:a05:6902:1003:b0:b1d:5061:98e3 with SMTP id w3-20020a056902100300b00b1d506198e3mr11533410ybt.6.1680041818092; Tue, 28 Mar 2023 15:16:58 -0700 (PDT) Date: Tue, 28 Mar 2023 22:16:39 +0000 In-Reply-To: <20230328221644.803272-1-yosryahmed@google.com> Mime-Version: 1.0 References: <20230328221644.803272-1-yosryahmed@google.com> X-Mailer: git-send-email 2.40.0.348.gf938b09366-goog Message-ID: <20230328221644.803272-5-yosryahmed@google.com> Subject: [PATCH v2 4/9] cgroup: rstat: add WARN_ON_ONCE() if flushing outside task context From: Yosry Ahmed To: Tejun Heo , Josef Bacik , Jens Axboe , Zefan Li , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , "=?UTF-8?q?Michal=20Koutn=C3=BD?=" Cc: Vasily Averin , cgroups@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org, Yosry Ahmed Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-7.7 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_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 rstat flushing is too expensive to perform in irq context. The previous patch removed the only context that may invoke an rstat flush from irq context, add a WARN_ON_ONCE() to detect future violations, or those that we are not aware of. Ideally, we wouldn't flush with irqs disabled either, but we have one context today that does so in mem_cgroup_usage(). Forbid callers from irq context for now, and hopefully we can also forbid callers with irqs disabled in the future when we can get rid of this callsite. Signed-off-by: Yosry Ahmed Reviewed-by: Shakeel Butt --- kernel/cgroup/rstat.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c index d3252b0416b6..c2571939139f 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -176,6 +176,8 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) { int cpu; + /* rstat flushing is too expensive for irq context */ + WARN_ON_ONCE(!in_task()); lockdep_assert_held(&cgroup_rstat_lock); for_each_possible_cpu(cpu) { -- 2.40.0.348.gf938b09366-goog