Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753450AbbFARFG (ORCPT ); Mon, 1 Jun 2015 13:05:06 -0400 Received: from mail-la0-f45.google.com ([209.85.215.45]:34267 "EHLO mail-la0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751771AbbFARE7 (ORCPT ); Mon, 1 Jun 2015 13:04:59 -0400 MIME-Version: 1.0 In-Reply-To: <1433176331-479-3-git-send-email-eugene.shatokhin@rosalab.ru> References: <1433176331-479-1-git-send-email-eugene.shatokhin@rosalab.ru> <1433176331-479-3-git-send-email-eugene.shatokhin@rosalab.ru> From: Andy Lutomirski Date: Mon, 1 Jun 2015 10:04:37 -0700 Message-ID: Subject: Re: [PATCH 2/2] kprobes/x86: Use 16 bytes for each instruction slot again To: Eugene Shatokhin Cc: Masami Hiramatsu , Ingo Molnar , Ingo Molnar , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1440 Lines: 33 On Mon, Jun 1, 2015 at 9:32 AM, Eugene Shatokhin wrote: > Commit 91e5ed49fca0 ("x86/asm/decoder: Fix and enforce max instruction > size in the insn decoder") has changed MAX_INSN_SIZE from 16 to 15 bytes > on x86. > > As a side effect, the slots Kprobes use to store the instructions became > 1 byte shorter. This is unfortunate because, for example, the Kprobes' > "boost" feature can not be used now for the instructions of length 11, > like a quite common kind of MOV: > * movq $0xffffffffffffffff,-0x3fe8(%rax) (48 c7 80 18 c0 ff ff ff ff ff ff) > * movq $0x0,0x88(%rdi) (48 c7 87 88 00 00 00 00 00 00 00) > and so on. > > This patch makes the insn slots 16 bytes long, like they were before while > keeping MAX_INSN_SIZE intact. > > Other tools may benefit from this change as well. What is a "slot" and why does this patch make sense? Naively, I'd expect that the check you're patching is entirely unnecessary -- I don't see what the size of the instruction being probed has to do with the safety of executing it out of line and then jumping back. Is there another magic 16 somewhere that this is enforcing that we don't overrun? --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/