From patchwork Sat Sep 9 03:16:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137840 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1303539vqo; Sat, 9 Sep 2023 13:47:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEX1iJI7iYoY7sKu6N6NVyQG3U2lbNYHhYjW6DfS8uClJXWQqWI+bqPyWGFFDNHoJ1nWQV0 X-Received: by 2002:a05:6a21:7906:b0:14c:c393:402d with SMTP id bg6-20020a056a21790600b0014cc393402dmr5268583pzc.34.1694292445241; Sat, 09 Sep 2023 13:47:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694292445; cv=none; d=google.com; s=arc-20160816; b=fEwi+Rcl4dXmq4n6kT209rRBOHKhpQfC9RlE17+Xh3qJ9wYipxna+YD3kIONoyUMDo F4zG7p2KYA33TaKIFMJw4NCDg94L31coI9U/7ksk57hA+hbs7tvmWNmbvfcpSmkEEdlD os6J1eUwUO/8Z559DKmLpE9+vw6qSR/AsQhps1Engr+tzYJ9+DY9eI0A8wvbDPoo+9Sr kDkkSUWA4hMSYZ7ymLSg/9+1T2kXz3Go8SqJVJfCEhYAswMfZtx23RYLzCj0zvjYLWjy 9+iZ8iPJ/Ogf3SQ9i2amHXjwHrx9dUsJDxoQMGgQKicLUpleFTUeeARJnwBKWtjZXKKp yOdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=+tzYQ+oOnHGSuKn+93JzDz7DvRpW7a3BV3tcA//o5zQ=; fh=uOWSESrr/TpYg9MIsCkHZiwaLU3ij606a2I01jXtua0=; b=nTzl5Vyz4HOM7mG7cu+4zThJbvT7KjFxbCJlNaHcZ4z9O1FE/VevPTqfmG5fc3FEQd qalznyx7fH3n6BAKAhc1hmzWyfXW6gswWwVFkgZwGTWxm1Jt+hI7P3slSNGq2Zmy2VPA 1PEebcJc2RWMM/RBS8Cxg68WQ+905ycIBe2NORrLdtxOxVIF3+Br/l6WsjqAbUGUaAUG s0P04mr4LRdKw4QkimkA3rv/DAxQeCcbMeZ9xCC/5oBFC7niQdSTWww0u4B1/rALUdS+ I7YbBDw6GmAHhdIwi38Eb6DcPnnITY9e4ZyKao03dE5NXdAJ/tg63cxh8KIU/+6a1i55 SUqw== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ky3-20020a170902f98300b001b9d5d4d75dsi3588535plb.112.2023.09.09.13.47.22; Sat, 09 Sep 2023 13:47:25 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239872AbjIIDYF (ORCPT + 11 others); Fri, 8 Sep 2023 23:24:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233986AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 466251FE0 for ; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 808A7C433B8; Sat, 9 Sep 2023 03:23:31 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZa-000Yhj-08; Fri, 08 Sep 2023 23:23:50 -0400 Message-ID: <20230909032349.854283780@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:24 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Zheng Yejian Subject: [for-linus][PATCH 09/15] ring-buffer: Avoid softlockup in ring_buffer_resize() References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776594395284696577 X-GMAIL-MSGID: 1776594395284696577 From: Zheng Yejian 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) --- 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 78502d4c7214..72ccf75defd0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2198,6 +2198,8 @@ int ring_buffer_resize(struct trace_buffer *buffer, unsigned long size, err = -ENOMEM; goto out_err; } + + cond_resched(); } cpus_read_lock();