From patchwork Sun Nov 20 20:07:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23452 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250564wrr; Sun, 20 Nov 2022 12:09:08 -0800 (PST) X-Google-Smtp-Source: AA0mqf5ebjHoumWTH5h+Nh81YDBymit0XemgLqc1RKi01T0FA7HwowthzQ2GQh5ylHPdKtdeR2bu X-Received: by 2002:a17:90a:4d08:b0:218:77d8:85c4 with SMTP id c8-20020a17090a4d0800b0021877d885c4mr16217015pjg.176.1668974947903; Sun, 20 Nov 2022 12:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974947; cv=none; d=google.com; s=arc-20160816; b=nCZsmxkHUdrmGyHbb36c/L643cR7ai4Mm2PdQlJuGzebH8ZTZ/v2uKSwsimOLPACZ8 7jpS/mPNeAw+DBUgYQgYK2QJHP7D3c5nlyVatDnkdK69SeutPHXRlStph/gujhu9f3lh CiYnL3sz7WYk0jZFZMsAh2Q75ewnYg9WrUY0wJ2eHrDh2P1PDp4zUZoPEGIWYIiCkga3 Obg+JU6knVH2ce8HoNksjjtNXXiGp13+WduEXMsVR+YU4eIQ/QlV5YqmrTGQ6ZnlL6kD 9lI7dwslVQJkH4ViGrCZhlKIfEOHJUJ/j7Z8XNYIlv/8GtMczg4HVe7dMaClP7ypd3lL oJPw== 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=GoffOyptaLNtx5ANBc4Oy4muSVoNw2Z0YWCiQzSIpXA=; b=KlTbEwamLBeRA5WpNl89Ps9vq02QvabAHDaUE8njd2H7o0uZL4qkOC++b12tpLsy1S ItVjlfKlpH0sZMCGfD4QZqqJCojw6yL0nGrDh0OYei9J73kPedvfCCUAdUs9kCVvxswa xxyi9yEfw3kH8E5enGR+Igv4FfdY5aWEvFIQgEAIW/t7DXUVGWCibTaHCUvgKiNw2edM CH2vVXn2cSmdxbEs680nGNcyFx6Sd31hQRtDuJGTgH8vlWN/iLejwqiTyfyuUVNmp1wz IxYf7kv/8eO4KKPrLGVW6lXnTCYqQDRgag/aG1cbGmReYGCR4Dn5hN6/pMnG2z0B8fSm mm6w== 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 l62-20020a639141000000b0047702d46009si7258638pge.784.2022.11.20.12.08.54; Sun, 20 Nov 2022 12:09:07 -0800 (PST) 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 S229881AbiKTUIB (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229698AbiKTUHj (ORCPT ); Sun, 20 Nov 2022 15:07:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBBF11CB1B; Sun, 20 Nov 2022 12:07:37 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B08EBB80B09; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A846C433C1; Sun, 20 Nov 2022 20:07:34 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbF-00Di3m-1W; Sun, 20 Nov 2022 15:07:33 -0500 Message-ID: <20221120200733.336008061@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:01 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , Linux Trace Kernel , Mathieu Desnoyers , Primiano Tucci , stable@vger.kernel.org Subject: [for-linus][PATCH 01/13] tracing/ring-buffer: Have polling block on watermark References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047075223575466?= X-GMAIL-MSGID: =?utf-8?q?1750047075223575466?= From: "Steven Rostedt (Google)" Currently the way polling works on the ring buffer is broken. It will return immediately if there's any data in the ring buffer whereas a read will block until the watermark (defined by the tracefs buffer_percent file) is hit. That is, a select() or poll() will return as if there's data available, but then the following read will block. This is broken for the way select()s and poll()s are supposed to work. Have the polling on the ring buffer also block the same way reads and splice does on the ring buffer. Link: https://lkml.kernel.org/r/20221020231427.41be3f26@gandalf.local.home Cc: Linux Trace Kernel Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Primiano Tucci Cc: stable@vger.kernel.org Fixes: 1e0d6714aceb7 ("ring-buffer: Do not wake up a splice waiter when page is not full") Signed-off-by: Steven Rostedt (Google) --- include/linux/ring_buffer.h | 2 +- kernel/trace/ring_buffer.c | 55 ++++++++++++++++++++++++------------- kernel/trace/trace.c | 2 +- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index 2504df9a0453..3c7d295746f6 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h @@ -100,7 +100,7 @@ __ring_buffer_alloc(unsigned long size, unsigned flags, struct lock_class_key *k int ring_buffer_wait(struct trace_buffer *buffer, int cpu, int full); __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, - struct file *filp, poll_table *poll_table); + struct file *filp, poll_table *poll_table, int full); void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu); #define RING_BUFFER_ALL_CPUS -1 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 9712083832f4..089b1ec9cb3b 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -907,6 +907,21 @@ size_t ring_buffer_nr_dirty_pages(struct trace_buffer *buffer, int cpu) return cnt - read; } +static __always_inline bool full_hit(struct trace_buffer *buffer, int cpu, int full) +{ + struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu]; + size_t nr_pages; + size_t dirty; + + nr_pages = cpu_buffer->nr_pages; + if (!nr_pages || !full) + return true; + + dirty = ring_buffer_nr_dirty_pages(buffer, cpu); + + return (dirty * 100) > (full * nr_pages); +} + /* * rb_wake_up_waiters - wake up tasks waiting for ring buffer input * @@ -1046,22 +1061,20 @@ int ring_buffer_wait(struct trace_buffer *buffer, int cpu, int full) !ring_buffer_empty_cpu(buffer, cpu)) { unsigned long flags; bool pagebusy; - size_t nr_pages; - size_t dirty; + bool done; if (!full) break; raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); pagebusy = cpu_buffer->reader_page == cpu_buffer->commit_page; - nr_pages = cpu_buffer->nr_pages; - dirty = ring_buffer_nr_dirty_pages(buffer, cpu); + done = !pagebusy && full_hit(buffer, cpu, full); + if (!cpu_buffer->shortest_full || cpu_buffer->shortest_full > full) cpu_buffer->shortest_full = full; raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); - if (!pagebusy && - (!nr_pages || (dirty * 100) > full * nr_pages)) + if (done) break; } @@ -1087,6 +1100,7 @@ int ring_buffer_wait(struct trace_buffer *buffer, int cpu, int full) * @cpu: the cpu buffer to wait on * @filp: the file descriptor * @poll_table: The poll descriptor + * @full: wait until the percentage of pages are available, if @cpu != RING_BUFFER_ALL_CPUS * * If @cpu == RING_BUFFER_ALL_CPUS then the task will wake up as soon * as data is added to any of the @buffer's cpu buffers. Otherwise @@ -1096,14 +1110,15 @@ int ring_buffer_wait(struct trace_buffer *buffer, int cpu, int full) * zero otherwise. */ __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, - struct file *filp, poll_table *poll_table) + struct file *filp, poll_table *poll_table, int full) { struct ring_buffer_per_cpu *cpu_buffer; struct rb_irq_work *work; - if (cpu == RING_BUFFER_ALL_CPUS) + if (cpu == RING_BUFFER_ALL_CPUS) { work = &buffer->irq_work; - else { + full = 0; + } else { if (!cpumask_test_cpu(cpu, buffer->cpumask)) return -EINVAL; @@ -1111,8 +1126,14 @@ __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, work = &cpu_buffer->irq_work; } - poll_wait(filp, &work->waiters, poll_table); - work->waiters_pending = true; + if (full) { + poll_wait(filp, &work->full_waiters, poll_table); + work->full_waiters_pending = true; + } else { + poll_wait(filp, &work->waiters, poll_table); + work->waiters_pending = true; + } + /* * There's a tight race between setting the waiters_pending and * checking if the ring buffer is empty. Once the waiters_pending bit @@ -1128,6 +1149,9 @@ __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, */ smp_mb(); + if (full) + return full_hit(buffer, cpu, full) ? EPOLLIN | EPOLLRDNORM : 0; + if ((cpu == RING_BUFFER_ALL_CPUS && !ring_buffer_empty(buffer)) || (cpu != RING_BUFFER_ALL_CPUS && !ring_buffer_empty_cpu(buffer, cpu))) return EPOLLIN | EPOLLRDNORM; @@ -3155,10 +3179,6 @@ static void rb_commit(struct ring_buffer_per_cpu *cpu_buffer, static __always_inline void rb_wakeups(struct trace_buffer *buffer, struct ring_buffer_per_cpu *cpu_buffer) { - size_t nr_pages; - size_t dirty; - size_t full; - if (buffer->irq_work.waiters_pending) { buffer->irq_work.waiters_pending = false; /* irq_work_queue() supplies it's own memory barriers */ @@ -3182,10 +3202,7 @@ rb_wakeups(struct trace_buffer *buffer, struct ring_buffer_per_cpu *cpu_buffer) cpu_buffer->last_pages_touch = local_read(&cpu_buffer->pages_touched); - full = cpu_buffer->shortest_full; - nr_pages = cpu_buffer->nr_pages; - dirty = ring_buffer_nr_dirty_pages(buffer, cpu_buffer->cpu); - if (full && nr_pages && (dirty * 100) <= full * nr_pages) + if (!full_hit(buffer, cpu_buffer->cpu, cpu_buffer->shortest_full)) return; cpu_buffer->irq_work.wakeup_full = true; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 47a44b055a1d..c6c7a0af3ed2 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -6681,7 +6681,7 @@ trace_poll(struct trace_iterator *iter, struct file *filp, poll_table *poll_tabl return EPOLLIN | EPOLLRDNORM; else return ring_buffer_poll_wait(iter->array_buffer->buffer, iter->cpu_file, - filp, poll_table); + filp, poll_table, iter->tr->buffer_percent); } static __poll_t From patchwork Sun Nov 20 20:07:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23454 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250576wrr; Sun, 20 Nov 2022 12:09:11 -0800 (PST) X-Google-Smtp-Source: AA0mqf6L0DFvdP1ay5UPlKR77MkikC8fsAtZA1p8i1CqNPy8lgVw6xJtXJPayksnuGOjXDSmoYuL X-Received: by 2002:a63:f455:0:b0:476:e84b:ce4c with SMTP id p21-20020a63f455000000b00476e84bce4cmr260124pgk.171.1668974950742; Sun, 20 Nov 2022 12:09:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974950; cv=none; d=google.com; s=arc-20160816; b=Ysao1+MF7inH+EvzUVtRCTAL2WXy89Q697jW8lRzHLfHhR0bCgE9UB3NlT1GMVUkSf EGtV4lHZ0S6JkVWrl4+/a/4UdvURhqwwEBi2+hItuF4Jw0sJ1kATW4GFKnbHzKQV7EmM wvUFZX8f6uBSvdqreiY4TzhYFudr9CeEWKU5gCKZd2yUA7UWaX0QNwP5nz3qqci96vZO 04fnk5E6OxN0QzbfWTLmZd+3xyEvT3cLU/3413gfX1rCYP2LUk/80I59FGLNSx/zAwts gVHib0Fj6u1KRnFVEPGXOil3dqhHF7pDEUJ1vFYEoLWS0/ck6KLNEjCFXtAWVe3ZbZSi Ezqg== 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=PYmz2cx0C56N14MZJCozoGU57ltThDGIh5DZpfpp3eg=; b=v24YfkWYSF3ZhUowN9nwNKVSiDmZbY75E/qmE5PqhAkHRBE1vJr61CBCnQ4IZl2jmi gcX+uSeSNc3lrAgkpOZDswsf7g5qPjGmlKUNNR6nQS19ffgETAaC4vOrgIdFx2rlOb75 5QmJJzyeJ3XzXDAZJmhtw6CLOlqeO6q+Tovy15/a0AsSrGv07CnZbjXlfA/DyHv0YeQ8 C2tA90e2HBslGQZozIwGBS0tsljTcrukA7BDPOO9gC2BCg+L3E3/JcNFWSnylXeGRjGM 8zmC09qVwplWwXx/6uKF2xRQFLITmfM0psXZJ5zbfm50r4Fi6Kfr64IufToYbLNUb2Oy tTsQ== 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 u10-20020a170902e5ca00b0016f5e7d0febsi9836451plf.244.2022.11.20.12.08.57; Sun, 20 Nov 2022 12:09:10 -0800 (PST) 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 S229912AbiKTUIS (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229758AbiKTUHl (ORCPT ); Sun, 20 Nov 2022 15:07:41 -0500 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A55A01CFC0 for ; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 78A86CE0E5C for ; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 817A3C4347C; Sun, 20 Nov 2022 20:07:34 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbF-00Di4H-22; Sun, 20 Nov 2022 15:07:33 -0500 Message-ID: <20221120200733.488392212@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:02 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton Subject: [for-linus][PATCH 02/13] ring-buffer: Include dropped pages in counting dirty patches References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047077748481490?= X-GMAIL-MSGID: =?utf-8?q?1750047077748481490?= From: "Steven Rostedt (Google)" The function ring_buffer_nr_dirty_pages() was created to find out how many pages are filled in the ring buffer. There's two running counters. One is incremented whenever a new page is touched (pages_touched) and the other is whenever a page is read (pages_read). The dirty count is the number touched minus the number read. This is used to determine if a blocked task should be woken up if the percentage of the ring buffer it is waiting for is hit. The problem is that it does not take into account dropped pages (when the new writes overwrite pages that were not read). And then the dirty pages will always be greater than the percentage. This makes the "buffer_percent" file inaccurate, as the number of dirty pages end up always being larger than the percentage, event when it's not and this causes user space to be woken up more than it wants to be. Add a new counter to keep track of lost pages, and include that in the accounting of dirty pages so that it is actually accurate. Link: https://lkml.kernel.org/r/20221021123013.55fb6055@gandalf.local.home Fixes: 2c2b0a78b3739 ("ring-buffer: Add percentage of ring buffer full to wake up reader") Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ring_buffer.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 089b1ec9cb3b..a19369c4d8df 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -519,6 +519,7 @@ struct ring_buffer_per_cpu { local_t committing; local_t commits; local_t pages_touched; + local_t pages_lost; local_t pages_read; long last_pages_touch; size_t shortest_full; @@ -894,10 +895,18 @@ size_t ring_buffer_nr_pages(struct trace_buffer *buffer, int cpu) size_t ring_buffer_nr_dirty_pages(struct trace_buffer *buffer, int cpu) { size_t read; + size_t lost; size_t cnt; read = local_read(&buffer->buffers[cpu]->pages_read); + lost = local_read(&buffer->buffers[cpu]->pages_lost); cnt = local_read(&buffer->buffers[cpu]->pages_touched); + + if (WARN_ON_ONCE(cnt < lost)) + return 0; + + cnt -= lost; + /* The reader can read an empty page, but not more than that */ if (cnt < read) { WARN_ON_ONCE(read > cnt + 1); @@ -2031,6 +2040,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned long nr_pages) */ local_add(page_entries, &cpu_buffer->overrun); local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); + local_inc(&cpu_buffer->pages_lost); } /* @@ -2515,6 +2525,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer, */ local_add(entries, &cpu_buffer->overrun); local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); + local_inc(&cpu_buffer->pages_lost); /* * The entries will be zeroed out when we move the @@ -5265,6 +5276,7 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) local_set(&cpu_buffer->committing, 0); local_set(&cpu_buffer->commits, 0); local_set(&cpu_buffer->pages_touched, 0); + local_set(&cpu_buffer->pages_lost, 0); local_set(&cpu_buffer->pages_read, 0); cpu_buffer->last_pages_touch = 0; cpu_buffer->shortest_full = 0; From patchwork Sun Nov 20 20:07:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23449 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250557wrr; Sun, 20 Nov 2022 12:09:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf43Dkeiq4ZbWboTvl6i/NDt3b2Dqg9+SuP/wVHOMwYrzG9XIPUaMitkLycHitq5PP2GHgs1 X-Received: by 2002:a17:90a:1bc2:b0:218:8bdb:de3f with SMTP id r2-20020a17090a1bc200b002188bdbde3fmr10927591pjr.225.1668974947013; Sun, 20 Nov 2022 12:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974947; cv=none; d=google.com; s=arc-20160816; b=LOtR75HgG5z2L3R3cpr5N31DNfKOYEIQIkzbokMqz6jfRA5bWsI0BD30SaKHd5wZpk 75TdfdWiKcRTk3/9yzk1fzbTnfCHOapNsiUu8KAWjD4eHU7ODiUN8TTgwGcZ3sL8IpoX saSXIBOZqYrt3hJEDdM/mEeE3kJDcVREeGINONplv6Atz/YHNuCvSvQaFRrbnqn2tFEk O4GsVZt705eud85HdIWZrDhWAM8wj/mkcLFEv+ZHMsmISnk6QaPP7U0VRGywlIbSKxC2 9A9X5NkOADQdcM6bfledwF4IyPo2W/2hN0sFA3Esii0k1GWdKqTyjw9DSUiNRWj4g6ID 31pA== 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=NYHv9srPiTyGLM3hVDpgpBdqu0ijGFWA5QwV7F5A2xI=; b=sXwFzZVMGG/AFXqF/pzi/ACYS6CWq4UWCmYIt4EoTbKzLO8r5GLW6C5JeCJFoGgzde xJxh9H5UN2GLuIKDCOPct35c0JzBMMj+QV9HtGHFOv61I3l1dvzI4nCuqj86R4KSP5qr cQAjpqk3DdytzC5nvZQkadIRXSweIB2n4mODmooS4F+Z/mRsOVZrrbhWbrA91kPU2JbQ 3G8TOPLKwCrshqW67aVpvchQcZyvnzvIZtisKBwChf+eHD1jtGi4/601DWLUZnJoK7Ml 0/AnZXLIIspQKS1DyuYVSVt3QEFf6LTn7cl7eTdorl3tsHWb94Qu0kp9zyNgTCGFFV7z BaPA== 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 o7-20020a63a807000000b00476f947575esi9421267pgf.329.2022.11.20.12.08.54; Sun, 20 Nov 2022 12:09:07 -0800 (PST) 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 S229868AbiKTUH5 (ORCPT + 99 others); Sun, 20 Nov 2022 15:07:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229677AbiKTUHj (ORCPT ); Sun, 20 Nov 2022 15:07:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBC571CB1E; Sun, 20 Nov 2022 12:07:37 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 166B6B80B7F; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BCDEDC43146; Sun, 20 Nov 2022 20:07:34 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbF-00Di4l-2j; Sun, 20 Nov 2022 15:07:33 -0500 Message-ID: <20221120200733.670542882@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:03 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , stable@vger.kernel.org, Wang Yufen Subject: [for-linus][PATCH 03/13] tracing: Fix memory leak in tracing_read_pipe() References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047073868970838?= X-GMAIL-MSGID: =?utf-8?q?1750047073868970838?= From: Wang Yufen kmemleak reports this issue: unreferenced object 0xffff888105a18900 (size 128): comm "test_progs", pid 18933, jiffies 4336275356 (age 22801.766s) hex dump (first 32 bytes): 25 73 00 90 81 88 ff ff 26 05 00 00 42 01 58 04 %s......&...B.X. 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000560143a1>] __kmalloc_node_track_caller+0x4a/0x140 [<000000006af00822>] krealloc+0x8d/0xf0 [<00000000c309be6a>] trace_iter_expand_format+0x99/0x150 [<000000005a53bdb6>] trace_check_vprintf+0x1e0/0x11d0 [<0000000065629d9d>] trace_event_printf+0xb6/0xf0 [<000000009a690dc7>] trace_raw_output_bpf_trace_printk+0x89/0xc0 [<00000000d22db172>] print_trace_line+0x73c/0x1480 [<00000000cdba76ba>] tracing_read_pipe+0x45c/0x9f0 [<0000000015b58459>] vfs_read+0x17b/0x7c0 [<000000004aeee8ed>] ksys_read+0xed/0x1c0 [<0000000063d3d898>] do_syscall_64+0x3b/0x90 [<00000000a06dda7f>] entry_SYSCALL_64_after_hwframe+0x63/0xcd iter->fmt alloced in tracing_read_pipe() -> .. ->trace_iter_expand_format(), but not freed, to fix, add free in tracing_release_pipe() Link: https://lkml.kernel.org/r/1667819090-4643-1-git-send-email-wangyufen@huawei.com Cc: stable@vger.kernel.org Fixes: efbbdaa22bb7 ("tracing: Show real address for trace event arguments") Acked-by: Masami Hiramatsu (Google) Signed-off-by: Wang Yufen Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index c6c7a0af3ed2..5bd202d6d79a 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -6657,6 +6657,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file) mutex_unlock(&trace_types_lock); free_cpumask_var(iter->started); + kfree(iter->fmt); mutex_destroy(&iter->mutex); kfree(iter); From patchwork Sun Nov 20 20:07:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23445 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250456wrr; Sun, 20 Nov 2022 12:08:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf7Xh8V17K2YjhacbR8N26N3kW0qiFAkofn4vLJa8EBtdnlIz1er1OK+A300NBSHwJZDrttI X-Received: by 2002:a65:6791:0:b0:46f:b3e:4d46 with SMTP id e17-20020a656791000000b0046f0b3e4d46mr14944860pgr.265.1668974929970; Sun, 20 Nov 2022 12:08:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974929; cv=none; d=google.com; s=arc-20160816; b=fgE0dl5IfPR1kOs+fHX0cEUQ/AN+dMtsQBuChjrtBHAihLPPrZ+LPj+yae+abs3KuL 4FCr14L2nFSVI7RDjd18gxUXhgv5JbqH8qm7j4Q49WmdnJdkdSLoCMxDXuFrlVieH9Cg xK5mrivylAxXw9tW8EC1tBguwh5ISbUcC/j66KTUjPykNCCHoFZU32vq4xsoK4x1twoQ o0pf236mS4w0HdtPGAiqlq4X16yEs/eNjjYJXpiEZD/bIXVsKzTd70ciUCodOefe3/DW 7EzL5susr4V4jCMCmXair54tIJtmcaZpHt+f3oTXPjTuNYCQaBHd8xS/kcYnaDFxe8RT W9Bw== 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=n0B0u1rn1uwB6HBPFx0YNcTAQUPbPgsjKff40Cxr8Zk=; b=h7yDh83cnf/FROFM7lTPqIJqd49ozH6DlvdaGlaOfQaM2Hc1TxCirnD8rDrV8EvyO/ bsqbGG3qslB4vnDmVwH2ocnbR7Y7CeQcSo6MTnc6J2EQCkSqcQL0JnspNv3zB4hNLk8m 8DqoWn8XfMp1Xz1JoPxlrI9Q15K+dGY2S3t2qlJ8vixhD7tQpko9XJNc8qLwRaCiLw+r VYz6a6HID+Wt0+0CWhnCDoBUPHQSgTGe4DnEmCpjJCa+ea2ouNE+onl4xoJmsPaMHyiL MHSk6dGqUAFjEAk564CKTDJ7xEUYtOsYTShyyu16ANEs3XQFpemxG9TFjX5doiBoXQRu Hklg== 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 z190-20020a6265c7000000b00563352f734asi8697704pfb.69.2022.11.20.12.08.28; Sun, 20 Nov 2022 12:08:49 -0800 (PST) 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 S229762AbiKTUHl (ORCPT + 99 others); Sun, 20 Nov 2022 15:07:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229558AbiKTUHi (ORCPT ); Sun, 20 Nov 2022 15:07:38 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37B441758E for ; Sun, 20 Nov 2022 12:07:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 91B4260D29 for ; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00562C43148; Sun, 20 Nov 2022 20:07:34 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbG-00Di5F-0F; Sun, 20 Nov 2022 15:07:34 -0500 Message-ID: <20221120200733.873451004@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:04 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , "Martin K. Petersen" , Arun Easi , Guenter Roeck , Aashish Sharma Subject: [for-linus][PATCH 04/13] tracing: Fix warning on variable struct trace_array References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047056519721662?= X-GMAIL-MSGID: =?utf-8?q?1750047056519721662?= From: Aashish Sharma Move the declaration of 'struct trace_array' out of #ifdef CONFIG_TRACING block, to fix the following warning when CONFIG_TRACING is not set: >> include/linux/trace.h:63:45: warning: 'struct trace_array' declared inside parameter list will not be visible outside of this definition or declaration Link: https://lkml.kernel.org/r/20221107160556.2139463-1-shraash@google.com Fixes: 1a77dd1c2bb5 ("scsi: tracing: Fix compile error in trace_array calls when TRACING is disabled") Cc: "Martin K. Petersen" Cc: Arun Easi Acked-by: Masami Hiramatsu (Google) Reviewed-by: Guenter Roeck Signed-off-by: Aashish Sharma Signed-off-by: Steven Rostedt (Google) --- include/linux/trace.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/trace.h b/include/linux/trace.h index b5e16e438448..80ffda871749 100644 --- a/include/linux/trace.h +++ b/include/linux/trace.h @@ -26,13 +26,13 @@ struct trace_export { int flags; }; +struct trace_array; + #ifdef CONFIG_TRACING int register_ftrace_export(struct trace_export *export); int unregister_ftrace_export(struct trace_export *export); -struct trace_array; - void trace_printk_init_buffers(void); __printf(3, 4) int trace_array_printk(struct trace_array *tr, unsigned long ip, From patchwork Sun Nov 20 20:07:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23447 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250542wrr; Sun, 20 Nov 2022 12:09:04 -0800 (PST) X-Google-Smtp-Source: AA0mqf7WvIn7tJ1xct5AmmpoT50kNQ4GFr3un4vG/1AJQt+BwRoF5WjrLxjIpHU8oNjunt96qkSv X-Received: by 2002:aa7:8610:0:b0:56c:ba99:8735 with SMTP id p16-20020aa78610000000b0056cba998735mr2515501pfn.15.1668974944279; Sun, 20 Nov 2022 12:09:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974944; cv=none; d=google.com; s=arc-20160816; b=z5s/C3fX9jl4dGDyMznXY8ttUDsiD2tzmdJqHO+9Y5p/gNTnfpqfBEvhHVtSR4dN8E GVGliIZmPHDfkMGz5lvS82EFfARzt+N/yShzqm7wfhOaPEPyv1nN+sLHwHB60BB5wxNG 83d0KdssqTXl6QqSLwBZu8Kt8rVIyz4OA+HWfWbUvB6187DbpALQd1VHdKf2Z7NEjEiD U2TUjr4XfZTdLqwFGoxwQj4djRGCLICwdZWH+9b+JHk840xmMQDuXGSe6JR8G1RT2Zhn RvsJ6cdwMcFNnvvLy6kNd61LYkfDgAdtF0WSRXYPCeN0NeuLT0ay9+NS26Zs60nmUbBk m6Gg== 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=2NV/LynzdJXzmF9dIaORR/Ls1uWwoXIqfI6sk0YXrw8=; b=wBkrd8XLomT1CpNyXu5MsrvcIJt4FrQsVzumdDKRGyKnge4n7OdCR5EQq+kTAspdtA ivVHx7PcitguhDvPN4KtywoeRGvpuQgCNyNtD4bUVRkY112eKHUYsGGnQFZmbqRaGo22 NFDRQzP3OtTyKumoGI12Cw+PIqxooRH59ROEthyWsrlopN6/eey2lGvjmeDb9oY8zork zSlyVJd/TtzH41Qf9OggXflqClck+GWmELirZ+/hmpD20Dq3Yj1sHQVQpwgQq1z9RpnF K/jEVyYJmVKbtWw1y71VMvq4NHkka0IYaKC0wmHo9KkWiITetzgWeC8r+NqKzCBmaC4t goVQ== 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 eb19-20020a056a004c9300b0056be594a8b2si8718563pfb.202.2022.11.20.12.08.50; Sun, 20 Nov 2022 12:09:04 -0800 (PST) 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 S229836AbiKTUHv (ORCPT + 99 others); Sun, 20 Nov 2022 15:07:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229675AbiKTUHi (ORCPT ); Sun, 20 Nov 2022 15:07:38 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37BAD17AA3; Sun, 20 Nov 2022 12:07:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BB9B960D2B; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 310B0C433D7; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbG-00Di5j-0t; Sun, 20 Nov 2022 15:07:34 -0500 Message-ID: <20221120200734.113566574@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:05 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , , stable@vger.kernel.org, Wang Wensheng Subject: [for-linus][PATCH 05/13] ftrace: Fix the possible incorrect kernel message References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047071623313041?= X-GMAIL-MSGID: =?utf-8?q?1750047071623313041?= From: Wang Wensheng If the number of mcount entries is an integer multiple of ENTRIES_PER_PAGE, the page count showing on the console would be wrong. Link: https://lkml.kernel.org/r/20221109094434.84046-2-wangwensheng4@huawei.com Cc: Cc: Cc: stable@vger.kernel.org Fixes: 5821e1b74f0d0 ("function tracing: fix wrong pos computing when read buffer has been fulfilled") Signed-off-by: Wang Wensheng Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 7dc023641bf1..8b13ce2eae70 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -7391,7 +7391,7 @@ void __init ftrace_init(void) } pr_info("ftrace: allocating %ld entries in %ld pages\n", - count, count / ENTRIES_PER_PAGE + 1); + count, DIV_ROUND_UP(count, ENTRIES_PER_PAGE)); ret = ftrace_process_locs(NULL, __start_mcount_loc, From patchwork Sun Nov 20 20:07:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23448 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250558wrr; Sun, 20 Nov 2022 12:09:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf7AGicSYpVXwLWgSf+kRxX7cUMCsrR80+sdG5XbxuuSO2mgh00f3QyQnIf6B0cSo0IlzJd5 X-Received: by 2002:a05:6a00:3029:b0:572:8c05:6e2c with SMTP id ay41-20020a056a00302900b005728c056e2cmr17252257pfb.85.1668974947086; Sun, 20 Nov 2022 12:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974947; cv=none; d=google.com; s=arc-20160816; b=O8w0jPdqN8WB4udpEh+zGyIkkW1vR8jurZ4iWd2Ln0VTukB/iju+RMOvs787Ta2v/P 6rgbZk/3qyv4CZ3BPrrCzjVCwHDpgmqZgC0jBVKXc/gTr31/dSy6J5+gqhRCAIOpAZWW ONuazT2NYDoSG5hWoqtr5TezHtnfPvcjqJRb8JxMHBsGNS8+MkR7YcsFty0NO7ZnB7sS ToshcgVqDqcxirNADuywqKmvs8sakMUPrTTtGVqHn5dYFVnO3Eq1xX3LiBlHBqZK4GLj jUVLxMWS/DtvsFx5cZmgt0Pw2gzj7Lx+KU8F1urVKkpRXXbpjvRyedKSudREll6w3FZe Xj1A== 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=4RvaouRM2+G+znha67ehSRwzzKvF8cyrCvUAnbEOndI=; b=C6o4voP79WjM1Q/w5FcbjWJpBm2E0duPz4TEJ2utB1cvh1pxbnL4MgyUwFEmJhYnrE Wg8PVDMUo7Hz5MiTtyyqe9T+0DmoVt9nFSmCEJ/LoNee1YT4BMuTgFv/vr8kvFkQvtOx nOYzGQCQCN7usfGJS/wcWMFYnUVvm5bzPcBAckOGrfi7x+UzqwO5IheMl6Y22jKtRYAd KWNSPMTKKqT43H/m5rHaHLOt98YwozkLhcGkV06fmzIXvy6BtUctcNKf9m/J3sp81uMv 6xt3VxBulHIvlrXGmcbnH4kKEW4lbXxVRXW/UIjSgGh9BgC43VXpl+SEypq8+2vYgkyE G+xA== 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 d4-20020a056a0010c400b0056590cd0969si9678300pfu.208.2022.11.20.12.08.54; Sun, 20 Nov 2022 12:09:07 -0800 (PST) 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 S229850AbiKTUHx (ORCPT + 99 others); Sun, 20 Nov 2022 15:07:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229674AbiKTUHi (ORCPT ); Sun, 20 Nov 2022 15:07:38 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6286C17E1E; Sun, 20 Nov 2022 12:07:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id F109760D17; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 671ADC433B5; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbG-00Di6D-1e; Sun, 20 Nov 2022 15:07:34 -0500 Message-ID: <20221120200734.299297602@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:06 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , , stable@vger.kernel.org, Wang Wensheng Subject: [for-linus][PATCH 06/13] ftrace: Optimize the allocation for mcount entries References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047074150201025?= X-GMAIL-MSGID: =?utf-8?q?1750047074150201025?= From: Wang Wensheng If we can't allocate this size, try something smaller with half of the size. Its order should be decreased by one instead of divided by two. Link: https://lkml.kernel.org/r/20221109094434.84046-3-wangwensheng4@huawei.com Cc: Cc: Cc: stable@vger.kernel.org Fixes: a79008755497d ("ftrace: Allocate the mcount record pages as groups") Signed-off-by: Wang Wensheng Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 8b13ce2eae70..56a168121bfc 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -3190,7 +3190,7 @@ static int ftrace_allocate_records(struct ftrace_page *pg, int count) /* if we can't allocate this size, try something smaller */ if (!order) return -ENOMEM; - order >>= 1; + order--; goto again; } From patchwork Sun Nov 20 20:07:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23451 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250565wrr; Sun, 20 Nov 2022 12:09:08 -0800 (PST) X-Google-Smtp-Source: AA0mqf4QyNpRNh05ttAFsTOaXhZNIuWhkbUTjcu+f7v7o9KYYO9hh0x6SIUyiKH1OOPd6c1soJQu X-Received: by 2002:a17:902:f344:b0:186:fe2e:7eb0 with SMTP id q4-20020a170902f34400b00186fe2e7eb0mr8965720ple.55.1668974948152; Sun, 20 Nov 2022 12:09:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974948; cv=none; d=google.com; s=arc-20160816; b=ZbzTWw3fenPa3fNUFNku+TIf2fPU4vXEPj3do7PQY1GhcorEgmnM2dZX1Q2VoI+vQi orhwQPAsrDNP+5oQwMFicat6cbLt1zYZ6wcSOkT8UJUL9apRNgZD6Iw9aRfBJ1o1fsCC z7T7t0rctsE5b9siwh20X4BIJQfW90tZY+lDrPL1RNLq2kVFDFG+TmSb1HVGmr+6a9HK dziSi6bk4Pnn/etj1Op4olWesLHkfGjnfxOVeJy2sgtVeFOZYMj7G0yXneA8sF6ZQB7h CwvSULaJZLeM5N+HSujrok2JfG2yt5sg4+XmvhCTiNAzxWWFB9tTL6VXg3cIGTVEd1IQ bY9w== 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=M/+v38d+i8BxoTLNQDaENU6cbaD9p2M48DSzJ7wBCbE=; b=uqdFSv9t3QCqUaGDVcBApDuOfjn15R0Ef6Emj0qmF5HRa8ixCfXKL17+Xp9C3r1sFU QyWjrFyfYK/DAun5pSbHXp2iGTqVrO5pSEo/XPps29SqwUfydrrLQ3tTtipJbYrytRCE 5Rnx5NK2JgGPJs9ZNoi62BNLPqK2lKt+8BzjJjCYIGINchrYtyLCJkDQrh0oIMQPkYgM +jN5DuZvsnzpJRYIOftPv0pWkwmu3q2snsaawvVt7MLhjGTiChGPDTk0BqyCxyN5YqL/ ng/KEaFrTKX1OqgHp7AkVTmlplNMAj+k1Gn4CWTZAf+k9Z4AEqNzpRAv+NajDlsfK7LS zNPQ== 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 c13-20020a631c0d000000b0046ecd36adbasi9082013pgc.635.2022.11.20.12.08.54; Sun, 20 Nov 2022 12:09:08 -0800 (PST) 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 S229879AbiKTUII (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229723AbiKTUHk (ORCPT ); Sun, 20 Nov 2022 15:07:40 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A55E41D673; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id DA98AB80B78; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9209BC4314B; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbG-00Di6j-2B; Sun, 20 Nov 2022 15:07:34 -0500 Message-ID: <20221120200734.530770096@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:07 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , stable@vger.kernel.org, Daniil Tatianin Subject: [for-linus][PATCH 07/13] ring_buffer: Do not deactivate non-existant pages References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047075436639318?= X-GMAIL-MSGID: =?utf-8?q?1750047075436639318?= From: Daniil Tatianin rb_head_page_deactivate() expects cpu_buffer to contain a valid list of ->pages, so verify that the list is actually present before calling it. Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool. Link: https://lkml.kernel.org/r/20221114143129.3534443-1-d-tatianin@yandex-team.ru Cc: stable@vger.kernel.org Fixes: 77ae365eca895 ("ring-buffer: make lockless") Signed-off-by: Daniil Tatianin Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ring_buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index a19369c4d8df..b21bf14bae9b 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -1802,9 +1802,9 @@ static void rb_free_cpu_buffer(struct ring_buffer_per_cpu *cpu_buffer) free_buffer_page(cpu_buffer->reader_page); - rb_head_page_deactivate(cpu_buffer); - if (head) { + rb_head_page_deactivate(cpu_buffer); + list_for_each_entry_safe(bpage, tmp, head, list) { list_del_init(&bpage->list); free_buffer_page(bpage); From patchwork Sun Nov 20 20:07:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23446 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250518wrr; Sun, 20 Nov 2022 12:09:00 -0800 (PST) X-Google-Smtp-Source: AA0mqf4qeQogg+LkymjKEGbIZVt3sZ42Ot04HP67Li04D3W3ZnBFlr197aIuz5lKrRgIUkM8A7Iy X-Received: by 2002:a17:902:6943:b0:188:ab16:2393 with SMTP id k3-20020a170902694300b00188ab162393mr8815418plt.87.1668974940429; Sun, 20 Nov 2022 12:09:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974940; cv=none; d=google.com; s=arc-20160816; b=jsMP0rHQrrhdFo8mH7ChPVaRMXCwINfkRr5lmqM/0nfJQRApBakhjjkwo6eP6Y5y/O Y24fL5rnLgmDQzXaMdSuryCeViZokWEKSRxryETY3lRYU7mR8mXsaDSuk9vwcl3vzS9E anavp+UmsEV5MXuxIOeQIs9Z+Eq4Y5a09qy+GonwP25AVRfayRGW9Zv2p8i+ODVPiE5X KrWjcyo6dw1NYXiFDm4Uz+2sr10UdX9qxAqBAxwOeGt5yKXH83r825KhGcCAXBp+eEVO bDIkvvUgff6wd9YLoZMbGJ+kQaIZ4g4TM0R3Gp5Da+RYRZSO7Gh5HLsurAiYPbwGRXbX s0mA== 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=Cf8ecPiixsn80T8GXthOSISQnHB4AeknvvFDiWB8xkQ=; b=y1aPqBaUh2phppw6fWoFdi1uKFMg1af0Qzkoor53yYuaW4e5BYIIKoep+d1no/mNty LILJuqjhKs+QEAf0h8zci3626tYDToq/BOZPOgumTMme/udd3BVPyZCrQkzptO8HnO1n D4Pv4DYguhpSp3CGND6DtKtwoW6PHKyOTDWfce+34pLbLZ9ZYIqmws7nP5AzskbK/32I FGXUVlpE1jU72Bq8jwyVEEftpuIUnHbTGL++wOwGzvOLFhSWYH3qMSl0dhdeTTsLcczG e5HEwl8h09jsriQsStXyHmVhIQPx9qoKRMjyS4cGVOyHktL+pLiHMJi6PFmvPRkKdEMF mkSw== 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 lw6-20020a17090b180600b0020d65f31df8si15795489pjb.143.2022.11.20.12.08.47; Sun, 20 Nov 2022 12:09:00 -0800 (PST) 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 S229834AbiKTUHs (ORCPT + 99 others); Sun, 20 Nov 2022 15:07:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229610AbiKTUHi (ORCPT ); Sun, 20 Nov 2022 15:07:38 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 135391AF27; Sun, 20 Nov 2022 12:07:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1B99A60D30; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E99B3C43147; Sun, 20 Nov 2022 20:07:35 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbG-00Di7E-2n; Sun, 20 Nov 2022 15:07:34 -0500 Message-ID: <20221120200734.707886372@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:08 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , stable@vger.kernel.org, Xiu Jianfeng Subject: [for-linus][PATCH 08/13] ftrace: Fix null pointer dereference in ftrace_add_mod() References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047067246567160?= X-GMAIL-MSGID: =?utf-8?q?1750047067246567160?= From: Xiu Jianfeng The @ftrace_mod is allocated by kzalloc(), so both the members {prev,next} of @ftrace_mode->list are NULL, it's not a valid state to call list_del(). If kstrdup() for @ftrace_mod->{func|module} fails, it goes to @out_free tag and calls free_ftrace_mod() to destroy @ftrace_mod, then list_del() will write prev->next and next->prev, where null pointer dereference happens. BUG: kernel NULL pointer dereference, address: 0000000000000008 Oops: 0002 [#1] PREEMPT SMP NOPTI Call Trace: ftrace_mod_callback+0x20d/0x220 ? do_filp_open+0xd9/0x140 ftrace_process_regex.isra.51+0xbf/0x130 ftrace_regex_write.isra.52.part.53+0x6e/0x90 vfs_write+0xee/0x3a0 ? __audit_filter_op+0xb1/0x100 ? auditd_test_task+0x38/0x50 ksys_write+0xa5/0xe0 do_syscall_64+0x3a/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd Kernel panic - not syncing: Fatal exception So call INIT_LIST_HEAD() to initialize the list member to fix this issue. Link: https://lkml.kernel.org/r/20221116015207.30858-1-xiujianfeng@huawei.com Cc: stable@vger.kernel.org Fixes: 673feb9d76ab ("ftrace: Add :mod: caching infrastructure to trace_array") Signed-off-by: Xiu Jianfeng Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ftrace.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 56a168121bfc..33236241f236 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -1289,6 +1289,7 @@ static int ftrace_add_mod(struct trace_array *tr, if (!ftrace_mod) return -ENOMEM; + INIT_LIST_HEAD(&ftrace_mod->list); ftrace_mod->func = kstrdup(func, GFP_KERNEL); ftrace_mod->module = kstrdup(module, GFP_KERNEL); ftrace_mod->enable = enable; From patchwork Sun Nov 20 20:07:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23456 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250666wrr; Sun, 20 Nov 2022 12:09:27 -0800 (PST) X-Google-Smtp-Source: AA0mqf4BWMEXN8DDARhl4eBF4kINX2Bcg1MECHLiBIQ0rkHlTe+/y/Nhgeud4Dt0/E28dg2kQKm7 X-Received: by 2002:a17:902:8c8e:b0:179:f6ed:2ca8 with SMTP id t14-20020a1709028c8e00b00179f6ed2ca8mr3340200plo.14.1668974966821; Sun, 20 Nov 2022 12:09:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974966; cv=none; d=google.com; s=arc-20160816; b=KbO1LQo36wrXfJnlMTw6ZBuZv/0FR+ZqyMLaJxnvJG4TwFO79MSx9xIwMkTalAilqe CzSFA2HRTcmXu5ULZAN97FZDRxo2gLl+Y78ZRWj5Pf6pmFs8oBJEaX0BVHUMxOQ4W6TL ggpr8kIUVaoUvwceSrUyVV+++1cqCUXJ2LVQWFZsqq6WgoOzYtn6cR1r89byMkCKLuQa m65br8BayzXearcnm6y/Z1LegjC97mAkSpuFJzJAEYauGCVl4lVj+pE861pS6rM+/l/U yhR1M0jKAiRrMWwl7iM3izHKrKVjW2FovNa2j2p0eU15aO+Vygxorc/OThS5oPzoqwck nkOg== 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=9i1fewMtC0w1/BPvb4OKVEkCsiRlEsi4XXk798CH/k0=; b=HYURN5a5WVQ87J+G7xHnL7Gtv0IF0jbR068hlaR+5KJ0rf47r0q8ItqEZ9fzQdjN2Y SD8oB6gFQPNKA3fS1WaSP5os2LReQ+t6qWDTcfaUYq0GcaCzUU+C3EQtmeNgwCVm5SYL +WsxMEIVPTNV1Raekyi9vanMiLxSVsDTRZ7iNwYsZmWc/k87agCenuKqyVu/RRS3X5eQ mGSeXE2+2HoKY/jVkM0WXdVAA7jW9WEnpq+teiVg/VD7zBMrpiUnSAcoyWZceJBRAm+L YUD93Jnsy630TUmoNo0xEAqwOx/wm/0KXjw601rs4Wkb5FUiBKRyiQORQbBgRMHr2xWm wXoQ== 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 k14-20020a17090a590e00b002131d14d06dsi7763788pji.159.2022.11.20.12.09.13; Sun, 20 Nov 2022 12:09:26 -0800 (PST) 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 S229889AbiKTUI0 (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229764AbiKTUHl (ORCPT ); Sun, 20 Nov 2022 15:07:41 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B003A1E3EE; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 38DFE60D2C; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13115C433C1; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbH-00Di7j-0Y; Sun, 20 Nov 2022 15:07:35 -0500 Message-ID: <20221120200734.954185003@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:09 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , , , stable@vger.kernel.org, Shang XiaoJing Subject: [for-linus][PATCH 09/13] tracing: Fix memory leak in test_gen_synth_cmd() and test_empty_synth_event() References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047094890128077?= X-GMAIL-MSGID: =?utf-8?q?1750047094890128077?= From: Shang XiaoJing test_gen_synth_cmd() only free buf in fail path, hence buf will leak when there is no failure. Add kfree(buf) to prevent the memleak. The same reason and solution in test_empty_synth_event(). unreferenced object 0xffff8881127de000 (size 2048): comm "modprobe", pid 247, jiffies 4294972316 (age 78.756s) hex dump (first 32 bytes): 20 67 65 6e 5f 73 79 6e 74 68 5f 74 65 73 74 20 gen_synth_test 20 70 69 64 5f 74 20 6e 65 78 74 5f 70 69 64 5f pid_t next_pid_ backtrace: [<000000004254801a>] kmalloc_trace+0x26/0x100 [<0000000039eb1cf5>] 0xffffffffa00083cd [<000000000e8c3bc8>] 0xffffffffa00086ba [<00000000c293d1ea>] do_one_initcall+0xdb/0x480 [<00000000aa189e6d>] do_init_module+0x1cf/0x680 [<00000000d513222b>] load_module+0x6a50/0x70a0 [<000000001fd4d529>] __do_sys_finit_module+0x12f/0x1c0 [<00000000b36c4c0f>] do_syscall_64+0x3f/0x90 [<00000000bbf20cf3>] entry_SYSCALL_64_after_hwframe+0x63/0xcd unreferenced object 0xffff8881127df000 (size 2048): comm "modprobe", pid 247, jiffies 4294972324 (age 78.728s) hex dump (first 32 bytes): 20 65 6d 70 74 79 5f 73 79 6e 74 68 5f 74 65 73 empty_synth_tes 74 20 20 70 69 64 5f 74 20 6e 65 78 74 5f 70 69 t pid_t next_pi backtrace: [<000000004254801a>] kmalloc_trace+0x26/0x100 [<00000000d4db9a3d>] 0xffffffffa0008071 [<00000000c31354a5>] 0xffffffffa00086ce [<00000000c293d1ea>] do_one_initcall+0xdb/0x480 [<00000000aa189e6d>] do_init_module+0x1cf/0x680 [<00000000d513222b>] load_module+0x6a50/0x70a0 [<000000001fd4d529>] __do_sys_finit_module+0x12f/0x1c0 [<00000000b36c4c0f>] do_syscall_64+0x3f/0x90 [<00000000bbf20cf3>] entry_SYSCALL_64_after_hwframe+0x63/0xcd Link: https://lkml.kernel.org/r/20221117012346.22647-2-shangxiaojing@huawei.com Cc: Cc: Cc: Cc: stable@vger.kernel.org Fixes: 9fe41efaca08 ("tracing: Add synth event generation test module") Signed-off-by: Shang XiaoJing Signed-off-by: Steven Rostedt (Google) --- kernel/trace/synth_event_gen_test.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/kernel/trace/synth_event_gen_test.c b/kernel/trace/synth_event_gen_test.c index 0b15e975d2c2..8d77526892f4 100644 --- a/kernel/trace/synth_event_gen_test.c +++ b/kernel/trace/synth_event_gen_test.c @@ -120,15 +120,13 @@ static int __init test_gen_synth_cmd(void) /* Now generate a gen_synth_test event */ ret = synth_event_trace_array(gen_synth_test, vals, ARRAY_SIZE(vals)); - out: + free: + kfree(buf); return ret; delete: /* We got an error after creating the event, delete it */ synth_event_delete("gen_synth_test"); - free: - kfree(buf); - - goto out; + goto free; } /* @@ -227,15 +225,13 @@ static int __init test_empty_synth_event(void) /* Now trace an empty_synth_test event */ ret = synth_event_trace_array(empty_synth_test, vals, ARRAY_SIZE(vals)); - out: + free: + kfree(buf); return ret; delete: /* We got an error after creating the event, delete it */ synth_event_delete("empty_synth_test"); - free: - kfree(buf); - - goto out; + goto free; } static struct synth_field_desc create_synth_test_fields[] = { From patchwork Sun Nov 20 20:07:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23450 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250563wrr; Sun, 20 Nov 2022 12:09:08 -0800 (PST) X-Google-Smtp-Source: AA0mqf57HpOdTeYrUPEMEImFqJqBt87F05wyAG+UAs2JIIWoR0JuVhK6ErHnm9SMPBUU9GVBLAHI X-Received: by 2002:a63:fd47:0:b0:477:1a2b:762e with SMTP id m7-20020a63fd47000000b004771a2b762emr4785746pgj.240.1668974947906; Sun, 20 Nov 2022 12:09:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974947; cv=none; d=google.com; s=arc-20160816; b=CmyjQSwgO0ixiVx9iYUABzP01Z8symR9BJZiXT9lGgE8TfUQ+EY/fnxdr/8+aIPnvv /jvc6Bf2FatRl/+n3lMMoVLvhJ+H3n+C8WYQPsyocUDfvk2Bgrfd9b+XwKJsUODB9EVi nNDFTobhMIidAanWGP+BtLEgvBRwpxnQUdboRfRWTIyt6TsaQ5PgK3zzCv+g3VqNaoYn sQdurI2jN+n3IZXME/QH3rFgjHqBKDmwzOCpy54CQHkQ8mPyz/f5N2IZ9/evBrNrOm77 zS6m90AVR2TWDPEPoWdG2y/0+E78OFnjKJlehKvYohxB1EJ8M7fr+v1oslkSXZoT9Zn1 cDDg== 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=b8gAvadQ3BtaK5sRHb4ksOCrwqaE8KifpQ5L0oPMC/M=; b=w9u/4f9RD90E4HkgmqM+YnZ60n07tGLUt7EvBIniuwrUio8rjkIs3uc4QXtTALNnop XjkpE0KsnBtHWlTXX/SW3zvVCrXQvXAsOkdWzUZs7Sv9F1v1XIpWvb+6RFYfhisMqOxO KbVnIVwKZfAvh57gJj9HroKvTae6cmS5Z5QPlS00kZ7nFv0mj9J8jMC+2/pv6i3BoBLh 3hBMbRr/1mZIzTxHuYWl4zUnwtIFvjp7titJA+yWBUmPD5gxVMp6EtYCyMOuj8GYGwaI 1CCQ4P9Ph5WD+m7Q4sZlbd1bUt1KWIUlMAvMwm3jBwtxXsRHgT65mRYaqeDFAiGRJN0a B3Yg== 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 197-20020a6301ce000000b0043941e5532dsi9870731pgb.391.2022.11.20.12.08.54; Sun, 20 Nov 2022 12:09:07 -0800 (PST) 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 S229892AbiKTUID (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229721AbiKTUHk (ORCPT ); Sun, 20 Nov 2022 15:07:40 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADA051DDF7; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6FDD660D32; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 488F7C43149; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbH-00Di8F-1H; Sun, 20 Nov 2022 15:07:35 -0500 Message-ID: <20221120200735.196313388@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:10 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , Shang XiaoJing , stable@vger.kernel.org, , Subject: [for-linus][PATCH 10/13] tracing: Fix wild-memory-access in register_synth_event() References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047075316282791?= X-GMAIL-MSGID: =?utf-8?q?1750047075316282791?= From: Shang XiaoJing In register_synth_event(), if set_synth_event_print_fmt() failed, then both trace_remove_event_call() and unregister_trace_event() will be called, which means the trace_event_call will call __unregister_trace_event() twice. As the result, the second unregister will causes the wild-memory-access. register_synth_event set_synth_event_print_fmt failed trace_remove_event_call event_remove if call->event.funcs then __unregister_trace_event (first call) unregister_trace_event __unregister_trace_event (second call) Fix the bug by avoiding to call the second __unregister_trace_event() by checking if the first one is called. general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN PTI KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127] CPU: 0 PID: 3807 Comm: modprobe Not tainted 6.1.0-rc1-00186-g76f33a7eedb4 #299 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 04/01/2014 RIP: 0010:unregister_trace_event+0x6e/0x280 Code: 00 fc ff df 4c 89 ea 48 c1 ea 03 80 3c 02 00 0f 85 0e 02 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b 63 08 4c 89 e2 48 c1 ea 03 <80> 3c 02 00 0f 85 e2 01 00 00 49 89 2c 24 48 85 ed 74 28 e8 7a 9b RSP: 0018:ffff88810413f370 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffff888105d050b0 RCX: 0000000000000000 RDX: 1bd5a00000000024 RSI: ffff888119e276e0 RDI: ffffffff835a8b20 RBP: dead000000000100 R08: 0000000000000000 R09: fffffbfff0913481 R10: ffffffff8489a407 R11: fffffbfff0913480 R12: dead000000000122 R13: ffff888105d050b8 R14: 0000000000000000 R15: ffff888105d05028 FS: 00007f7823e8d540(0000) GS:ffff888119e00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7823e7ebec CR3: 000000010a058002 CR4: 0000000000330ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __create_synth_event+0x1e37/0x1eb0 create_or_delete_synth_event+0x110/0x250 synth_event_run_command+0x2f/0x110 test_gen_synth_cmd+0x170/0x2eb [synth_event_gen_test] synth_event_gen_test_init+0x76/0x9bc [synth_event_gen_test] do_one_initcall+0xdb/0x480 do_init_module+0x1cf/0x680 load_module+0x6a50/0x70a0 __do_sys_finit_module+0x12f/0x1c0 do_syscall_64+0x3f/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd Link: https://lkml.kernel.org/r/20221117012346.22647-3-shangxiaojing@huawei.com Fixes: 4b147936fa50 ("tracing: Add support for 'synthetic' events") Signed-off-by: Shang XiaoJing Cc: stable@vger.kernel.org Cc: Cc: Cc: Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_synth.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c index e310052dc83c..29fbfb27c2b2 100644 --- a/kernel/trace/trace_events_synth.c +++ b/kernel/trace/trace_events_synth.c @@ -828,10 +828,9 @@ static int register_synth_event(struct synth_event *event) } ret = set_synth_event_print_fmt(call); - if (ret < 0) { + /* unregister_trace_event() will be called inside */ + if (ret < 0) trace_remove_event_call(call); - goto err; - } out: return ret; err: From patchwork Sun Nov 20 20:07:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23457 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250681wrr; Sun, 20 Nov 2022 12:09:29 -0800 (PST) X-Google-Smtp-Source: AA0mqf5tmgyrPho8r71uM1IAyv7QdJyDpXlyfdfrfHriNlZxQ5w/qhuC31iBZeBMu+k8SDIlxFOj X-Received: by 2002:a63:1e4b:0:b0:470:514e:1f12 with SMTP id p11-20020a631e4b000000b00470514e1f12mr14916469pgm.353.1668974969104; Sun, 20 Nov 2022 12:09:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974969; cv=none; d=google.com; s=arc-20160816; b=ONDqBuo7wigYxdvBhu4qn7X30o9JM/+frYTmH1qQK8uYQwDGcJj7LBU1pBKLdOCNjd +tbvqCAFqxVYrOVgFI2LwktrhE1OQNlqfIb58oLDE4AJ16bwAaJBEhSUMdhqbFZBH4wR uroJ0HkawxHpKQSKK7nkeKp8AnJ1yhljLd+nq42yOXpM2YMWdeONw0t+h+Ex1YCEm9Rr CX08zRr7CIsoHJLnFqzo/sI01ncDha1MW6mJ1om15uojOW9AJGbLHdP6duYrwO+lhSZy IMnok1Opv2dkB6d/Xiq2XYfXxxHDRJG7sSh+O5FUHLZfgCYq3rUc6vLGEQLJ4JRAJKJt Ulnw== 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=JchYa6rB1esIqKcePguKVbBXG+d/+8PXamNF2+dBoto=; b=bp4CVOMgvbG6q7yGt4HILhphEvOIqGCX3/UvUAhJyna81wGDzN2/QNkySviq/fuZxf 8VVNjOgyAY470UfQORPk9cP2EOfXOrWmga9k4Q3+2hBAEOSldqGluQmqOLiif3fGcY7N F+hYHEN77bnamOXjOaPP+uAr/d/qEp3IbtWIR6J7CHI+OTOrOiNrVoJs3uzc0fBhNufe q5/G+f7dRjqAJYoR2HPNymHEbot4Si1eiqv2jwBjvvWFzG092pQ2GREkgzGOH2s/k5wz fkx+iB8IBi/QjTihmsyP7oNeXG+ZcEeU5LALr3YRQRh32yqXKn1moEqHSrG9XpCoWgTO obBQ== 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 q16-20020a17090aa01000b00215e3cdaa32si8368065pjp.131.2022.11.20.12.09.15; Sun, 20 Nov 2022 12:09:29 -0800 (PST) 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 S229935AbiKTUIa (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229746AbiKTUHk (ORCPT ); Sun, 20 Nov 2022 15:07:40 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF49B1E3C9 for ; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A1BAE60D36 for ; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7BF6FC43141; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbH-00Di8k-1u; Sun, 20 Nov 2022 15:07:35 -0500 Message-ID: <20221120200735.429898312@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:11 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , Qiujun Huang Subject: [for-linus][PATCH 11/13] tracing: Remove unused __bad_type_size() method References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047097089704182?= X-GMAIL-MSGID: =?utf-8?q?1750047097089704182?= From: Qiujun Huang __bad_type_size() is unused after commit 04ae87a52074("ftrace: Rework event_create_dir()"). So, remove it. Link: https://lkml.kernel.org/r/D062EC2E-7DB7-4402-A67E-33C3577F551E@gmail.com Acked-by: Masami Hiramatsu (Google) Signed-off-by: Qiujun Huang Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_syscalls.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index b69e207012c9..942ddbdace4a 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c @@ -201,8 +201,6 @@ print_syscall_exit(struct trace_iterator *iter, int flags, return trace_handle_return(s); } -extern char *__bad_type_size(void); - #define SYSCALL_FIELD(_type, _name) { \ .type = #_type, .name = #_name, \ .size = sizeof(_type), .align = __alignof__(_type), \ From patchwork Sun Nov 20 20:07:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23455 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250613wrr; Sun, 20 Nov 2022 12:09:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf4cAR49FCEyWjNwDzB/rbIKdhagchb8qIhbsbCLIAFvV/zb2T+Arvf9JCuSwyABxqWtADqz X-Received: by 2002:aa7:9192:0:b0:563:1ae2:6daf with SMTP id x18-20020aa79192000000b005631ae26dafmr532760pfa.71.1668974957390; Sun, 20 Nov 2022 12:09:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974957; cv=none; d=google.com; s=arc-20160816; b=oe6iNI5ZIU1BKZKSiwR4fRDYjoT4/apfhvgSKw8RHPzyBmcl3NN1Nxt/TRXWgmK0Bb ZgwcYkhWNF9kMawGs0bv5nNoui1k0bu9lrJqtx36CoVxMalhEHi+l0epPWzlQu5qdmjl pam9o6Xqeb3o3GStCtkZQm787oOsvaBMHx3jUNHB0SjAHrvDG5zjCCXSOr7k49EILyIl f8J31LE4QZME2H/Z4U7LIh5X48WRaoNZv7Kpn4Dytt7MouAyR6lwW4Fu/1fZKcW1epH3 6OPXW9pC4zWs5IOZqGTlVxgbwgYc21nwcWKcWEd0nW3fXXjMvbHpK6Sdq9Y99hCYvBgy qRKQ== 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=YBdY1J0aGQI06CfhPu5T9CBMwUlbMbR7N5+wVq351QY=; b=iflzVvyw5sM2Mow1wvYrv4sDERY5z8F7OtweNzO1Via6ulO5DXt/y943VPmiwhOXlh 1Z0/nZ2ZzmbMP7WhbEsPXPIBMxw/FouFfQNJPjM1Nhzv5umbByLqwPt1QPvBQeaRBbpS dEZa582X3+nP7EQQFBdRNkXuH5Jc7I8Knky7iG5b4tuUnq5duEjgj4mj/5p4r21Zdccw 0Q0xk8I3qpP6/3THblE67xmvBFBiuo/LtZkQuXMdlJFBz9SjmOWXzTaFPdPgiwNYudSU A0HjALeHpWb3CDJUBT+fFvh0BItINnb2NlLl3LCqMQPT1n0pwD+a9AkBZTh76fE+t+Al ILXg== 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 d8-20020a056a0010c800b00557e3e7c420si10201109pfu.213.2022.11.20.12.09.04; Sun, 20 Nov 2022 12:09:17 -0800 (PST) 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 S229871AbiKTUIW (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229747AbiKTUHk (ORCPT ); Sun, 20 Nov 2022 15:07:40 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B079F1E713 for ; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D76E660D2E for ; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1287C433D6; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbH-00Di9F-2U; Sun, 20 Nov 2022 15:07:35 -0500 Message-ID: <20221120200735.618733319@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:12 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , Zheng Yejian Subject: [for-linus][PATCH 12/13] tracing: Fix potential null-pointer-access of entry in list tr->err_log References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047084824085572?= X-GMAIL-MSGID: =?utf-8?q?1750047084824085572?= From: Zheng Yejian Entries in list 'tr->err_log' will be reused after entry number exceed TRACING_LOG_ERRS_MAX. The cmd string of the to be reused entry will be freed first then allocated a new one. If the allocation failed, then the entry will still be in list 'tr->err_log' but its 'cmd' field is set to be NULL, later access of 'cmd' is risky. Currently above problem can cause the loss of 'cmd' information of first entry in 'tr->err_log'. When execute `cat /sys/kernel/tracing/error_log`, reproduce logs like: [ 37.495100] trace_kprobe: error: Maxactive is not for kprobe(null) ^ [ 38.412517] trace_kprobe: error: Maxactive is not for kprobe Command: p4:myprobe2 do_sys_openat2 ^ Link: https://lore.kernel.org/linux-trace-kernel/20221114104632.3547266-1-zhengyejian1@huawei.com Fixes: 1581a884b7ca ("tracing: Remove size restriction on tracing_log_err cmd strings") Signed-off-by: Zheng Yejian Acked-by: Masami Hiramatsu (Google) Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 5bd202d6d79a..a7fe0e115272 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7803,6 +7803,7 @@ static struct tracing_log_err *get_tracing_log_err(struct trace_array *tr, int len) { struct tracing_log_err *err; + char *cmd; if (tr->n_err_log_entries < TRACING_LOG_ERRS_MAX) { err = alloc_tracing_log_err(len); @@ -7811,12 +7812,12 @@ static struct tracing_log_err *get_tracing_log_err(struct trace_array *tr, return err; } - + cmd = kzalloc(len, GFP_KERNEL); + if (!cmd) + return ERR_PTR(-ENOMEM); err = list_first_entry(&tr->err_log, struct tracing_log_err, list); kfree(err->cmd); - err->cmd = kzalloc(len, GFP_KERNEL); - if (!err->cmd) - return ERR_PTR(-ENOMEM); + err->cmd = cmd; list_del(&err->list); return err; From patchwork Sun Nov 20 20:07:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 23453 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp1250567wrr; Sun, 20 Nov 2022 12:09:08 -0800 (PST) X-Google-Smtp-Source: AA0mqf6M7QowdnySHiCtNmCxZU2SQSSNzY3jnB2sb3iW4vbwtLJUgA9okd0ZS9WnMLavew5ZMrrH X-Received: by 2002:a63:5819:0:b0:476:8ce9:be5d with SMTP id m25-20020a635819000000b004768ce9be5dmr991253pgb.15.1668974948610; Sun, 20 Nov 2022 12:09:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668974948; cv=none; d=google.com; s=arc-20160816; b=XXJBaD53cHi2qGM75STivMmxlOFvn4RFjOZUzFRy+Qp3y5eO1zOiujxRFeR3KkGiKs 9KkUO8InMRDzhZ/OgtDsmf1PPpqomAEdtU4RlUy+ar3vbKAHZ8wmRJONg2whJhq0vS9n Gfq9WQaDCjkypdFKgQ60YJPumRSDKPmFOUdFIlbIBMLyyBUo12ol1D3piHWg9Hz2W4s0 LaY9FYd+NkgQbh0GdEttaCqFXJqNoXj7aiYzygPMaC4TgXqXgZVvjJtnPB9It25l0wb9 +n6Q1fbO65oFFb2y2M4ktOQ1ePsDMDnNJyHpkOjZx/2J+cgkizN7qz7pWxNYUm1PUVk2 1C/Q== 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=gnsaVg8zADQYWA66IgT8pEmFGwqQ2P1VI0grs8O/Imw=; b=oAzWUcy4DEr2R3RrUYGpA3YAUAGDLxHfxyS4mmOaD/08gHkkj4utTR53w4PziWrw4c CxJLUOliM6p5Xt4jD8tEt7ErGC/s1+gm1MHs/hMPbXJw7sz88vfJhR5Gl6zyr0Uh3shZ 3YooojnHV4k3ytt5cs29QFOUP1GUPZKSclsuvF1k4A3YfPUG9Kv/YmFry8D8EmRMg3OX H4pj3ONbPoTCl3s5zOjG8vPw8K+8q3RI+U8zp3M0bbAZmc39VElr26WdfurR46g5xx3B hyANslRzPk1dgCF56MX9u09SU5PPlQ1srvqvVbzvQ4mauilV0PhL2RyUDdej1ayOu8Tu L5ow== 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 e18-20020a170903241200b00188f0ca258asi9283872plo.388.2022.11.20.12.08.55; Sun, 20 Nov 2022 12:09:08 -0800 (PST) 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 S229904AbiKTUIM (ORCPT + 99 others); Sun, 20 Nov 2022 15:08:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229751AbiKTUHl (ORCPT ); Sun, 20 Nov 2022 15:07:41 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6B391E729; Sun, 20 Nov 2022 12:07:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id EDB4260D39; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6FD6C433D7; Sun, 20 Nov 2022 20:07:36 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1owqbH-00Di9j-2x; Sun, 20 Nov 2022 15:07:35 -0500 Message-ID: <20221120200735.791518959@goodmis.org> User-Agent: quilt/0.66 Date: Sun, 20 Nov 2022 15:07:13 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Andrew Morton , Linux Trace Kernel , Tzvetomir Stoyanov , Tom Zanussi , stable@vger.kernel.org, Rafael Mendonca Subject: [for-linus][PATCH 13/13] tracing: Fix race where eprobes can be called before the event References: <20221120200700.725968899@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750047075907979180?= X-GMAIL-MSGID: =?utf-8?q?1750047075907979180?= From: "Steven Rostedt (Google)" The flag that tells the event to call its triggers after reading the event is set for eprobes after the eprobe is enabled. This leads to a race where the eprobe may be triggered at the beginning of the event where the record information is NULL. The eprobe then dereferences the NULL record causing a NULL kernel pointer bug. Test for a NULL record to keep this from happening. Link: https://lore.kernel.org/linux-trace-kernel/20221116192552.1066630-1-rafaelmendsr@gmail.com/ Link: https://lore.kernel.org/linux-trace-kernel/20221117214249.2addbe10@gandalf.local.home Cc: Linux Trace Kernel Cc: Tzvetomir Stoyanov Cc: Tom Zanussi Cc: stable@vger.kernel.org Fixes: 7491e2c442781 ("tracing: Add a probe that attaches to trace events") Acked-by: Masami Hiramatsu (Google) Reported-by: Rafael Mendonca Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_eprobe.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c index 5dd0617e5df6..9cda9a38422c 100644 --- a/kernel/trace/trace_eprobe.c +++ b/kernel/trace/trace_eprobe.c @@ -563,6 +563,9 @@ static void eprobe_trigger_func(struct event_trigger_data *data, { struct eprobe_data *edata = data->private_data; + if (unlikely(!rec)) + return; + __eprobe_trace_func(edata, rec); }