Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp23000imm; Fri, 7 Sep 2018 15:33:38 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbR42ZXct58OnXP4jzriYZGxvzqGGdyyc8yKBBqit43Mq6/IXrPjh0aKUHrmd4l6Q+TvGjv X-Received: by 2002:a63:d244:: with SMTP id t4-v6mr10355340pgi.335.1536359618359; Fri, 07 Sep 2018 15:33:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536359618; cv=none; d=google.com; s=arc-20160816; b=aFXDx1ORMoJGpHx6+YON9j6KoiQjDys+8MAf3Y4QGONUsSqWTlV0TpwRmnaUYOVTUs pAyOgThRNmDFCEVQRiAAmLEFXuR9BwmQ2S59J8/D74o6SSNndqz/Ag9Tb182RSssS8Ag K/ovcoOqs64Z21RfYNNYF0kBEVfqepYeNhKDWmMypFpCCg3f/bS3aJr/93low8wVRZ0F SY5l7hoEB7eX+/9Emxqh4ROo4YabSh+ZmkKyiPp29rnPvgmJF3Jt8f6rMR0IwWq8ZoQI sIkh1FT2Xu0mPboFDL4u2eziMRP+i7CGoRPybAwcaiKXlhcO3UTLfYfoJ63hdkrh0a2S yeqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=swXSXNYo9e+z3a+rPUiAwcdafcZKfK0bN6Lk7+5yGJw=; b=xCUCfBKTgRfmIwxqZcRA/0O2Z/FWlFfhwx5MJsg+4AsgX71ByuB33VT5qgf98YwW7O 9cv4bqDO5KWghm4cgDp7fi0ypjYZpkNsZP4JrvWGe/6gooBc00qSlRVfjKTRupeI43Lw TAqRXSwnQoUitACjPfsJyrY7mPdMoD002yuTsNYVQVFH+OaWlV1RXRM+Bl6jHOukz8Ex wu4c2K0Hxv3yZt55y8GKtEsbehhQIA+WP5KHvBNCaW2B1WCuTi9b6inBscSQXNlHqCTu 6pLj++G373tK8kdxjgnZ2NZjPciX5YVgcukYRNaESWWpjmKyUg+pEyVbLT2anzz7PGs7 iZWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="U/CD3JL6"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k7-v6si8843679plt.327.2018.09.07.15.33.16; Fri, 07 Sep 2018 15:33:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="U/CD3JL6"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1726717AbeIHDO4 (ORCPT + 99 others); Fri, 7 Sep 2018 23:14:56 -0400 Received: from mail-yw1-f73.google.com ([209.85.161.73]:41276 "EHLO mail-yw1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726355AbeIHDO4 (ORCPT ); Fri, 7 Sep 2018 23:14:56 -0400 Received: by mail-yw1-f73.google.com with SMTP id t9-v6so9547280ywg.8 for ; Fri, 07 Sep 2018 15:31:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=swXSXNYo9e+z3a+rPUiAwcdafcZKfK0bN6Lk7+5yGJw=; b=U/CD3JL6Zyd36Lrae6fCr4FQoBxcg4RQYeE+xHs1CFPWsfOwUk5yguHe1uFw8Pxj4/ R8wudA6o4rxvs8lIsrOVPVYyeDTxI0XkaJil/myjkCJUrdAbtCjH2CSPRyhwAqEApFHq 1ENXmnseOAiAV4vhoovKNqC000On5wqxab0dkhTg3DS9C75arveA7hMdzHNcEkJ5mOH+ YIDE35POoFnU+lXvqf6jmZF+4Zcoce+2mnRshNfWBxu8geew+UQS/CvZpPC64QKRb2WI zodHxf50txRN1YZ6YlMcM6OzP0CUyb6K8bLKY19YQYX8RvVa+pwo6PdjjuIggywIbtMB Xe9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=swXSXNYo9e+z3a+rPUiAwcdafcZKfK0bN6Lk7+5yGJw=; b=iGel/bSlXRDiDPVAtkFjs7h5FCXoAXugSfPwYfmTeDo19NGOr5K5qFtKBYIiunKZO/ ckVQfhpDXwYpyg8OFtjA+J1kss9tW2Guuh0hMoCIa5hVJSe6YnCSJ4Kmehb/pf8C9Z+i O7Dka/P8QG0MQYyQbVG5bjgUdlTcyTxglhEx4fK6eMGSKZoKXK17Ldfo49bVFJPvXS8P SGGIeQvIx3X+mHx7ClGw9dgu3wMkjiullA3APJvs9vY3cO4cO8zbcBPEXYE+Gb5MrajD EqQqCGijuMfxhvYp1WY5OXp7I2X7wP34Knncr0lc2UcdggPxOnyz+qh2KW4b3a0tccrm cH5Q== X-Gm-Message-State: APzg51D6E40BHgIZ17EPaV81c5rRJ+e5gNvNSIl1OBagHoPZhChFjz/T /4gPKqama/p+lDBVXnh/jNjgpVN7FFJkrUOt X-Received: by 2002:a0d:c8c5:: with SMTP id k188-v6mr2300708ywd.130.1536359508435; Fri, 07 Sep 2018 15:31:48 -0700 (PDT) Date: Fri, 7 Sep 2018 15:31:29 -0700 In-Reply-To: <20180907182131.144514-1-vnagarnaik@google.com> Message-Id: <20180907223129.71994-1-vnagarnaik@google.com> Mime-Version: 1.0 References: <20180907182131.144514-1-vnagarnaik@google.com> X-Mailer: git-send-email 2.19.0.rc2.392.g5ba43deb5a-goog Subject: [PATCH] ring-buffer: Allow for rescheduling when removing pages From: Vaibhav Nagarnaik To: Steven Rostedt Cc: linux-kernel@vger.kernel.org, Vaibhav Nagarnaik , jbehmer@google.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When reducing ring buffer size, pages are removed by scheduling a work item on each CPU for the corresponding CPU ring buffer. After the pages are removed from ring buffer linked list, the pages are free()d in a tight loop. The loop does not give up CPU until all pages are removed. In a worst case behavior, when lot of pages are to be freed, it can cause system stall. After the pages are removed from the list, the free() can happen while the work is rescheduled. Call cond_resched() in the loop to prevent the system hangup. Reported-by: Jason Behmer Signed-off-by: Vaibhav Nagarnaik --- 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 1d92d4a982fd..65bd4616220d 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -1546,6 +1546,8 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned long nr_pages) tmp_iter_page = first_page; do { + cond_resched(); + to_remove_page = tmp_iter_page; rb_inc_page(cpu_buffer, &tmp_iter_page); -- 2.19.0.rc2.392.g5ba43deb5a-goog