Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1782421imm; Thu, 27 Sep 2018 02:23:19 -0700 (PDT) X-Google-Smtp-Source: ACcGV60kswCdYNjuNa/E6dJv6TYh5De+PQ9IUDVcScCu4gixt0lYI00facJxArP0qj3EcfSuUpCU X-Received: by 2002:a62:808c:: with SMTP id j134-v6mr10320623pfd.47.1538040199610; Thu, 27 Sep 2018 02:23:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538040199; cv=none; d=google.com; s=arc-20160816; b=rwsStLYIELL76fuoekAL5hpeUiin2NSfOOQRgx5APy588YFa9sG7vOPrCa/+34fNJK r+fzRtcgmtz2oCg98BvddQdNAacsqxdICP6hoI4upy2P1ZoZzFtVhR0wcgGhA659ov21 a9mOR2WEvFwpu/6gYqS+OwLTWaLsV+JEFSYYNga7FweBDpftapbOcwSzaQpspyIP7bh2 ch0PzkVYX3NLX8Y0YTC/Fd3KmwYm9zWDK7qkyZq1Krxe74NQOfqx+VkN8LZwegqWun7X IgtPJvXsVwABrXKInFe1Xwldxg2D6Ex7HDQado4EWpZJmXPPnAuTGdw0k/KhkGb5rJ9O pLEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=YLZ8zZUPVQtwmu4g42C4eUDS/COZ3C7g1l67lBOwELc=; b=I8qCDYuHhi3pwSwg5YodVx4jhkKPZOqsq6YQQELCTKRRXEC34D6/qYpAPkCiC1XH1t Ln6Gg/BMXW7A+fLBwxHfVm/3qtTGhPeYMU5IDtn0QuPL6wPjlcOuUFwCRmAkaWdqDZ5z mT3ZSJEQcvSBj+blaDPyCfPDJ8SMpIBRKgYSko3u0lIT5OeHhyMilgIaXBK8dYtEuXBc hl4f3uAen+f2513/nkOlSuV+JXn6NnYKkzEIHVSBgtv7UDCY5dkDutsQ+hpwc5MpB1fd WxECT6oCg0R7S7GuLeSZawv8OI1Om99+ga48gWPrlSg7Nl2pkUxj3cfqIuKi8T2Mu0Dz 1UMQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i13-v6si1384762pgo.128.2018.09.27.02.23.04; Thu, 27 Sep 2018 02:23:19 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728617AbeI0PkS (ORCPT + 99 others); Thu, 27 Sep 2018 11:40:18 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:56542 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727583AbeI0PkR (ORCPT ); Thu, 27 Sep 2018 11:40:17 -0400 Received: from localhost (ip-213-127-77-73.ip.prioritytelecom.net [213.127.77.73]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 32897111C; Thu, 27 Sep 2018 09:22:57 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jason Behmer , Vaibhav Nagarnaik , "Steven Rostedt (VMware)" Subject: [PATCH 4.14 33/64] ring-buffer: Allow for rescheduling when removing pages Date: Thu, 27 Sep 2018 11:03:50 +0200 Message-Id: <20180927090254.814422280@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180927090249.801943776@linuxfoundation.org> References: <20180927090249.801943776@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Vaibhav Nagarnaik commit 83f365554e47997ec68dc4eca3f5dce525cd15c3 upstream. 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. Link: http://lkml.kernel.org/r/20180907223129.71994-1-vnagarnaik@google.com Cc: stable@vger.kernel.org Fixes: 83f40318dab00 ("ring-buffer: Make removal of ring buffer pages atomic") Reported-by: Jason Behmer Signed-off-by: Vaibhav Nagarnaik Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Greg Kroah-Hartman --- kernel/trace/ring_buffer.c | 2 ++ 1 file changed, 2 insertions(+) --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -1479,6 +1479,8 @@ rb_remove_pages(struct ring_buffer_per_c tmp_iter_page = first_page; do { + cond_resched(); + to_remove_page = tmp_iter_page; rb_inc_page(cpu_buffer, &tmp_iter_page);