From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751875AbdGYKkf (ORCPT ); Tue, 25 Jul 2017 06:40:35 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35838 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750878AbdGYKkJ (ORCPT ); Tue, 25 Jul 2017 06:40:09 -0400 Date: Tue, 25 Jul 2017 12:40:05 +0200 From: Ingo Molnar To: Masami Hiramatsu Cc: Francis Deslauriers , mathieu.desnoyers@efficios.com, Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , x86@kernel.org, Ananth N Mavinakayanahalli , Anil S Keshavamurthy , "David S . Miller" , linux-kernel@vger.kernel.org Subject: Re: [PATCH -tip V2] [BUGFIX] kprobes/x86: Do not jump-optimize kprobes on irq entry code Message-ID: <20170725104005.ugwhr5wlbkfhdylq@gmail.com> References: <150095034226.4921.9289125363675682881.stgit@devbox> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <150095034226.4921.9289125363675682881.stgit@devbox> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Masami Hiramatsu wrote: > Since the kernel segment registers are not prepared at the > entry of irq-entry code, if a kprobe on such code is > jump-optimized, accessing per-cpu variables may cause > kernel panic. > However, if the kprobe is not optimized, it kicks int3 > exception and set segment registers correctly. > > This checks probe-address and if it is in irq-entry code, > it prohibits optimizing such kprobes. This means we can > continuously probing such interrupt handlers by kprobes > but it is not optimized anymore. > > Signed-off-by: Masami Hiramatsu > Reported-by: Francis Deslauriers > Tested-by: Francis Deslauriers > --- > Changes in V2: > - Make changes in kprobe/opt.c local, not involving unwind, > since it requires CONFIG_FRAME_POINTER=y (Thanks Mathieu!) This patch doesn't even build on x86-64 defconfig ... arch/x86/kernel/kprobes/opt.c: In function ‘can_optimize’: arch/x86/kernel/kprobes/opt.c:259:32: error: ‘__irqentry_text_start’ undeclared (first use in this function) ((paddr >= (unsigned long)__irqentry_text_start) && ^~~~~~~~~~~~~~~~~~~~~ Thanks, Ingo