Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp2016856ybp; Thu, 10 Oct 2019 00:39:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqzfmJENmg5lw4B4Htyghh7kBnhhi2TxKahygzUcYyPhxRUzeM+R9nkfz1YnOjz0asuttviU X-Received: by 2002:a17:906:1be1:: with SMTP id t1mr6887229ejg.73.1570693182282; Thu, 10 Oct 2019 00:39:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570693182; cv=none; d=google.com; s=arc-20160816; b=WT0Nc+Erya2TJZXOeeEPScc5Er1J/DcTvaC6txS7xbbh+acpza7fKvdRz8wVEUi/8z GvWePFG3rXUrEk8s7T31yYG4D0G5WkXiLv3zqdM5U3Xlan73SbBvd12JDr5DkA5Lu17E V0jSp6TH8xXQZ+LJ8bBMTyOlgaiNAKhqe5jJoFsAPTsqI4pys94e2a903T5ulRiwbt2r vv7Bp2SZE9kz00nRiiwkC2T50fr0+vsuowujW8kXlPz8zEs5gLZZ0wUl59N1GjPuruEA +h8eLJ8dFNBpmu1XuPDTo/Lm0FYrfP6Vynm86pldjlXKL0PBSgH2LwEqZNq2BCqgXx3E kJ8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=OlxQtvViaGIK04uNty665d/TS7hsJXcjW09hSoEVw1Q=; b=YNsIprEPKH4XvzxdThU6aNItVD/BTachMCGX+y5L0iN4fmJchejelKO054gkpttzV/ 28zTIo4mpqWMCQkkjFbjJ2WZaODssOICzIurCUo5ZFPgzEqHKOX2aC9/Uz2hpZWqMGYy 8Y6jE1qQREJmmtmt/mwahiO0N7sMuuFh0KC6wSJxvYYyVm0VHoxOTuIP311l0++/vp6d Yy+VMOgdwGsJxuHHBjxnQOYMudjDlGo1jq46850rncITAK6V68QpVn2qAD/ZJy+3LPNs wP8EPGjFbz9dlNdawaYsjpelSmrw5iOwQnBPfc/cMTPUY3uE4pB2IqosOiGPqH40dp0w zDeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=fgp6B3ox; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v10si3373863edc.224.2019.10.10.00.39.18; Thu, 10 Oct 2019 00:39:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=fgp6B3ox; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733272AbfJJHiW (ORCPT + 99 others); Thu, 10 Oct 2019 03:38:22 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:55360 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733069AbfJJHbY (ORCPT ); Thu, 10 Oct 2019 03:31:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=OlxQtvViaGIK04uNty665d/TS7hsJXcjW09hSoEVw1Q=; b=fgp6B3ox+JD/1k85mnq47JEek nSiHLBJCeaSbOsjtsYMhZ3bUN06f8z3ULeujKl31lUUvy1nlJl/Ifxzh5qogyA4K6tiQmZ6zjLdKM 8BX9OC9Uy8urH1tT4P/Rf/6CpSAKobW5EEsI7w3rJ6dkt3IlCTE/wsVjTsSTmyyAD/3sRRqgpJFSb 5ViIOGX1yVygLEvyEKK2cR5H4sRUu4LtGBOo9aRYfrXCHAI75way15vQAhWYabBlh1X7yyEv/HItM Pm5NIWinHCF5FTh9p8aveBhCdyM7S/13mIzFTuh6d40CXEWIiQIB36+EwjYEZ3KgcyLCDEHV43986 knI3Bvptw==; Received: from j217100.upc-j.chello.nl ([24.132.217.100] helo=noisy.programming.kicks-ass.net) by bombadil.infradead.org with esmtpsa (Exim 4.92.2 #3 (Red Hat Linux)) id 1iISux-0002SK-Nn; Thu, 10 Oct 2019 07:31:23 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id CECED3008C1; Thu, 10 Oct 2019 09:30:29 +0200 (CEST) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id BCB1D202F4F4F; Thu, 10 Oct 2019 09:31:21 +0200 (CEST) Date: Thu, 10 Oct 2019 09:31:21 +0200 From: Peter Zijlstra To: Steven Rostedt Cc: LKML , Jessica Yu , Ingo Molnar Subject: Re: [PATCH] ftrace/module: Allow ftrace to make only loaded module text read-write Message-ID: <20191010073121.GN2311@hirez.programming.kicks-ass.net> References: <20191009223638.60b78727@oasis.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191009223638.60b78727@oasis.local.home> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 09, 2019 at 10:36:38PM -0400, Steven Rostedt wrote: > From: Steven Rostedt (VMware) > > In the process of using text_poke_bp() for ftrace on x86, when > performing the following action: > > # rmmod snd_hda_codec_hdmi > # echo function > /sys/kernel/tracing/current_tracer > # modprobe snd_hda_codec_hdmi > > It triggered this: > > BUG: unable to handle page fault for address: ffffffffa03d0000 > #PF: supervisor write access in kernel mode > #PF: error_code(0x0003) - permissions violation > PGD 2a12067 P4D 2a12067 PUD 2a13063 PMD c42bc067 PTE c58a0061 > Oops: 0003 [#1] PREEMPT SMP KASAN PTI > CPU: 1 PID: 1182 Comm: modprobe Not tainted 5.4.0-rc2-test+ #50 > Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 > RIP: 0010:memcpy_erms+0x6/0x10 > Code: 90 90 90 90 eb 1e 0f 1f 00 48 89 f8 48 89 d1 48 c1 e9 03 83 e2 07 f3 48 a5 89 d1 f3 a4 c3 66 0f 1f 44 00 00 48 89 f8 48 89 d1 a4 c3 0f 1f 80 00 00 00 00 48 89 f8 48 83 fa 20 72 7e 40 38 fe > RSP: 0018:ffff8880a10479e0 EFLAGS: 00010246 > RAX: ffffffffa03d0000 RBX: ffffffffa03d0000 RCX: 0000000000000005 > RDX: 0000000000000005 RSI: ffffffff8363e160 RDI: ffffffffa03d0000 > RBP: ffff88807e9ec000 R08: fffffbfff407a001 R09: fffffbfff407a001 > R10: fffffbfff407a000 R11: ffffffffa03d0004 R12: ffffffff8221f160 > R13: ffffffffa03d0000 R14: ffff88807e9ec000 R15: ffffffffa0481640 > FS: 00007eff92e28280(0000) GS:ffff8880d4840000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: ffffffffa03d0000 CR3: 00000000a1048001 CR4: 00000000001606e0 > Call Trace: > ftrace_make_call+0x76/0x90 > ftrace_module_enable+0x493/0x4f0 > load_module+0x3a31/0x3e10 > ? ring_buffer_read+0x70/0x70 > ? module_frob_arch_sections+0x20/0x20 > ? rb_commit+0xee/0x600 > ? tracing_generic_entry_update+0xe1/0xf0 > ? ring_buffer_unlock_commit+0xfb/0x220 > ? 0xffffffffa0000061 > ? __do_sys_finit_module+0x11a/0x1b0 > __do_sys_finit_module+0x11a/0x1b0 > ? __ia32_sys_init_module+0x40/0x40 > ? ring_buffer_unlock_commit+0xfb/0x220 > ? function_trace_call+0x179/0x260 > ? __do_sys_finit_module+0x1b0/0x1b0 > ? __do_sys_finit_module+0x1b0/0x1b0 > ? do_syscall_64+0x58/0x1a0 > do_syscall_64+0x68/0x1a0 > entry_SYSCALL_64_after_hwframe+0x49/0xbe > RIP: 0033:0x7eff92f42efd > > The reason is that ftrace_module_enable() is called after the module > has set its text to read-only. There's subtle reasons that this needs > to be called afterward, and we need to continue to do so. Please explain.