Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp653713rdh; Sun, 24 Sep 2023 06:17:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFcg6UdRbo4GGTkmG3qA/ggMtQz2W425ArayfSQzqONJECoBwAkzMykAAmjcXDZ2Nkie3q6 X-Received: by 2002:a05:6a00:10c8:b0:690:cd6e:8d38 with SMTP id d8-20020a056a0010c800b00690cd6e8d38mr4659222pfu.25.1695561440912; Sun, 24 Sep 2023 06:17:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695561440; cv=none; d=google.com; s=arc-20160816; b=uSSlgFymS51CJmdxCbn1euPFm7xc7uRDVCV3ZegFG7HSJ/VtLCvSFOC8F7gMnaLYEy UFQFd3fWyIhSWx5myB0d07bEb8hwJgHVlFGCM7S52OzpKFYPsniSYGJHXCBzu/Pra0fp hi5kD2eVwBNjmRwPB7SuDhGqhzMrpCKjzRYEpfoc4WdKlC3XvBfEaNKvdTAZJBg08kft rM4RQp+9bopbmWSkC8n2+5djyKK4tNrEKlRagfBUJuar87QdUmKehLPCePRRdCFJ9dYO a/f/JH0w/tDStRxBAqM71Tb0kZCY9P/2YbHd9o1yzbE4+m2mbuzt6HnFpEfnfqChjsGn szDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=JQGTLDZIQrPfhcTcJHvArqTeJVZD3URI1mieeVQBLxo=; fh=2tNWquZ974QQlTg8olhgKvJ+4ffHiuU3jWfmI28HYtk=; b=DWz+YXQi6CFNFTPGhkn7eEnaofn6XuYNiqMrOZQyvnP4zFIsuY1sM3FxK/QaOCKI0L RZSAnuOCcy3w0gw09Pqf1FE7Kn7n8rx5SyFLoYDbcv3ONxe41WMUJRhqrUdfwkUHlq5v GrOaXQaQJb1MowfGBI4ODCQQlBPtiOsB/A39jyLR+qVdc5Y57suTBTfEuF2hojQp8KAm P74GlM8HvlOX3WyGxRnGVHChwQ8CcxFJjcSELu9SyeQFA4kDFmQlGHk/EDerUmCt2FI1 XM8QkB5NTUVF90QqiF3G7RShGcu4nG2CicjLf867DtLYWG5G1u9Sw+aa71lhM9Zb426V 4qWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ff4RX48w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id c192-20020a6335c9000000b00578a9192d90si8150488pga.140.2023.09.24.06.17.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 06:17:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ff4RX48w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 5D22A8038F86; Sun, 24 Sep 2023 06:16:46 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229526AbjIXNQq (ORCPT + 99 others); Sun, 24 Sep 2023 09:16:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230029AbjIXNQ0 (ORCPT ); Sun, 24 Sep 2023 09:16:26 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0D13E6A; Sun, 24 Sep 2023 06:16:03 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0C39C433CD; Sun, 24 Sep 2023 13:16:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1695561362; bh=I9ozwPOUqR1/WfEFWtXGaNdaEyw44SzolIDl8WwYI0k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ff4RX48wbbbNi+sDvsaBqfV06loLZWZI6cDVtac14DqtX96l8dqxptOzn8+iibq0A 22ADCFvgUOwjL+MFmdBZsoZE5bjiviJ/mSSt4oIiZHnGHFG5KNqgu+d/51X/7zURbu gOKt3ogpr3YzG937R0fyMREuYfduN06WXkkg2LJuCo9wkpWBzeTTLBs1jlTXBBhigg CDj1R/uKwsLPHsw46p3kw5TNqb46YOynJxAeHPijzSbKvjJqqzAG4zYLBdPaYvfRum PbLr0yc1SfJVlS9dm+0TEqJW2n9u6RWoyEorRPSfEtHTgLXxBI5hBO9ip7HAO4N9ys L8THYsoFvvlVg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zheng Yejian , mhiramat@kernel.org, Steven Rostedt , Sasha Levin , linux-trace-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.5 12/41] ring-buffer: Avoid softlockup in ring_buffer_resize() Date: Sun, 24 Sep 2023 09:15:00 -0400 Message-Id: <20230924131529.1275335-12-sashal@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230924131529.1275335-1-sashal@kernel.org> References: <20230924131529.1275335-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.5.5 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Sun, 24 Sep 2023 06:16:46 -0700 (PDT) From: Zheng Yejian [ Upstream commit f6bd2c92488c30ef53b5bd80c52f0a7eee9d545a ] When user resize all trace ring buffer through file 'buffer_size_kb', then in ring_buffer_resize(), kernel allocates buffer pages for each cpu in a loop. If the kernel preemption model is PREEMPT_NONE and there are many cpus and there are many buffer pages to be allocated, it may not give up cpu for a long time and finally cause a softlockup. To avoid it, call cond_resched() after each cpu buffer allocation. Link: https://lore.kernel.org/linux-trace-kernel/20230906081930.3939106-1-zhengyejian1@huawei.com Cc: Signed-off-by: Zheng Yejian Signed-off-by: Steven Rostedt (Google) Signed-off-by: Sasha Levin --- kernel/trace/ring_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 52dea5dd5362e..1267e1016ab5c 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2206,6 +2206,8 @@ int ring_buffer_resize(struct trace_buffer *buffer, unsigned long size, err = -ENOMEM; goto out_err; } + + cond_resched(); } cpus_read_lock(); -- 2.40.1