From patchwork Sat Sep 9 03:16:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137836 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1212486vqo; Sat, 9 Sep 2023 09:28:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE7qzIa6FRn2QBk9Fh36oiYoiTa3LdKtZLxU8DeNzYfybXSMKmrRHAd6hco0t0o3pcP5se8 X-Received: by 2002:aa7:ce05:0:b0:523:3853:e01a with SMTP id d5-20020aa7ce05000000b005233853e01amr4072499edv.36.1694276894620; Sat, 09 Sep 2023 09:28:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694276894; cv=none; d=google.com; s=arc-20160816; b=zQQVHj8dgHpdA4py/33YCp2u8h+H1/LlhUD3yxezVC0d8ED1AtjQNMlauz7JGk8BFk 3lRaabC4B9bQM4aPH9f79JjLLS7cd6q8acn8skOMswKkhVHUPiijBJLmcf44ti7iUV+g 33a2PrHAA7KtUSoMtzkDB5XkF2sNrefNglii0+Busycnlzm0vRxq/OEwBr9zyFl36RSu HRJN17cXTGeo40jTXUwiExstS1u7vio9xDzUmzPlDIvVMHViI7WlL3voDc+gBdWiKV0V l4I9uFs48bjiAtwVBSeAgGCT2nXOi3wqRYYXrHlqDttqlxVnUgFmX7FSN6sczSiJisn/ ZxgQ== 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=ua4vyJG4jmQOuuVkZhh0dIuiaXGO2bF4w/mU2MPD3XQ=; fh=xHcg5TdCQP957WfgID2Hb2/KNvVNsnXknMVdAjWuH7Y=; b=sYbjajTFE5OoaAxErpjOkKnk9ci4KUu38z89o68kwVb4onqvODI1/3Q0c1zY+GXowM AnXXLsvtgeWtT3kt04pZgnjWslcLjlJsWPa95B8gU9Liy+2Y1kyEtM6kv3IIh3UrC9iU ez6ge1o75z5yCi7OS6LO3BSCyOUmLHadwD2xc4Dprltqsfi9fWbXC2yl3WLOxBNlyqwu cB6GcxsyQaqueuElE3VuqpN8UEG8IUxjNQf+5XcnJ/eizueoRlWx/A4DruBSsfc6gFUv 3Tx6Rbr7W9pb8XoTKpumKokCxlffBWMqLZ9dmcepPwpFsDAj9lERpyfdFHyYfsBRsI5r LayQ== 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 y14-20020a056402134e00b0052228b42848si3406393edw.60.2023.09.09.09.28.11; Sat, 09 Sep 2023 09:28:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235479AbjIIDXi (ORCPT + 11 others); Fri, 8 Sep 2023 23:23:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59066 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232042AbjIIDXf (ORCPT ); Fri, 8 Sep 2023 23:23:35 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4939E1FE5; Fri, 8 Sep 2023 20:23:30 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4D55C433CA; Sat, 9 Sep 2023 03:23:29 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZY-000Ycx-1C; Fri, 08 Sep 2023 23:23:48 -0400 Message-ID: <20230909032348.185808168@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:16 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Ajay Kaher , Ching-lin Yu , kernel test robot Subject: [for-linus][PATCH 01/15] tracefs: Add missing lockdown check to tracefs_create_dir() References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776578088980202297 X-GMAIL-MSGID: 1776578088980202297 From: "Steven Rostedt (Google)" The function tracefs_create_dir() was missing a lockdown check and was called by the RV code. This gave an inconsistent behavior of this function returning success while other tracefs functions failed. This caused the inode being freed by the wrong kmem_cache. Link: https://lkml.kernel.org/r/20230905182711.692687042@goodmis.org Link: https://lore.kernel.org/all/202309050916.58201dc6-oliver.sang@intel.com/ Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Ajay Kaher Cc: Ching-lin Yu Fixes: bf8e602186ec4 ("tracing: Do not create tracefs files if tracefs lockdown is in effect") Reported-by: kernel test robot Signed-off-by: Steven Rostedt (Google) --- fs/tracefs/inode.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index de5b72216b1a..3b8dd938b1c8 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -673,6 +673,9 @@ static struct dentry *__create_dir(const char *name, struct dentry *parent, */ struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) { + if (security_locked_down(LOCKDOWN_TRACEFS)) + return NULL; + return __create_dir(name, parent, &simple_dir_inode_operations); } From patchwork Sat Sep 9 03:16:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137822 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp955493vqo; Fri, 8 Sep 2023 22:06:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHcoOGEHJggcnyCrcD/YfmH7fu/vd1Hlt7Nrp1rKO/Tja/9RM0TshG4rfvsriO8OTzhgMdb X-Received: by 2002:a17:902:d505:b0:1bd:f71c:3af3 with SMTP id b5-20020a170902d50500b001bdf71c3af3mr4587457plg.32.1694235978650; Fri, 08 Sep 2023 22:06:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694235978; cv=none; d=google.com; s=arc-20160816; b=p6Cwx6kZnfEc1lBiX3+j9mX0piHDrKkJwDsQsEFG/lLmrHEifWLfwPFPbAyAd+2rEy RdLxUODGLK8hsJ6wyXS8r+P0exv1sH9c8C5Rv1oxWaBtEnNA+2QuZsiLbfr+VYDm532s RSk1FOAeQT4fdMGVMhfNCxTjExlcAqgcBF6NDOc3x4bagrZf8bxyWjxlG2xD985D/l59 O87+xhZEarPzkLXMr0TPHxpQKO64PZA/9YlL0g+7bnpfAbn09KT2ct6LOqqiejm/fU3b 2k57+pfdRqCx9VGeQotAfCzmtJiZbyEfulQ1ndEFpkIpje4dmHaQpCNTbZFyiDkOH1oD EsQg== 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=uX11/mREnk6dgwpcwJH8wP+RdVt/DY8wTIyGm8bsnu8=; fh=dvR8RQId/saN/sHuM/3JupfY3kWEkBHkNPcf07cBPbU=; b=dt0ODupR+T7ZBfUKZoEtCBWmMUvI0h6XideU8MY45wxvIjARgFxLG0EvjXn6inOpBi QhgDnDbcB7sYS+BQdog1tqgEtDx8sjHiYF8jlq2o84ZLXuRcCMUVUBTUQKH7r/2gVfQF MZkJ2BivyT3C6cZDXZAaPpJFKzNxQpyw6GTj3URN4M2gV6mqTo6dtdukYcL4i6lc5YQW 6/tARA5/xlQLSXQOheVms20BGpzSNTSqp/9y/aK6Pp710p/3ulch4gfxxWY7yT/H7J+C Fa+IIv4S4RqYf5uLj0A8QaZwMVrX+WbWF9TIw9uL3oNBusOqNgVNVubzl6vEFr57cH0J 8XGQ== 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 kx13-20020a170902f94d00b001c3323ff53asi2699935plb.139.2023.09.08.22.06.07; Fri, 08 Sep 2023 22:06:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238924AbjIIDXx (ORCPT + 39 others); Fri, 8 Sep 2023 23:23:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232830AbjIIDXg (ORCPT ); Fri, 8 Sep 2023 23:23:36 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B59261FE9 for ; Fri, 8 Sep 2023 20:23:30 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26F9BC433D9; Sat, 9 Sep 2023 03:23:30 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZY-000YeN-2Y; Fri, 08 Sep 2023 23:23:48 -0400 Message-ID: <20230909032348.600908517@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:18 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ajay Kaher , Linux Kernel Functional Testing , Naresh Kamboju , Zheng Yejian Subject: [for-linus][PATCH 03/15] tracefs/eventfs: Use dput to free the toplevel events directory References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776535185426908641 X-GMAIL-MSGID: 1776535185426908641 From: "Steven Rostedt (Google)" Currently when rmdir on an instance is done, eventfs_remove_events_dir() is called and it does a dput on the dentry and then frees the eventfs_inode that represents the events directory. But there's no protection against a reader reading the top level events directory at the same time and we can get a use after free error. Instead, use the dput() associated to the dentry to also free the eventfs_inode associated to the events directory, as that will get called when the last reference to the directory is released. This issue triggered the following KASAN report: ================================================================== BUG: KASAN: slab-use-after-free in eventfs_root_lookup+0x88/0x1b0 Read of size 8 at addr ffff888120130ca0 by task ftracetest/1201 CPU: 4 PID: 1201 Comm: ftracetest Not tainted 6.5.0-test-10737-g469e0a8194e7 #13 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 Call Trace: dump_stack_lvl+0x57/0x90 print_report+0xcf/0x670 ? __pfx_ring_buffer_record_off+0x10/0x10 ? _raw_spin_lock_irqsave+0x2b/0x70 ? __virt_addr_valid+0xd9/0x160 kasan_report+0xd4/0x110 ? eventfs_root_lookup+0x88/0x1b0 ? eventfs_root_lookup+0x88/0x1b0 eventfs_root_lookup+0x88/0x1b0 ? eventfs_root_lookup+0x33/0x1b0 __lookup_slow+0x194/0x2a0 ? __pfx___lookup_slow+0x10/0x10 ? down_read+0x11c/0x330 walk_component+0x166/0x220 link_path_walk.part.0.constprop.0+0x3a3/0x5a0 ? seqcount_lockdep_reader_access+0x82/0x90 ? __pfx_link_path_walk.part.0.constprop.0+0x10/0x10 path_openat+0x143/0x11f0 ? __lock_acquire+0xa1a/0x3220 ? __pfx_path_openat+0x10/0x10 ? __pfx___lock_acquire+0x10/0x10 do_filp_open+0x166/0x290 ? __pfx_do_filp_open+0x10/0x10 ? lock_is_held_type+0xce/0x120 ? preempt_count_sub+0xb7/0x100 ? _raw_spin_unlock+0x29/0x50 ? alloc_fd+0x1a0/0x320 do_sys_openat2+0x126/0x160 ? rcu_is_watching+0x34/0x60 ? __pfx_do_sys_openat2+0x10/0x10 ? __might_resched+0x2cf/0x3b0 ? __fget_light+0xdf/0x100 __x64_sys_openat+0xcd/0x140 ? __pfx___x64_sys_openat+0x10/0x10 ? syscall_enter_from_user_mode+0x22/0x90 ? lockdep_hardirqs_on+0x7d/0x100 do_syscall_64+0x3b/0xc0 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 RIP: 0033:0x7f1dceef5e51 Code: 75 57 89 f0 25 00 00 41 00 3d 00 00 41 00 74 49 80 3d 9a 27 0e 00 00 74 6d 89 da 48 89 ee bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 0f 87 93 00 00 00 48 8b 54 24 28 64 48 2b 14 25 RSP: 002b:00007fff2cddf380 EFLAGS: 00000202 ORIG_RAX: 0000000000000101 RAX: ffffffffffffffda RBX: 0000000000000241 RCX: 00007f1dceef5e51 RDX: 0000000000000241 RSI: 000055d7520677d0 RDI: 00000000ffffff9c RBP: 000055d7520677d0 R08: 000000000000001e R09: 0000000000000001 R10: 00000000000001b6 R11: 0000000000000202 R12: 0000000000000000 R13: 0000000000000003 R14: 000055d752035678 R15: 000055d752067788 Allocated by task 1200: kasan_save_stack+0x2f/0x50 kasan_set_track+0x21/0x30 __kasan_kmalloc+0x8b/0x90 eventfs_create_events_dir+0x54/0x220 create_event_toplevel_files+0x42/0x130 event_trace_add_tracer+0x33/0x180 trace_array_create_dir+0x52/0xf0 trace_array_create+0x361/0x410 instance_mkdir+0x6b/0xb0 tracefs_syscall_mkdir+0x57/0x80 vfs_mkdir+0x275/0x380 do_mkdirat+0x1da/0x210 __x64_sys_mkdir+0x74/0xa0 do_syscall_64+0x3b/0xc0 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Freed by task 1251: kasan_save_stack+0x2f/0x50 kasan_set_track+0x21/0x30 kasan_save_free_info+0x27/0x40 __kasan_slab_free+0x106/0x180 __kmem_cache_free+0x149/0x2e0 event_trace_del_tracer+0xcb/0x120 __remove_instance+0x16a/0x340 instance_rmdir+0x77/0xa0 tracefs_syscall_rmdir+0x77/0xc0 vfs_rmdir+0xed/0x2d0 do_rmdir+0x235/0x280 __x64_sys_rmdir+0x5f/0x90 do_syscall_64+0x3b/0xc0 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 The buggy address belongs to the object at ffff888120130ca0 which belongs to the cache kmalloc-16 of size 16 The buggy address is located 0 bytes inside of freed 16-byte region [ffff888120130ca0, ffff888120130cb0) The buggy address belongs to the physical page: page:000000004dbddbb0 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x120130 flags: 0x17ffffc0000800(slab|node=0|zone=2|lastcpupid=0x1fffff) page_type: 0xffffffff() raw: 0017ffffc0000800 ffff8881000423c0 dead000000000122 0000000000000000 raw: 0000000000000000 0000000000800080 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888120130b80: 00 00 fc fc 00 05 fc fc 00 00 fc fc 00 02 fc fc ffff888120130c00: 00 07 fc fc 00 00 fc fc 00 00 fc fc fa fb fc fc >ffff888120130c80: 00 00 fc fc fa fb fc fc 00 00 fc fc 00 00 fc fc ^ ffff888120130d00: 00 00 fc fc 00 00 fc fc 00 00 fc fc fa fb fc fc ffff888120130d80: 00 00 fc fc 00 00 fc fc 00 00 fc fc 00 00 fc fc ================================================================== Link: https://lkml.kernel.org/r/20230907024803.250873643@goodmis.org Link: https://lore.kernel.org/all/1cb3aee2-19af-c472-e265-05176fe9bd84@huawei.com/ Cc: Ajay Kaher Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Fixes: 5bdcd5f5331a2 eventfs: ("Implement removal of meta data from eventfs") Tested-by: Linux Kernel Functional Testing Tested-by: Naresh Kamboju Reported-by: Zheng Yejian Signed-off-by: Steven Rostedt (Google) --- fs/tracefs/event_inode.c | 17 ++++++++++++----- fs/tracefs/inode.c | 2 +- fs/tracefs/internal.h | 5 +++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c index fa1a1679a886..609ccb5b7cfc 100644 --- a/fs/tracefs/event_inode.c +++ b/fs/tracefs/event_inode.c @@ -185,17 +185,27 @@ static struct dentry *create_dir(const char *name, struct dentry *parent, void * /** * eventfs_set_ef_status_free - set the ef->status to free + * @ti: the tracefs_inode of the dentry * @dentry: dentry who's status to be freed * * eventfs_set_ef_status_free will be called if no more * references remain */ -void eventfs_set_ef_status_free(struct dentry *dentry) +void eventfs_set_ef_status_free(struct tracefs_inode *ti, struct dentry *dentry) { struct tracefs_inode *ti_parent; + struct eventfs_inode *ei; struct eventfs_file *ef; mutex_lock(&eventfs_mutex); + + /* The top level events directory may be freed by this */ + if (unlikely(ti->flags & TRACEFS_EVENT_TOP_INODE)) { + ei = ti->private; + kfree(ei); + goto out; + } + ti_parent = get_tracefs(dentry->d_parent->d_inode); if (!ti_parent || !(ti_parent->flags & TRACEFS_EVENT_INODE)) goto out; @@ -510,7 +520,7 @@ struct dentry *eventfs_create_events_dir(const char *name, INIT_LIST_HEAD(&ei->e_top_files); ti = get_tracefs(inode); - ti->flags |= TRACEFS_EVENT_INODE; + ti->flags |= TRACEFS_EVENT_INODE | TRACEFS_EVENT_TOP_INODE; ti->private = ei; inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO; @@ -806,7 +816,6 @@ void eventfs_remove(struct eventfs_file *ef) void eventfs_remove_events_dir(struct dentry *dentry) { struct tracefs_inode *ti; - struct eventfs_inode *ei; if (!dentry || !dentry->d_inode) return; @@ -815,8 +824,6 @@ void eventfs_remove_events_dir(struct dentry *dentry) if (!ti || !(ti->flags & TRACEFS_EVENT_INODE)) return; - ei = ti->private; d_invalidate(dentry); dput(dentry); - kfree(ei); } diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index 3b8dd938b1c8..891653ba9cf3 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -385,7 +385,7 @@ static void tracefs_dentry_iput(struct dentry *dentry, struct inode *inode) ti = get_tracefs(inode); if (ti && ti->flags & TRACEFS_EVENT_INODE) - eventfs_set_ef_status_free(dentry); + eventfs_set_ef_status_free(ti, dentry); iput(inode); } diff --git a/fs/tracefs/internal.h b/fs/tracefs/internal.h index 69c2b1d87c46..4f2e49e2197b 100644 --- a/fs/tracefs/internal.h +++ b/fs/tracefs/internal.h @@ -3,7 +3,8 @@ #define _TRACEFS_INTERNAL_H enum { - TRACEFS_EVENT_INODE = BIT(1), + TRACEFS_EVENT_INODE = BIT(1), + TRACEFS_EVENT_TOP_INODE = BIT(2), }; struct tracefs_inode { @@ -24,6 +25,6 @@ struct inode *tracefs_get_inode(struct super_block *sb); struct dentry *eventfs_start_creating(const char *name, struct dentry *parent); struct dentry *eventfs_failed_creating(struct dentry *dentry); struct dentry *eventfs_end_creating(struct dentry *dentry); -void eventfs_set_ef_status_free(struct dentry *dentry); +void eventfs_set_ef_status_free(struct tracefs_inode *ti, struct dentry *dentry); #endif /* _TRACEFS_INTERNAL_H */ From patchwork Sat Sep 9 03:16:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137838 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1214791vqo; Sat, 9 Sep 2023 09:33:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFrhUAlrf3KsGzLwGIDKmeBNNTAPAShGO4GvRgOxlfWS1O5nmr74UZPbztnpXMwzAUUkVwg X-Received: by 2002:a05:6a20:12c9:b0:137:2f8c:fab0 with SMTP id v9-20020a056a2012c900b001372f8cfab0mr5938358pzg.49.1694277224340; Sat, 09 Sep 2023 09:33:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694277224; cv=none; d=google.com; s=arc-20160816; b=dhNs2avmM5RsoMB7CsrMTOZlV8eMjgv5boB8V4/h+kXDZVDc2LYttvmRizR9/mnG3h O1vJSw+w+pL8Ht4kHQWKyPdABGbOB9q4Vr424F5Sb7C6MunXZWgReQAyp6bI72sep3DG KRtGiiGPQnNgKsvO2dRWkfhvHh9hshIF91uo+Om/QYngafZa7Ox3lGK2z9GpGBDf1IdU 6P+19RKAC21DLMhS3DZbxm9pBXNd4VG0qdGYQT/FzHzC5Bf+f4Ox9iBRRggOAhVOicgj RFlceaWCxERD8RSWlvWxzvajCJLF05ULFR0xgJ31/YMkrsQ1hN3FsyzEHRiuIH1KOVya 411Q== 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=uqXOTcmAMYPRiUpMNqmJ/VGTLecgAtqFs94RxBm245A=; fh=o5w5+FYJGnTo/Taa7kMlb/6znx3C9/xVe55J7MHbTmE=; b=QikL8QpKAu8caq64UHUEkQjhGfHEmZatUmD5hud4X9v5cer/CJqmrDWLwD8hW9PSv6 nd3qXBmaj70LMpsJNzKyWyvfkqMDSsTfp/hgaWnGRHl7xnqBw+hM24DYxBF6+sQ3Fs9X xrTxKTfs7Iq7ey3VN6Ot64Fe3uWNwLJTEBH3lyKsuBhwr//O3gTLM47Jgp9polAUJh66 3X6iFANfM/vgwMuW65vhFr/XIA2z4USzikXlOGmvyAZUHO10HG7iZCl3zQbK5yOcMiQ6 Rv39PaNP7l0FLxEP9mVyRGk6SntRFgYifPvG7Lihlx1YhvsogPtmJJlvHkDf9XMtRXbg 7rwg== 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 ij7-20020a170902ab4700b001b8ae9058d3si3476007plb.516.2023.09.09.09.33.42; Sat, 09 Sep 2023 09:33:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236072AbjIIDXo (ORCPT + 11 others); Fri, 8 Sep 2023 23:23:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232609AbjIIDXg (ORCPT ); Fri, 8 Sep 2023 23:23:36 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB4B81FEB; Fri, 8 Sep 2023 20:23:30 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6FB39C433CC; Sat, 9 Sep 2023 03:23:30 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZZ-000Yev-00; Fri, 08 Sep 2023 23:23:49 -0400 Message-ID: <20230909032348.812623350@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:19 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Linux Kernel Functional Testing , Naresh Kamboju , Zheng Yejian Subject: [for-linus][PATCH 04/15] tracing: Increase trace array ref count on enable and filter files References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776578434528818895 X-GMAIL-MSGID: 1776578434528818895 From: "Steven Rostedt (Google)" When the trace event enable and filter files are opened, increment the trace array ref counter, otherwise they can be accessed when the trace array is being deleted. The ref counter keeps the trace array from being deleted while those files are opened. Link: https://lkml.kernel.org/r/20230907024803.456187066@goodmis.org Link: https://lore.kernel.org/all/1cb3aee2-19af-c472-e265-05176fe9bd84@huawei.com/ Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Fixes: 8530dec63e7b4 ("tracing: Add tracing_check_open_get_tr()") Tested-by: Linux Kernel Functional Testing Tested-by: Naresh Kamboju Reported-by: Zheng Yejian Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 27 +++++++++++++++++++++++++++ kernel/trace/trace.h | 2 ++ kernel/trace/trace_events.c | 6 ++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 35783a7baf15..0827037ee3b8 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -4973,6 +4973,33 @@ int tracing_open_generic_tr(struct inode *inode, struct file *filp) return 0; } +/* + * The private pointer of the inode is the trace_event_file. + * Update the tr ref count associated to it. + */ +int tracing_open_file_tr(struct inode *inode, struct file *filp) +{ + struct trace_event_file *file = inode->i_private; + int ret; + + ret = tracing_check_open_get_tr(file->tr); + if (ret) + return ret; + + filp->private_data = inode->i_private; + + return 0; +} + +int tracing_release_file_tr(struct inode *inode, struct file *filp) +{ + struct trace_event_file *file = inode->i_private; + + trace_array_put(file->tr); + + return 0; +} + static int tracing_mark_open(struct inode *inode, struct file *filp) { stream_open(inode, filp); diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 5669dd1f90d9..77debe53f07c 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -610,6 +610,8 @@ void tracing_reset_all_online_cpus(void); void tracing_reset_all_online_cpus_unlocked(void); int tracing_open_generic(struct inode *inode, struct file *filp); int tracing_open_generic_tr(struct inode *inode, struct file *filp); +int tracing_open_file_tr(struct inode *inode, struct file *filp); +int tracing_release_file_tr(struct inode *inode, struct file *filp); bool tracing_is_disabled(void); bool tracer_tracing_is_on(struct trace_array *tr); void tracer_tracing_on(struct trace_array *tr); diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index ed367d713be0..2af92177b765 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -2103,9 +2103,10 @@ static const struct file_operations ftrace_set_event_notrace_pid_fops = { }; static const struct file_operations ftrace_enable_fops = { - .open = tracing_open_generic, + .open = tracing_open_file_tr, .read = event_enable_read, .write = event_enable_write, + .release = tracing_release_file_tr, .llseek = default_llseek, }; @@ -2122,9 +2123,10 @@ static const struct file_operations ftrace_event_id_fops = { }; static const struct file_operations ftrace_event_filter_fops = { - .open = tracing_open_generic, + .open = tracing_open_file_tr, .read = event_filter_read, .write = event_filter_write, + .release = tracing_release_file_tr, .llseek = default_llseek, }; From patchwork Sat Sep 9 03:16:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137839 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1257838vqo; Sat, 9 Sep 2023 11:21:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFN3nbY2dTykE23J8xKS0TpPjD2mp13OHn+Qhp0eL/F8NHxQGnDHxw/jKNPUMgbrnk8ZyOf X-Received: by 2002:a05:6830:1607:b0:6bc:b8d9:476e with SMTP id g7-20020a056830160700b006bcb8d9476emr5748493otr.16.1694283675399; Sat, 09 Sep 2023 11:21:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694283675; cv=none; d=google.com; s=arc-20160816; b=aq6mcE5OnFMmm3E/VR7aV3W3yV3/iz0lpoA/TpVoqk0gX0mEzNw5izjxMbn6hdmQJ0 cQB5WGAjNxSbw/J5X8a7X4dQ3BYOa/gdym2LteQNHkXKqXGiPEeQjyt5JgDGDMDXAaoH BlLfA+37dFqFKgklO6d84TH9zCpUBgd8MWuYM8l0p1S5JUXelHr7THwUw7d1wRKZSGsO h9KkaQ9J4fpKh7QnXyprGrVkWkbtYzaKcDecnHmTcUxmr/oYEmZ6BgiBtKaDslIR969N kzAQl+6fUNbkgJtDttqw5nZd2YbPUWZZ4Qe3ZrCJTEDxQjcJtSdbyEDgQ7FQ62OFBc6b 9JBA== 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=HQdoEf3W4kIBuLnX97SQ2EKKzNgYYhCPUSykScAOZDE=; fh=Flox7kw3EEVQs2h84utvXZ0uTwTh44oufEJTr1Mxlxc=; b=xGDV3w6khx/VmJbkuU4JGwH6p5CK07KxmrNdYv2BUjxtNX+o07sDDprzMbA2++dGQy JdaA3m9k4IbwAnqhm6g5LgtfENhr2P6VnGpDaYK2BtokFYSMr2th49U3DbFTrxHcPVrn NpyDLIlHua/qCMcP5QlsB9YuUGtQ9BsvlJBCq3LlSmkuGEeDEEDLIX7KRFLmo4XcaTcg S3tonTGvB8Ie1LDv5/GP0/xPLuQfBd8VENbYLZahAoacZbO6kcsVx8GRioX8dB8YdmGN RPFy5fj/iRSi4Q3itxXY9Z8sB2BRk8IbPXwymZ78KiPbSPcmQZjEsQR1R0clHVHD12yb 0efQ== 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 u13-20020a62d44d000000b0068e42950c86si3411027pfl.44.2023.09.09.11.21.12; Sat, 09 Sep 2023 11:21:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238235AbjIIDXq (ORCPT + 11 others); Fri, 8 Sep 2023 23:23:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232883AbjIIDXg (ORCPT ); Fri, 8 Sep 2023 23:23:36 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B24AD1FEF; Fri, 8 Sep 2023 20:23:32 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95669C433C9; Sat, 9 Sep 2023 03:23:30 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZZ-000YfT-0f; Fri, 08 Sep 2023 23:23:49 -0400 Message-ID: <20230909032349.020450746@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:20 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Zheng Yejian , Linux Kernel Functional Testing , Naresh Kamboju Subject: [for-linus][PATCH 05/15] tracing: Have tracing_max_latency inc the trace array ref count References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776585199087099834 X-GMAIL-MSGID: 1776585199087099834 From: "Steven Rostedt (Google)" The tracing_max_latency file points to the trace_array max_latency field. For an instance, if the file is opened and the instance is deleted, reading or writing to the file will cause a use after free. Up the ref count of the trace_array when tracing_max_latency is opened. Link: https://lkml.kernel.org/r/20230907024803.666889383@goodmis.org Link: https://lore.kernel.org/all/1cb3aee2-19af-c472-e265-05176fe9bd84@huawei.com/ Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Zheng Yejian Fixes: 8530dec63e7b4 ("tracing: Add tracing_check_open_get_tr()") Tested-by: Linux Kernel Functional Testing Tested-by: Naresh Kamboju Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 0827037ee3b8..c8b8b4c6feaf 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1772,7 +1772,7 @@ static void trace_create_maxlat_file(struct trace_array *tr, init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq); tr->d_max_latency = trace_create_file("tracing_max_latency", TRACE_MODE_WRITE, - d_tracer, &tr->max_latency, + d_tracer, tr, &tracing_max_lat_fops); } @@ -1805,7 +1805,7 @@ void latency_fsnotify(struct trace_array *tr) #define trace_create_maxlat_file(tr, d_tracer) \ trace_create_file("tracing_max_latency", TRACE_MODE_WRITE, \ - d_tracer, &tr->max_latency, &tracing_max_lat_fops) + d_tracer, tr, &tracing_max_lat_fops) #endif @@ -6717,14 +6717,18 @@ static ssize_t tracing_max_lat_read(struct file *filp, char __user *ubuf, size_t cnt, loff_t *ppos) { - return tracing_nsecs_read(filp->private_data, ubuf, cnt, ppos); + struct trace_array *tr = filp->private_data; + + return tracing_nsecs_read(&tr->max_latency, ubuf, cnt, ppos); } static ssize_t tracing_max_lat_write(struct file *filp, const char __user *ubuf, size_t cnt, loff_t *ppos) { - return tracing_nsecs_write(filp->private_data, ubuf, cnt, ppos); + struct trace_array *tr = filp->private_data; + + return tracing_nsecs_write(&tr->max_latency, ubuf, cnt, ppos); } #endif @@ -7778,10 +7782,11 @@ static const struct file_operations tracing_thresh_fops = { #ifdef CONFIG_TRACER_MAX_TRACE static const struct file_operations tracing_max_lat_fops = { - .open = tracing_open_generic, + .open = tracing_open_generic_tr, .read = tracing_max_lat_read, .write = tracing_max_lat_write, .llseek = generic_file_llseek, + .release = tracing_release_generic_tr, }; #endif From patchwork Sat Sep 9 03:16:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137857 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1488268vqo; Sun, 10 Sep 2023 01:32:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF3PqPy+a98ZfFHVFvxMY1jmpF6XXkz84VXKClNuUrCjbNtEgm+osTUFcW8bBSvtSpUusxC X-Received: by 2002:a05:6512:3290:b0:4fb:8c52:611 with SMTP id p16-20020a056512329000b004fb8c520611mr5162356lfe.38.1694334764581; Sun, 10 Sep 2023 01:32:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694334764; cv=none; d=google.com; s=arc-20160816; b=DUEHtlYZbx01QbghNblAYgP5u0pCwwl5tIdTSDJmnk8u1wjcS72mVfOAkgZR7XpW0F zblm1IZw0lon3CtEzIMMARq3Z4iYhM+qmeOGIm7hgiNMvJ7zZ5vWCgnu3qmYI3f151v2 AbqLMYBUVfmaSXuP++Uatn8u5/GKEWmxnT5DojHefroVW7VMmd1OP2AY4barmuYux5oR W0tRpHTJPimRBa3rQsDMvaiEXkUjKFlekw7XFvCrKkk97zngg7djjP4eJTTND75oJE46 X/qIyag/YtBXMGSgKK5M13dw3C5aV+FLgACGoiILw5x0cofi+atqbDImDUxSAqRYbG+C ZQNg== 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=cYw8noLMnBC5vTojwxsT8ja+be3XAiAfSDfZTVDq4gY=; fh=Flox7kw3EEVQs2h84utvXZ0uTwTh44oufEJTr1Mxlxc=; b=QqjnrcnxBTUMQO3Ac1MJPinCd9lIzPDOq96d1irjvn56eFahWa1lokIOcsLMiGcmdj 89srSJaeLPROuNIWHUCu75xMMufU0yc4wThWAthET8xuqSGG55uRnt68/+OBkc5+tsoq JQXQU0mxVEVubqYWgOmRgYmOR1WWbKT9fNbKE0I4qwyDxFFmxPpu0OlG4k8j/eG2P1Ik YiQfLi5nkeMmraNHIjlRCaZT+9/a3oj0D5u2kFtSxBL3HzA7grLlXaO0J4mMYyBnmu8f 4n8m6y6mNxkDseNXWMN5XiZ6lK9VhcgJMQC/xb1aqatRsxM1WtCXtouq5KqnbRMeyss3 D/Ig== 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 pw3-20020a17090720a300b00992dc9d3b33si4435592ejb.863.2023.09.10.01.32.41; Sun, 10 Sep 2023 01:32:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239463AbjIIDXs (ORCPT + 11 others); Fri, 8 Sep 2023 23:23:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232844AbjIIDXg (ORCPT ); Fri, 8 Sep 2023 23:23:36 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B13091FDB; Fri, 8 Sep 2023 20:23:32 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C1D78C433A9; Sat, 9 Sep 2023 03:23:30 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZZ-000Yg1-1L; Fri, 08 Sep 2023 23:23:49 -0400 Message-ID: <20230909032349.228464292@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:21 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Zheng Yejian , Linux Kernel Functional Testing , Naresh Kamboju Subject: [for-linus][PATCH 06/15] tracing: Have current_trace inc the trace array ref count References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776638770130654161 X-GMAIL-MSGID: 1776638770130654161 From: "Steven Rostedt (Google)" The current_trace updates the trace array tracer. For an instance, if the file is opened and the instance is deleted, reading or writing to the file will cause a use after free. Up the ref count of the trace array when current_trace is opened. Link: https://lkml.kernel.org/r/20230907024803.877687227@goodmis.org Link: https://lore.kernel.org/all/1cb3aee2-19af-c472-e265-05176fe9bd84@huawei.com/ Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Zheng Yejian Fixes: 8530dec63e7b4 ("tracing: Add tracing_check_open_get_tr()") Tested-by: Linux Kernel Functional Testing Tested-by: Naresh Kamboju Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index c8b8b4c6feaf..b82df33d20ff 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7791,10 +7791,11 @@ static const struct file_operations tracing_max_lat_fops = { #endif static const struct file_operations set_tracer_fops = { - .open = tracing_open_generic, + .open = tracing_open_generic_tr, .read = tracing_set_trace_read, .write = tracing_set_trace_write, .llseek = generic_file_llseek, + .release = tracing_release_generic_tr, }; static const struct file_operations tracing_pipe_fops = { From patchwork Sat Sep 9 03:16:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137828 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1029313vqo; Sat, 9 Sep 2023 02:05:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFe4/D7jT5U2A50qz4KCh0bNMou5vRHoXiBdoROwK1z+4xySlYLjY47/EURqNuBEfrvUGjJ X-Received: by 2002:a05:651c:235:b0:2bc:bc70:263f with SMTP id z21-20020a05651c023500b002bcbc70263fmr3495598ljn.0.1694250336704; Sat, 09 Sep 2023 02:05:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694250336; cv=none; d=google.com; s=arc-20160816; b=L51zBGsjrYdiNx6NAqpaP1ogxl81TK+N4TcBNsE6c7rnJ1gNa1sXWKBJLthyC3bT5e 8bKVPshs9kfpY087cFAMfjs5Kl/PPEDt7VIbiFHWn7uFD6P/oH4w1zK8rPsbAsqLlVRP nMBHtRN1O4grhQQJaTEGAg7wofGIxjeUNZsgQNdOXUV8UUtPYLRCihCfYuX9zAiU4Dhi j6PzOjK5FNzar/WSRK/b2EI3Uhvkb4cT4Z/+1mvkiTzFFizelddv2dJ3fSDBp57IbKRV Ds5bFoZh2nvglOew454pWAO4qAljuXM4kErIYjqb19tjUQvaAnCM/YELihrWrLwN509N Lykw== 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=KOsTckPFPWm9oP6rzRba2uPGNgwLSu5G+Jptxd16U5I=; fh=Flox7kw3EEVQs2h84utvXZ0uTwTh44oufEJTr1Mxlxc=; b=r7+mHXEnOSsGDkpxAJ5JCGrGvU9FUVLKiTFUdttEHqFWEmWcv5lh9Rg7Q2xLOF2gl2 XBRdRe4lnOLFuAKysxLDWmgx2F+bul4UQPI8bk1FqH3FV4NBmLqTFANZzAjs7Juky9qd P9gnzS9USY5f/IjRZD3oBMoaFLcyTQPtNvvWJepsF3Ds8f/XfDhbgzel7Pq9Alzy8mf6 KTyaGYqITU1BcGLL7QXCaNVrctBWHbZZLailucdrmCOnElHRbVzmeCeoSEOrKpuY4Tiv KJyFI1z1JBzqETxjPMv3H6+GVpR8r4uMOGF7Sa0JEpnq5dW/PKDORs12dAqVvNc0bnIw TS+A== 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 b9-20020a1709062b4900b0099bd046b94bsi2773494ejg.1050.2023.09.09.02.05.32; Sat, 09 Sep 2023 02:05:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237587AbjIIDX5 (ORCPT + 15 others); Fri, 8 Sep 2023 23:23:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232915AbjIIDXg (ORCPT ); Fri, 8 Sep 2023 23:23:36 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9D211FE5; Fri, 8 Sep 2023 20:23:32 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7BA6C43397; Sat, 9 Sep 2023 03:23:30 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZZ-000Ygb-20; Fri, 08 Sep 2023 23:23:49 -0400 Message-ID: <20230909032349.439567528@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:22 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Zheng Yejian , Linux Kernel Functional Testing , Naresh Kamboju Subject: [for-linus][PATCH 07/15] tracing: Have option files inc the trace array ref count References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776550240603940545 X-GMAIL-MSGID: 1776550240603940545 From: "Steven Rostedt (Google)" The option files update the options for a given trace array. For an instance, if the file is opened and the instance is deleted, reading or writing to the file will cause a use after free. Up the ref count of the trace_array when an option file is opened. Link: https://lkml.kernel.org/r/20230907024804.086679464@goodmis.org Link: https://lore.kernel.org/all/1cb3aee2-19af-c472-e265-05176fe9bd84@huawei.com/ Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Zheng Yejian Fixes: 8530dec63e7b4 ("tracing: Add tracing_check_open_get_tr()") Tested-by: Linux Kernel Functional Testing Tested-by: Naresh Kamboju Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index b82df33d20ff..0608ad20cf30 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -8988,12 +8988,33 @@ trace_options_write(struct file *filp, const char __user *ubuf, size_t cnt, return cnt; } +static int tracing_open_options(struct inode *inode, struct file *filp) +{ + struct trace_option_dentry *topt = inode->i_private; + int ret; + + ret = tracing_check_open_get_tr(topt->tr); + if (ret) + return ret; + + filp->private_data = inode->i_private; + return 0; +} + +static int tracing_release_options(struct inode *inode, struct file *file) +{ + struct trace_option_dentry *topt = file->private_data; + + trace_array_put(topt->tr); + return 0; +} static const struct file_operations trace_options_fops = { - .open = tracing_open_generic, + .open = tracing_open_options, .read = trace_options_read, .write = trace_options_write, .llseek = generic_file_llseek, + .release = tracing_release_options, }; /* From patchwork Sat Sep 9 03:16:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137840 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1303539vqo; Sat, 9 Sep 2023 13:47:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEX1iJI7iYoY7sKu6N6NVyQG3U2lbNYHhYjW6DfS8uClJXWQqWI+bqPyWGFFDNHoJ1nWQV0 X-Received: by 2002:a05:6a21:7906:b0:14c:c393:402d with SMTP id bg6-20020a056a21790600b0014cc393402dmr5268583pzc.34.1694292445241; Sat, 09 Sep 2023 13:47:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694292445; cv=none; d=google.com; s=arc-20160816; b=fEwi+Rcl4dXmq4n6kT209rRBOHKhpQfC9RlE17+Xh3qJ9wYipxna+YD3kIONoyUMDo F4zG7p2KYA33TaKIFMJw4NCDg94L31coI9U/7ksk57hA+hbs7tvmWNmbvfcpSmkEEdlD os6J1eUwUO/8Z559DKmLpE9+vw6qSR/AsQhps1Engr+tzYJ9+DY9eI0A8wvbDPoo+9Sr kDkkSUWA4hMSYZ7ymLSg/9+1T2kXz3Go8SqJVJfCEhYAswMfZtx23RYLzCj0zvjYLWjy 9+iZ8iPJ/Ogf3SQ9i2amHXjwHrx9dUsJDxoQMGgQKicLUpleFTUeeARJnwBKWtjZXKKp yOdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=+tzYQ+oOnHGSuKn+93JzDz7DvRpW7a3BV3tcA//o5zQ=; fh=uOWSESrr/TpYg9MIsCkHZiwaLU3ij606a2I01jXtua0=; b=nTzl5Vyz4HOM7mG7cu+4zThJbvT7KjFxbCJlNaHcZ4z9O1FE/VevPTqfmG5fc3FEQd qalznyx7fH3n6BAKAhc1hmzWyfXW6gswWwVFkgZwGTWxm1Jt+hI7P3slSNGq2Zmy2VPA 1PEebcJc2RWMM/RBS8Cxg68WQ+905ycIBe2NORrLdtxOxVIF3+Br/l6WsjqAbUGUaAUG s0P04mr4LRdKw4QkimkA3rv/DAxQeCcbMeZ9xCC/5oBFC7niQdSTWww0u4B1/rALUdS+ I7YbBDw6GmAHhdIwi38Eb6DcPnnITY9e4ZyKao03dE5NXdAJ/tg63cxh8KIU/+6a1i55 SUqw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ky3-20020a170902f98300b001b9d5d4d75dsi3588535plb.112.2023.09.09.13.47.22; Sat, 09 Sep 2023 13:47:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239872AbjIIDYF (ORCPT + 11 others); Fri, 8 Sep 2023 23:24:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233986AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 466251FE0 for ; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 808A7C433B8; Sat, 9 Sep 2023 03:23:31 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZa-000Yhj-08; Fri, 08 Sep 2023 23:23:50 -0400 Message-ID: <20230909032349.854283780@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:24 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Zheng Yejian Subject: [for-linus][PATCH 09/15] ring-buffer: Avoid softlockup in ring_buffer_resize() References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776594395284696577 X-GMAIL-MSGID: 1776594395284696577 From: Zheng Yejian When user resize all trace ring buffer through file 'buffer_size_kb', then in ring_buffer_resize(), kernel allocates buffer pages for each cpu in a loop. If the kernel preemption model is PREEMPT_NONE and there are many cpus and there are many buffer pages to be allocated, it may not give up cpu for a long time and finally cause a softlockup. To avoid it, call cond_resched() after each cpu buffer allocation. Link: https://lore.kernel.org/linux-trace-kernel/20230906081930.3939106-1-zhengyejian1@huawei.com Cc: Signed-off-by: Zheng Yejian Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ring_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 78502d4c7214..72ccf75defd0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2198,6 +2198,8 @@ int ring_buffer_resize(struct trace_buffer *buffer, unsigned long size, err = -ENOMEM; goto out_err; } + + cond_resched(); } cpus_read_lock(); From patchwork Sat Sep 9 03:16:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137844 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1317781vqo; Sat, 9 Sep 2023 14:37:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHYTYC+/1mGSmQ7ma9XjjOs4hnZch4D3FxR9FBikKwCDn/jRS4ylmnWvhJspcWxHfc2i+TE X-Received: by 2002:a05:6a21:3984:b0:154:e887:f581 with SMTP id ad4-20020a056a21398400b00154e887f581mr2345774pzc.58.1694295432681; Sat, 09 Sep 2023 14:37:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694295432; cv=none; d=google.com; s=arc-20160816; b=sr4riUod9G7gUN/F0YEmDSqlttjBpC/6u4lO+o+g5rFvnzqKR+x+9GJvOgQi6QH5LN eKW0s3IEAHXjIcl8yVlBW5uMq/PeLi6QGfCpwtYwIDACOo5TCacjZ0+ra+RLD9znQi+O bI3CTVYY5Md5GxGJ4DE7b2pybSFdOpr0ZDTp65wWXQs9zvO3R2aUezzLiEHBenBSA+gO MCB7+6WdDoxMTH6uS7BkRLP1xvHSWpppDrasGmAoNfFBMpyRFlDZsY+Ao0fdQZhaT7uz u4AMVGa58Hkw9UKv5+34DNU8w/cx1Voc07k/nlSGzfeW00Dwr+p9s7AvnuTme2cRPXjX 28/g== 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=rK8i0IJ5DxGv0BIYdCNKa/sDJcLI++U8LHnagjde580=; fh=lmrH7LKLKKaH7JPIit1gZ+vhq9VnJTQpH4pNBjENX74=; b=OpBq9iYMqlIGdPMmY4LYbYPkVxRsifXQ4ukh+T/QHDC43S4vMNw03we7LhBISGq6ax hmfDfFa4Dx3Qe5orjkTkSyOf3M+loa9UTKLOWT8GWnuu75e/eEB1wYfj/n4C3ODp/O5o k/7gNOOKi5KFbN5Y6f5qPlZsXveAGy132MHf8uXblwtKytkIhL9qh8/Ev05msnzVqEfS WqxAozbarpyfg8ZUBA2Z1+EjCSob4uiyffIApSoEk3MCh5caoXoXbOkPQhCIgALx8YSn +mLWwKsmiwww4DHFNpvuT+jotULp1JjWhhqFK7NHsjdLx31rp28Prfg2QDayQxW/0emo qthg== 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 p9-20020a056a0026c900b006873b49ae06si3621453pfw.287.2023.09.09.14.37.10; Sat, 09 Sep 2023 14:37:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244032AbjIIDYM (ORCPT + 11 others); Fri, 8 Sep 2023 23:24:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233956AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F1CF1FE7 for ; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83D37C433CB; Sat, 9 Sep 2023 03:23:31 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZa-000YiI-0m; Fri, 08 Sep 2023 23:23:50 -0400 Message-ID: <20230909032350.061257707@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:25 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ajay Kaher , Zheng Yejian , Naresh Kamboju Subject: [for-linus][PATCH 10/15] tracefs/eventfs: Free top level files on removal References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776597527449383540 X-GMAIL-MSGID: 1776597527449383540 From: "Steven Rostedt (Google)" When an instance is removed, the top level files of the eventfs directory are not cleaned up. Call the eventfs_remove() on each of the entries to free them. This was found via kmemleak: unreferenced object 0xffff8881047c1280 (size 96): comm "mkdir", pid 924, jiffies 4294906489 (age 2013.077s) hex dump (first 32 bytes): 18 31 ed 03 81 88 ff ff 00 31 09 24 81 88 ff ff .1.......1.$.... 00 00 00 00 00 00 00 00 98 19 7c 04 81 88 ff ff ..........|..... backtrace: [<000000000fa46b4d>] kmalloc_trace+0x2a/0xa0 [<00000000e729cd0c>] eventfs_prepare_ef.constprop.0+0x3a/0x160 [<000000009032e6a8>] eventfs_add_events_file+0xa0/0x160 [<00000000fe968442>] create_event_toplevel_files+0x6f/0x130 [<00000000e364d173>] event_trace_add_tracer+0x14/0x140 [<00000000411840fa>] trace_array_create_dir+0x52/0xf0 [<00000000967804fa>] trace_array_create+0x208/0x370 [<00000000da505565>] instance_mkdir+0x6b/0xb0 [<00000000dc1215af>] tracefs_syscall_mkdir+0x5b/0x90 [<00000000a8aca289>] vfs_mkdir+0x272/0x380 [<000000007709b242>] do_mkdirat+0xfc/0x1d0 [<00000000c0b6d219>] __x64_sys_mkdir+0x78/0xa0 [<0000000097b5dd4b>] do_syscall_64+0x3f/0x90 [<00000000a3f00cfa>] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 unreferenced object 0xffff888103ed3118 (size 8): comm "mkdir", pid 924, jiffies 4294906489 (age 2013.077s) hex dump (first 8 bytes): 65 6e 61 62 6c 65 00 00 enable.. backtrace: [<0000000010f75127>] __kmalloc_node_track_caller+0x51/0x160 [<000000004b3eca91>] kstrdup+0x34/0x60 [<0000000050074d7a>] eventfs_prepare_ef.constprop.0+0x53/0x160 [<000000009032e6a8>] eventfs_add_events_file+0xa0/0x160 [<00000000fe968442>] create_event_toplevel_files+0x6f/0x130 [<00000000e364d173>] event_trace_add_tracer+0x14/0x140 [<00000000411840fa>] trace_array_create_dir+0x52/0xf0 [<00000000967804fa>] trace_array_create+0x208/0x370 [<00000000da505565>] instance_mkdir+0x6b/0xb0 [<00000000dc1215af>] tracefs_syscall_mkdir+0x5b/0x90 [<00000000a8aca289>] vfs_mkdir+0x272/0x380 [<000000007709b242>] do_mkdirat+0xfc/0x1d0 [<00000000c0b6d219>] __x64_sys_mkdir+0x78/0xa0 [<0000000097b5dd4b>] do_syscall_64+0x3f/0x90 [<00000000a3f00cfa>] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Link: https://lore.kernel.org/linux-trace-kernel/20230907175859.6fedbaa2@gandalf.local.home Cc: Mark Rutland Cc: Ajay Kaher Cc: Zheng Yejian Cc: Naresh Kamboju Reviewed-by: Masami Hiramatsu (Google) Fixes: 5bdcd5f5331a2 eventfs: ("Implement removal of meta data from eventfs") Signed-off-by: Steven Rostedt (Google) --- fs/tracefs/event_inode.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c index 609ccb5b7cfc..f168aca45458 100644 --- a/fs/tracefs/event_inode.c +++ b/fs/tracefs/event_inode.c @@ -195,17 +195,39 @@ void eventfs_set_ef_status_free(struct tracefs_inode *ti, struct dentry *dentry) { struct tracefs_inode *ti_parent; struct eventfs_inode *ei; - struct eventfs_file *ef; - - mutex_lock(&eventfs_mutex); + struct eventfs_file *ef, *tmp; /* The top level events directory may be freed by this */ if (unlikely(ti->flags & TRACEFS_EVENT_TOP_INODE)) { + LIST_HEAD(ef_del_list); + + mutex_lock(&eventfs_mutex); + ei = ti->private; + + /* Record all the top level files */ + list_for_each_entry_srcu(ef, &ei->e_top_files, list, + lockdep_is_held(&eventfs_mutex)) { + list_add_tail(&ef->del_list, &ef_del_list); + } + + /* Nothing should access this, but just in case! */ + ti->private = NULL; + + mutex_unlock(&eventfs_mutex); + + /* Now safely free the top level files and their children */ + list_for_each_entry_safe(ef, tmp, &ef_del_list, del_list) { + list_del(&ef->del_list); + eventfs_remove(ef); + } + kfree(ei); - goto out; + return; } + mutex_lock(&eventfs_mutex); + ti_parent = get_tracefs(dentry->d_parent->d_inode); if (!ti_parent || !(ti_parent->flags & TRACEFS_EVENT_INODE)) goto out; From patchwork Sat Sep 9 03:16:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137842 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1315641vqo; Sat, 9 Sep 2023 14:28:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH1yv6GEXHYrO3hlJIYjGeCzcDFUgoKRYU9RwZQ9SCAtf3VcaQnByHaooopzL5Xav6Yq0Ma X-Received: by 2002:a17:90b:1d03:b0:273:e142:f71f with SMTP id on3-20020a17090b1d0300b00273e142f71fmr4243517pjb.41.1694294938936; Sat, 09 Sep 2023 14:28:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694294938; cv=none; d=google.com; s=arc-20160816; b=gDuvjS/HtD9lHDvsCyIFaklrcj/DjwywUlPYVoXksRIGHApnasb2qFBkkakJ51Z6DX U07qlpOJ/7oa8u3CN0m202tbclB/1EzUaOa2+p3+uDC92jM3l1hhGT94vWPNASHn7dUY xFRzsU5bd71/1cK4iqt9XmUQJLSXXLvxCn07noOZSINtu9kx/qZfjQLzNIEf9xRLCPRW nxBb/cbh81LQHpChraALFsOEs1H99oZ5XTPE15wp+coZBfpq3wN6f7CwyAzzPt6W0dQP LYAYzotOKFp2G7PDe5Nz4lsGLih28n4MAy9Gzx3DmMAs1T1z5xlcwQN2mCLFoz2/0bBL EPTA== 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=mnaxNETOBRiS4BQ1wKVtOUj2L7jY767tkpDgQjPcIqU=; fh=YD2plINFzzQkeIFsZ95VaD7apA4QxoMdT5d/25lsi30=; b=hD4W5+qX4SCSq16OtRf3NjSVrKwI1feBEjUily9+v+IuwuMSGCqHk4Yn+NpIvaNZI9 PnzvrIj9tJh+XJklWk3tx/Rbu0x++uX6jwMAWfOCb5CAW6hcunHUik/oXKbHR0XFwA6j Y7QFAoJ59wjoodOl6yX18VXcj9LauVV2TGU2z+EPng5niv9/CJnjCoXiNemqPrracScW Yo9bfF3lQ/YqueS/fjtr2j1b1sh6UzGfftKdFV4jfEC/39S4/RBMlvayH0pJWo2A5oYJ sDV8pLq7NYK3uQneLh/2XREBHFqPN/MQZaoIYjT6tdLTI7NSytJQV9v/+pBtiDNEloz0 gxEw== 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 e1-20020a17090a728100b002691e035572si5567746pjg.17.2023.09.09.14.28.57; Sat, 09 Sep 2023 14:28:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239308AbjIIDYK (ORCPT + 11 others); Fri, 8 Sep 2023 23:24:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229448AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 941BB1FF2 for ; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F17A5C433BB; Sat, 9 Sep 2023 03:23:31 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZa-000YjQ-28; Fri, 08 Sep 2023 23:23:50 -0400 Message-ID: <20230909032350.474029750@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:27 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ajay Kaher Subject: [for-linus][PATCH 12/15] tracing: Use the new eventfs descriptor for print trigger References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776597010098251931 X-GMAIL-MSGID: 1776597010098251931 From: "Steven Rostedt (Google)" The check to create the print event "trigger" was using the obsolete "dir" value of the trace_event_file to determine if it should create the trigger or not. But that value will now be NULL because it uses the event file descriptor. Change it to test the "ef" field of the trace_event_file structure so that the trace_marker "trigger" file appears again. Link: https://lkml.kernel.org/r/20230908022001.371815239@goodmis.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Ajay Kaher Fixes: 27152bceea1df ("eventfs: Move tracing/events to eventfs") Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 0608ad20cf30..122c23c9eb28 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -9792,8 +9792,8 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer) tr, &tracing_mark_fops); file = __find_event_file(tr, "ftrace", "print"); - if (file && file->dir) - trace_create_file("trigger", TRACE_MODE_WRITE, file->dir, + if (file && file->ef) + eventfs_add_file("trigger", TRACE_MODE_WRITE, file->ef, file, &event_trigger_fops); tr->trace_marker_file = file; From patchwork Sat Sep 9 03:16:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137823 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp964078vqo; Fri, 8 Sep 2023 22:35:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IELPMDb/BQ//nqeTzUyLlrZmlnDaUSZWn/MWRWwyc0ggidYBICCRs/Uc3NFqVyx4Zjfvk/r X-Received: by 2002:aca:1212:0:b0:3a3:ed41:5ab with SMTP id 18-20020aca1212000000b003a3ed4105abmr4994679ois.9.1694237757121; Fri, 08 Sep 2023 22:35:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694237757; cv=none; d=google.com; s=arc-20160816; b=fr3H4Sj5rGxBg1DlvFEfp0YVKYP767mElBRy6HNARjpi3oy38c7KlC5g39T1F9irFO EF2A8uggJQ+XbxiV7oHhaWC6uJcezfoV3ga2N3MTBUN4+V6skT/42QlctVzIXxJyksGR QPvtJINwJ3YAIcGv8+fL4FNaAYrNb+KRWoaxVt07UmOczSOK8QeHEYryHXOhMKyuzhJa DoRAN5AFO+yAsUzpoyHOLx6qNJTn81A/NYYrhwxMoDZBn0GSCoK9wOwcH6mDwWNkXW6/ +UUpOXUxr8H2rYkpCpLvdW14Xcl1Ke7j9JGhdJA3bjV+D1NGZd/xmK3VtnG1S4+lkHhA V/aA== 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=NVUpJrIE/J3cvrwQXRlgE2Ke4O4I2EQehIxnnYwIfPg=; fh=YD2plINFzzQkeIFsZ95VaD7apA4QxoMdT5d/25lsi30=; b=j9n1svdQvYHVuteGk4qxcBHRZNSGiRJ415Zsn7vTM+q5c3rn/ipwRYesXuoZmDW7w3 kKL58qtH/zwwvSGD8d/f/ukpbgBIvedme7ED6e6DPqMpYO1ndWneTBsXw52Aa/avl5Ii kSQLLQkUacjIvTspSh4WF19diU2+lgM4F01HGOMYQHUpDxJubzmaeP6ZztiQVKMy47fg afNhG6sdQvEJ3ovECfK/J8w8/zCtgaV2sTRoVCvrAkwAHAxWOvbNV0z1+y9w4pgcVeE2 +EgdBqLvOifpsRdYNzZHrTEyaI3blEYhvpX06Fx8s8/gifVmIBqpCH9RFsrpM6fySO9s w7GA== 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 by42-20020a056a0205aa00b005694ceaf704si2763413pgb.522.2023.09.08.22.35.48; Fri, 08 Sep 2023 22:35:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239972AbjIIDYb (ORCPT + 38 others); Fri, 8 Sep 2023 23:24:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234652AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC25E1FE9 for ; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EB84C433AB; Sat, 9 Sep 2023 03:23:32 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZa-000Yjz-2n; Fri, 08 Sep 2023 23:23:50 -0400 Message-ID: <20230909032350.681044501@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:28 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Ajay Kaher Subject: [for-linus][PATCH 13/15] tracing: Remove unused trace_event_file dir field References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776537050613669137 X-GMAIL-MSGID: 1776537050613669137 From: "Steven Rostedt (Google)" Now that eventfs structure is used to create the events directory via the eventfs dynamically allocate code, the "dir" field of the trace_event_file structure is no longer used. Remove it. Link: https://lkml.kernel.org/r/20230908022001.580400115@goodmis.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Andrew Morton Cc: Ajay Kaher Signed-off-by: Steven Rostedt (Google) --- include/linux/trace_events.h | 1 - kernel/trace/trace_events.c | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index eb5c3add939b..12f875e9e69a 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -650,7 +650,6 @@ struct trace_event_file { struct trace_event_call *event_call; struct event_filter __rcu *filter; struct eventfs_file *ef; - struct dentry *dir; struct trace_array *tr; struct trace_subsystem_dir *system; struct list_head triggers; diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 2af92177b765..065c63991858 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -992,19 +992,6 @@ static void remove_subsystem(struct trace_subsystem_dir *dir) static void remove_event_file_dir(struct trace_event_file *file) { - struct dentry *dir = file->dir; - struct dentry *child; - - if (dir) { - spin_lock(&dir->d_lock); /* probably unneeded */ - list_for_each_entry(child, &dir->d_subdirs, d_child) { - if (d_really_is_positive(child)) /* probably unneeded */ - d_inode(child)->i_private = NULL; - } - spin_unlock(&dir->d_lock); - - tracefs_remove(dir); - } eventfs_remove(file->ef); list_del(&file->list); remove_subsystem(file->system); From patchwork Sat Sep 9 03:16:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137858 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1502660vqo; Sun, 10 Sep 2023 02:25:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFM1aWsECzOJjX5jnrkvZndH9rOmllKtr0ElSBubKqG/cvd7T0fLj7zydV9elYTv+szagyY X-Received: by 2002:a05:6358:4320:b0:139:be3d:d047 with SMTP id r32-20020a056358432000b00139be3dd047mr7434824rwc.17.1694337928574; Sun, 10 Sep 2023 02:25:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694337928; cv=none; d=google.com; s=arc-20160816; b=rYOGU9x9ACsAHEuElEYCITrPe+v86x8gMEY13NhEwEmhXutn35QHpz47f411FCOWGo WOKFCNkUi4LYbpzwnEqsZqvM4RZFz6u2P+g3uhq3C2E+Wn1UaeXYB6UDi5lAoIBoAtCx EU5sxRD3YgL+968DNUGHgNclIQ84CO3ZeHfGDScb8qNcLIqY5W5iYUykdoFCXQItb4xV jKlLrZzvDtt2XEmY7UZIf9m6EYAF+kdIS1R7X0i/qRN0zvC9neH3KxICJrN9OeG+2AL6 1/LuzxBvjG1cme+3ucTdPDuYa/3Yh4PSmgJj18Yu5dNDvnf+2olSkovVEtKGR0Yf7B4x l0Ng== 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=u99/hgqxpKdzCD15l4YeNqBiui80L1j6u5zlzrvzFUo=; fh=XQnX/HXuQFr2jOP4K3MJlHD3mu7omgZCDXZUReVQ5ug=; b=JZKHSvwevaQJ1tdUmSuvxv9Cy/rTQYG1LTSdKCF7ad9BrMRRQEWcmuev1RkWLZOxDw imlzf2dppEQECe6xmAue76jaaS6aP2P5YNxsP9WgG4KeFILSqpbUJOMPxIcRlA1kSdVv 2+8aAvMEAQsbVEsJpPr6Nsp3WiRuX6p9yULjC2zMe7Io/+GECJzVIztn6RCURSC+1owc 00Xq27QY92QYHLWAgewylvD9ofGZX4Ai4zwYyOFZvh6BuCU10FHmaxGAa1E187xKSO3v qo2DEsB2CRTnb5VXD7z4kYMfh5sjBx+lqUjhvFh6T39H/byiK/zl54W/DKJphpZVJHH2 iRfQ== 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 n6-20020a170903110600b001b878f9e11csi4728288plh.54.2023.09.10.02.25.24; Sun, 10 Sep 2023 02:25:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241966AbjIIDYU (ORCPT + 11 others); Fri, 8 Sep 2023 23:24:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234556AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9ED51FF5; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5ABC5C433CD; Sat, 9 Sep 2023 03:23:32 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZb-000YkY-0G; Fri, 08 Sep 2023 23:23:51 -0400 Message-ID: <20230909032350.900547495@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:29 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , , Shuah Khan , Naveen N Rao Subject: [for-linus][PATCH 14/15] selftests/ftrace: Fix dependencies for some of the synthetic event tests References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776642087417700874 X-GMAIL-MSGID: 1776642087417700874 From: Naveen N Rao Commit b81a3a100cca1b ("tracing/histogram: Add simple tests for stacktrace usage of synthetic events") changed the output text in tracefs README, but missed updating some of the dependencies specified in selftests. This causes some of the tests to exit as unsupported. Fix this by changing the grep pattern. Since we want these tests to work on older kernels, match only against the common last part of the pattern. Link: https://lore.kernel.org/linux-trace-kernel/20230614091046.2178539-1-naveen@kernel.org Cc: Cc: Masami Hiramatsu Cc: Shuah Khan Fixes: b81a3a100cca ("tracing/histogram: Add simple tests for stacktrace usage of synthetic events") Signed-off-by: Naveen N Rao Signed-off-by: Steven Rostedt (Google) --- .../trigger/inter-event/trigger-synthetic-event-dynstring.tc | 2 +- .../inter-event/trigger-synthetic_event_syntax_errors.tc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-dynstring.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-dynstring.tc index 213d890ed188..174376ddbc6c 100644 --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-dynstring.tc +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-dynstring.tc @@ -1,7 +1,7 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: event trigger - test inter-event histogram trigger trace action with dynamic string param -# requires: set_event synthetic_events events/sched/sched_process_exec/hist "char name[]' >> synthetic_events":README ping:program +# requires: set_event synthetic_events events/sched/sched_process_exec/hist "' >> synthetic_events":README ping:program fail() { #msg echo $1 diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc index 955e3ceea44b..b927ee54c02d 100644 --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc @@ -1,7 +1,7 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: event trigger - test synthetic_events syntax parser errors -# requires: synthetic_events error_log "char name[]' >> synthetic_events":README +# requires: synthetic_events error_log "' >> synthetic_events":README check_error() { # command-with-error-pos-by-^ ftrace_errlog_check 'synthetic_events' "$1" 'synthetic_events' From patchwork Sat Sep 9 03:16:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 137830 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1109714vqo; Sat, 9 Sep 2023 05:47:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG2SjO8U4SI0PBmuLzgchl71/m4PCWskUhgne+bY1naz/yGamF4lm4eyvJDiqtf2srmzV5q X-Received: by 2002:a17:906:cc56:b0:9a1:688f:cf2d with SMTP id mm22-20020a170906cc5600b009a1688fcf2dmr3716164ejb.39.1694263632386; Sat, 09 Sep 2023 05:47:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694263632; cv=none; d=google.com; s=arc-20160816; b=D6a5aXwc62pvoItVNX/70bL8QfgJVvmDi/JnokWVoDxoqENu1lEiXgE3yQqVLON3mG JTv2WYb4/Dnes7HO+MS+xpcVlFxfFYFw1Mb+Ed/cmO1TgbiW63P3ZmlzWNODNrT1KR+V +Gn+PG1MQOYa9uQHzsf9mfGYk5rNb0XYlo3NrVC+Tk2bX9Q00cnr1lTdIqbsC45nvkAw LUk2D2AsnrHQ/Q4g0sHzgBfzC1AgLaUh54SSLKagQmcmtcgJtugcRTdt3RXOU4A51UTl e4gvQ0e3wZdcHB9DEVcHQtTm6wus5UlxpRpKTaaw436hgwlyHvye37OKk/l37UM39ouH +txA== 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=WyE4YGknLvQ2Hq2jIpbaa6jR6HeuqoBIBi2s5vVyIfw=; fh=ynyeVK+tXUghpfDXPiU/9O7GHCMFQEEMQPlauI265Qo=; b=A9sbp04EVrrhd0WU/4fjD5kuBQnurUd7qtFjhqvvHOJSMTyZmR4nw46htCTyPouyTp 7d6awKU4k/GCaF8eAcjolTLvRDrFpDC7qM1uMLO2FbLqnvVa5uV5wnjqe6pdMKjsgEQb eL8+Rnfan9Yd4wfPPN8hb6qEu8hcgYyNYCXwaI0yBV/tEIvnZNd1TfPF+QhHxy1d3G6+ VedvQXG9i+t4Y5HtnuPCifJ4yEBpj/zHUBITV+ZVQPXOy+xqjj7aRrRtiZ8OTyj3whS+ /MUb4CP6h8FEhN6oouzth7dYnmgXYzRgX288bBkgqcealMcxUT7jZp4+WSfmkNTfQtGr skug== 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 x11-20020a1709064a8b00b00991ece4c959si3146567eju.532.2023.09.09.05.47.07; Sat, 09 Sep 2023 05:47:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237253AbjIIDY0 (ORCPT + 14 others); Fri, 8 Sep 2023 23:24:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234638AbjIIDXh (ORCPT ); Fri, 8 Sep 2023 23:23:37 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFE621FF6; Fri, 8 Sep 2023 20:23:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97E63C433CA; Sat, 9 Sep 2023 03:23:32 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qeoZb-000Yl7-0v; Fri, 08 Sep 2023 23:23:51 -0400 Message-ID: <20230909032351.104588615@goodmis.org> User-Agent: quilt/0.66 Date: Fri, 08 Sep 2023 23:16:30 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, Sven Schnelle Subject: [for-linus][PATCH 15/15] tracing/synthetic: Fix order of struct trace_dynamic_info References: <20230909031615.047488015@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776564182224124689 X-GMAIL-MSGID: 1776564182224124689 From: "Steven Rostedt (Google)" To make handling BIG and LITTLE endian better the offset/len of dynamic fields of the synthetic events was changed into a structure of: struct trace_dynamic_info { #ifdef CONFIG_CPU_BIG_ENDIAN u16 offset; u16 len; #else u16 len; u16 offset; #endif }; to replace the manual changes of: data_offset = offset & 0xffff; data_offest = len << 16; But if you look closely, the above is: << 16 | offset Which in little endian would be in memory: offset_lo offset_hi len_lo len_hi and in big endian: len_hi len_lo offset_hi offset_lo Which if broken into a structure would be: struct trace_dynamic_info { #ifdef CONFIG_CPU_BIG_ENDIAN u16 len; u16 offset; #else u16 offset; u16 len; #endif }; Which is the opposite of what was defined. Fix this and just to be safe also add "__packed". Link: https://lore.kernel.org/all/20230908154417.5172e343@gandalf.local.home/ Link: https://lore.kernel.org/linux-trace-kernel/20230908163929.2c25f3dc@gandalf.local.home Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Sven Schnelle Fixes: ddeea494a16f3 ("tracing/synthetic: Use union instead of casts") Signed-off-by: Steven Rostedt (Google) --- include/linux/trace_events.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index 12f875e9e69a..21ae37e49319 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -62,13 +62,13 @@ void trace_event_printf(struct trace_iterator *iter, const char *fmt, ...); /* Used to find the offset and length of dynamic fields in trace events */ struct trace_dynamic_info { #ifdef CONFIG_CPU_BIG_ENDIAN - u16 offset; u16 len; + u16 offset; #else - u16 len; u16 offset; + u16 len; #endif -}; +} __packed; /* * The trace entry - the most basic unit of tracing. This is what