From patchwork Tue Mar 28 22:16:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yosry Ahmed X-Patchwork-Id: 13191617 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 04317C77B60 for ; Tue, 28 Mar 2023 22:17:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1AA966B0075; Tue, 28 Mar 2023 18:17:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1599B6B0078; Tue, 28 Mar 2023 18:17:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3D1C6B007E; Tue, 28 Mar 2023 18:17:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E25B26B0075 for ; Tue, 28 Mar 2023 18:17:00 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BCE5C80C20 for ; Tue, 28 Mar 2023 22:17:00 +0000 (UTC) X-FDA: 80619718200.01.D5A7400 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf24.hostedemail.com (Postfix) with ESMTP id E3C1018000F for ; Tue, 28 Mar 2023 22:16:58 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=BwpN5IEN; spf=pass (imf24.hostedemail.com: domain of 3WmcjZAoKCN0XNRQX9GLDCFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--yosryahmed.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3WmcjZAoKCN0XNRQX9GLDCFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680041818; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZQQVGwjs4PjltBBm07Wln67ACtAz9IV2/pUsgTkN4l8=; b=5BNFdQ67qHLMzbDeDi+oFJgcHJqTbwdZP/srJ0dN1guqIX/1+dhpoqeJtSF21PRjBpz1Ni nJz90S2KBdhGdqRSrFoO7F9SE4UREgCxzlOFPy5FG4HlWwDel/FiVTS3TWDFobBBw1EXzz i3rXhHb48s6zfY5YeldEjkM9FdqBrL4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=BwpN5IEN; spf=pass (imf24.hostedemail.com: domain of 3WmcjZAoKCN0XNRQX9GLDCFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--yosryahmed.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3WmcjZAoKCN0XNRQX9GLDCFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680041818; a=rsa-sha256; cv=none; b=YQMAXPUIBRJM1bNH+fOWoNClHonLJwSa385mwjoPXbmgCQDqkawb0+ysb0+FtMWgaFm10d E+7dTQVSsliZS+EO75IMxV81dUZSPbJMbzDm9rUooUiN6pnCtVK1p7mFC4lKxCcFq25Aan iNnWwpBo+GSemsIrfLGN7vZqul680ro= Received: by mail-yb1-f201.google.com with SMTP id w5-20020a253005000000b00aedd4305ff2so13543755ybw.13 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=D24Sx7gVbeYG47TYHf0dd4zKMsB7kEbt2yk1p0UM3/PFQfMAcR7PjxEcBQf8UbVSC/ Oz/Tuoi6mkLpc3X8Hwi/UT3//gp/3+DL/QiarSOtIBuQuPxYC9WYEnX9pBVolSG10iJn ShBcV5LHM4h0yFGlrjoUGytAvFQzG/lJrn3rL2yqolrxl8alPxKzDQbjiFMPhqN07565 bejPo7eu8ucB7ADl2Ma7mJWubkUfmyP/WU6quP8reQW153x+mENpXX6MAvyoqSctG+jX dKxkRRxNFdNB5RNn9VPIFNQW5eLroo/2jlmmtWe8fZ9cvlyNbgMpTQez1m/j4g5q3cQP Hbcg== X-Gm-Message-State: AAQBX9dI0HCCN9RvNzFy/folW34wSg3Z70padhzy9GP/wD1EYsEDb5c9 dcGDvPQcXFzuUmgJtMK70Q1v16am6ulyCr8l X-Google-Smtp-Source: AKy350a+cGo/rQiavcF9zU9F0niI9qIhWFxPTrQKaAQYONdIyzIaIiEtY9m/Hx7sNG18TtPt6miuAFUHkt3sB0SU 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_Koutn=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 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: E3C1018000F X-Stat-Signature: gjg6x1j6atjaqj86xk6y8un6g488pyp3 X-Rspam-User: X-HE-Tag: 1680041818-572597 X-HE-Meta: U2FsdGVkX1/Oc+HH8jEiXPopsCnNnEqyNnBiXrCECJmz3MH5H962NdJUi9BfcqVaXfS28Pod54Vkk/POWGQIIBfhIcu+NPy1/6BBSYBiBGhadiwccr56LbJisa7p3dkyTjqwHK8Pq0Uuv9o6TnA5jDX/klnYoVhmSWjHklZoG5mnWZrrfdHXQiy6xNLdF257FhmwxRRVLbxVqwdq39HnKROT3kDg0ts3ptiBki3l8+Yqbs8x3osFXwyDhuUyc7upvYWbljve99lC+EivQYcBRqkAqFL1486M9e5lyablqgaXsOFIUCMIc824gD9tzw/Mmdfz69vSV2+2Eyux+VtPxpEWhmAbt1oNhvDjRZygLAU2DmSDSFezDO9R401dE8TnUH0AQWyf4NxnzrRoWoQhhs9yH/xnaK2dmPydluYfXEnQajenpIZ8OLradsS8FgVH+T8m22z0+cAnhcr1gDL8rIBZK/UF7+JKFq0IPkrm2HpVBQCaj/rdlWTAqWMerc1vADhUyU9dySCCJ9V+sdVWbJsVkz6anmAI/d1XgGe7Qc37PGIhijgkZrdT2aQ+axk2yxukjEydaDVoprU2bkvF/ovzP88YvzakpnSU8HbdZvF+KLwbbMZGU3/1Yjw8tUuUcPyOsXJXBTevbstb1P2mhBHXg7UhLteIGJiqBlBpKEy0r996/XrBWRv0XIqhjGnpqsgjF9ZanuoShKG4D0rShD9G3TpzL6VurcAz8uUlcKz2wHZ5PRG3AZV/xOdxDkVfegzJ0jZDq5Ud9n6oA2O22CkO8Ry+jP6ZWPk10Lj3zP3i9vW6cjNCU1EF978wlnCa2D+V4mjaiyafEm1YkIokIZ4YE0LSq+TLS/druHon10+y85slZ+I5TcTIPg0PZ7+kmrr0M0BIBnnn2E+D52qQ3ctLpuMOPvgRAv3P3n34vs8/XPLdYzAh0FmRkKT6Fn5IG46Y+D/pLubBalVILkr PTWTgN1r AA0KRIjRbVMi2Xtn+fXlm70uCkKRgb+SLwAB5ecrnxGsY3foAMiakkVCmoBb1O3rCN4ZQVGZwNXgpDy2rojqmgGNlhiscZeZRJIGEqrPUmSuDgKGDiqwGzHz8pI/iDHGbAe2ngIMVGpG/rNs0BIhq9Pp/RDc9/CszUUqXpFdpkxaUhdNh9lmRdcA29d3khex7Kbfcz36mlX6mPKsXN7BUapl5H+d4SGArX3lsjIBEv3xoLxQF3HGVXCCEQC7/cJU+EvNhz71dJ7YeCnRqWWh8mxq8VBzjZxGay4oLj0/1sNUkoof915a8Xz6wAzwSWo5lBJpdDtseTXPCaEF/xIg5jmcdvPj+SsFZ1HSd+eyoN9tUW0ogmL95s2b/HPS+Fpn50/hryX0yUCE/pl6/x7iD0QuYmSkPqHm+GjtLZn1LwsVmVAR4h/J9M7U2ci1OkoAiCy1SEPQ06kkpTwGjKXnj2XATTh9HWMN3SOljdLz7XRyGvUwryfR7VhIUpHZ/529vqdI0hw0OFrXylnfJqZwsV1yrOhz+rgmZD1lg00JoPA5QqBix8o2l5rCAbrOpY82zuP+bWMin15RvEWGqHpQYNs3P0mY9NAv2qHpPgVbrhJcBBE5xx8X97jSWiAvV74nzDGRXaCvbmb9XqzHlLyetQsuCjt9BQYHd6DHtX3XnunC+JiVQ2e2Oxdr8cVGhOVcXPSUKUtXX0dELACk= 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: 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) {