Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1478584pxb; Thu, 4 Mar 2021 12:22:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+H/ed6QTnX2s3am+F64rtiHyVmUBgE1sptr2EJHrHO5adisI6Bh3lVClPSHlwY36HvsCl X-Received: by 2002:a17:906:7d7:: with SMTP id m23mr6311613ejc.205.1614889355006; Thu, 04 Mar 2021 12:22:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614889355; cv=none; d=google.com; s=arc-20160816; b=sc4ZmouKJnfsAL+0H4mfT+Dtsnvmk0c/SttpKk6QCz/5Tw1gCved83kkKAE5I+z4io YKy/VD4jObaVEnrWxuP5/cSW1Oo91xoWshhG+z5aFxgGcQYlbIWIF7SFleszZNrQufmU 7YYptX4HbvGfnj9AOmK0quvTXryllalYxe4V/88hwI+8LvL5x+JP6F44m6v8FxxCqqD+ a942vwTP83rjhPjbx//jf/KwCRTc2sh0dyFPeIPa7OVhI/63guo3M7cd7C6gafy9tsTb 6fSPhczAFoppdnkOdMVjbpI+GEmY/PHMgzUOS4t09hhQ/wv9bs3VRGCa8PKnT/NZ6QBM AmNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=F9qgbISfgaWwiiXlVqR6p27KXg930oLo84UF8TINIXI=; b=BCRkwxjV8r10yFALATdLJKxmGr+aO86JTVQP5x+iDs1owphALd/Rrrkot6T5NGbru+ +NCnfMS25ZG0stL7aXWCUxn8XBa7WwGK8pcG/hQjO8CwMtICS+W6OFjxI+aT0gRCIrKq kOnB4FdLR7axTbccAaJHdusgviPVwkLiT4rzHacqffVpyxWXLIrl26owTliGXbhGheoL zBIDpSrVAfkIuDb57nT8IRkpujWkYi6IEWQ0EmyhDPjnYcc/tUvYI/3j+hjdg8BsGx+m Ri5bKj2Q3Wo+NtBaqMdH3rDfmkzHswnsMHLsyTkSgmshyNrap5A4qW7sxOWm0mL09MTL ImfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=CFbWBbrN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g6si359231edv.439.2021.03.04.12.22.11; Thu, 04 Mar 2021 12:22:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=CFbWBbrN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1580555AbhCBSEe (ORCPT + 99 others); Tue, 2 Mar 2021 13:04:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:39032 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1578615AbhCBP0B (ORCPT ); Tue, 2 Mar 2021 10:26:01 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 91EA564F31; Tue, 2 Mar 2021 15:25:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1614698718; bh=Nq8L06FtypdWg8CR2NXIMxneJKdnrBKynQYhaYdm4pY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CFbWBbrNu0SPNCkri4XW66CSPtZTqrC66Sx6rm62QsayDnJShXPKhj8cVbeIdawla pT5VFxF1jOY/aWwjA3DBkpPB6gkOtCGalt1NDIHo7DIJT2ETcOIT+XIDPG/Hes/Izi q3oDWSI3y7ISNIYcK+PbEB18rLS9AlwdIqRSuOZ/B3oKorU7gmJpO74p0UqB9Gcn2M VF85mUi5mtFNU28V9rdkCoQXlcgMwHmStOyk5XNW6drXf2+0R1N731viOR8SbnQmsx 0UwzEyIzK9i5SMR8KT5hw5W6vyKBKJmHwxwuHkyV+5NGzyYLsjsIHpmpwBg0oUf7uB /9Fvpk7n6AEYQ== From: Masami Hiramatsu To: Andy Lutomirski , Ingo Molnar Cc: Oleg Nesterov , Masami Hiramatsu , Peter Zijlstra , LKML , Anil S Keshavamurthy , "David S . Miller" , X86 ML , Andrew Cooper , Steven Rostedt Subject: [PATCH -tip 0/3] x86/kprobes: Remoev single-step trap from x86 kprobes Date: Wed, 3 Mar 2021 00:25:12 +0900 Message-Id: <161469871251.49483.9142858308048988638.stgit@devnote2> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210225112245.607c70ec13cf8d279390e89e@kernel.org> References: <20210225112245.607c70ec13cf8d279390e89e@kernel.org> User-Agent: StGit/0.19 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Here is a series of patches to remove the single-step debug trap from the x86 kprobe. The first 2 patches ([1/3][2/3]) are bugfixes which I've sent recently; https://lore.kernel.org/lkml/161425451732.93763.18329509061375062554.stgit@devnote2/ And [3/3] is actually the patch to remove single-step from kprobes. The RFC version is here; https://lore.kernel.org/lkml/161460768474.430263.18425867006584111900.stgit@devnote2/ This uses int3 as Andy suggested instead of the debug trap, for removing the IRET which returns to kernel. Some instructions must be emulated and some instructions becomes not able to be probed, but as far as I can see those are not rare case. Thank you, --- Masami Hiramatsu (3): x86/kprobes: Retrieve correct opcode for group instruction x86/kprobes: Identify far indirect JMP correctly x86/kprobes: Use int3 instead of debug trap for single-step arch/x86/include/asm/kprobes.h | 21 +- arch/x86/kernel/kprobes/core.c | 524 ++++++++++++++++++++++++++-------------- arch/x86/kernel/traps.c | 3 3 files changed, 358 insertions(+), 190 deletions(-) -- Masami Hiramatsu (Linaro)