Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2139495imm; Fri, 7 Sep 2018 11:23:43 -0700 (PDT) X-Google-Smtp-Source: ANB0VdaWJTWeye2yWiKliGPE4p9CiqaivMAQRooT3Z7NLXPo2xHMTE8ubm8ubD/a16vWxaemq7+4 X-Received: by 2002:a62:5882:: with SMTP id m124-v6mr9931800pfb.249.1536344623548; Fri, 07 Sep 2018 11:23:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536344623; cv=none; d=google.com; s=arc-20160816; b=oK7a18Ah8H0ea45g/AdVx1tSneTmLqwkhxzHONqkfjZU0rm3YKDHld4jR28yEUPw+7 axzpDxFG604SuMyL/MnprzY8wAfvip/I7mZe2aqElQr/2mk7PXTCVfCI2+bPGGUTtGV+ nFf1nh8cgwocpTeHJZH5pgmrTt06a3RxMK/d+GGh3E+Pm9x6DUUtQ/LHcwlEKx+0TcyF AaWzeMHqno2s7/yFASt0tQSKv6l4UE/k8bFtbWUBajLJjKaFlaMiJ1yWr1+znIl9ysr6 Y7HPq5/8KIXhaQV9a5NNitUzUyucNW/NEMXH4wooXl7y6mhFHuI+Ypg9aUStb/iOoM1s 5TNA== 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:mime-version :message-id:date:dkim-signature; bh=a/WuAayfLf1w7oRq9kf7B6s9CIycYtQj6wta6Tw3YO4=; b=ZwN/ehBW8edpcsDW8PCrJ2XK/a2t4oHflaiTJJNW0k8wfMfavekg5sow/6kt8f/4DG 977smmuRcBpYilLMSe2A14YfJ3UeOG8PAdOW9bUzeq02HkMihrA/JjeTqf1OZRKTn4nA JsRsAG7b0PtjIHZEOZ103Zn5raBhRb3810nP93mUIcuQS/7564EfjRPVtNXDgtl9QXMV hjB0Z0Ddu0j6QN9dDbG1yPwmqSpM2TK9GJzhzp3webIoCyXjGj/XUntTRkvEinSX/bow oS+P2uDpcoEm4X4CWSuNUyACIPygSQq0+1iGgM2Z1+kGrDHO6TUWA3qwyhWjszHButca DDYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UiTj6chj; 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 y12-v6si9253085pfd.254.2018.09.07.11.23.28; Fri, 07 Sep 2018 11:23:43 -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=UiTj6chj; 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 S1727716AbeIGXEK (ORCPT + 99 others); Fri, 7 Sep 2018 19:04:10 -0400 Received: from mail-qt0-f202.google.com ([209.85.216.202]:43632 "EHLO mail-qt0-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727639AbeIGXEJ (ORCPT ); Fri, 7 Sep 2018 19:04:09 -0400 Received: by mail-qt0-f202.google.com with SMTP id 1-v6so14605843qtp.10 for ; Fri, 07 Sep 2018 11:22:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=a/WuAayfLf1w7oRq9kf7B6s9CIycYtQj6wta6Tw3YO4=; b=UiTj6chj8FhZTBpfKExQf2OLA0sQwnb3PGPkBMCisBNujcsJs4DoxsUR+QV3WUhopP XJc0h7yfyCTHjipZEdEdDQDIM1pLT1HpJCy1hecg1id6RvwRga0Kyf/KR7kEa3HYe5wG ZnhQ8AI3hZpDUq/2s4cj7JR1qMQ4kKH5dNSF/zDjN7ARq/GzLxMRBbHPOgMXDAhKPfNV sSFdnxtXB+3/aJPIQZlJu3X2Dj01eW1TgYFe6gE/bFztET3eBHHG0s1muXVdzhGwQYsT BHHJSRKcGc/ANd4wm1o37KdCKt4GmkZ9ZOBHfyi3XjlBk0/UIg4lCzH72zh+UOOM7IpY MWcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=a/WuAayfLf1w7oRq9kf7B6s9CIycYtQj6wta6Tw3YO4=; b=kmIfdW4fKnQTuQTvp4/F8WKQbQ2y+SHY4HaWdkXz2B8T2IuE4n9H+Jf4KrXPt2bXhW +hoJMlNHfWj7a/pxK9vcxaBXmVL8V1/Xot5DOXYnG1h3HhTvCAvfM+6NgxK0RkiBQAoN 5qi357ZrLU83knzELqFBetUPoZIUKmfRA5FIHr5se8qxPWkJNhzfMdv7J8SQnNJIT7N3 RQoKBiGSg8MtOlZUgBgS2tNWkaDEA86fv27z7401O/wXiicS95e2ACc8yoY8sKLGrBX6 cWnxfCk6oH1XYLGgsAmLnnCxa7PeIyatSeKUgtSmfOdIVrgqgOztBhqjx1IrBUqW5reM YU7Q== X-Gm-Message-State: APzg51Aneck7hVCqlugR1mvuLBnofiATtoByheJr6qEvzv7+jXG3rirh /dAdaDtXVVUOpfgy3wgFaJbhjztLsCgspDBZ X-Received: by 2002:a0c:9242:: with SMTP id 2-v6mr3025229qvz.12.1536344520555; Fri, 07 Sep 2018 11:22:00 -0700 (PDT) Date: Fri, 7 Sep 2018 11:21:31 -0700 Message-Id: <20180907182131.144514-1-vnagarnaik@google.com> Mime-Version: 1.0 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. Add a check for need_sched() within the loop to prevent the system hangup. Reported-by: Jason Behmer Signed-off-by: Vaibhav Nagarnaik --- kernel/trace/ring_buffer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 1d92d4a982fd..bc1789df7c53 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -1546,6 +1546,9 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned long nr_pages) tmp_iter_page = first_page; do { + if (need_resched()) + schedule(); + to_remove_page = tmp_iter_page; rb_inc_page(cpu_buffer, &tmp_iter_page); -- 2.19.0.rc2.392.g5ba43deb5a-goog