From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28531C04A6B for ; Tue, 7 May 2019 01:34:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F18E52087F for ; Tue, 7 May 2019 01:34:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726574AbfEGBe0 (ORCPT ); Mon, 6 May 2019 21:34:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:53932 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726486AbfEGBe0 (ORCPT ); Mon, 6 May 2019 21:34:26 -0400 Received: from oasis.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 64B4C20835; Tue, 7 May 2019 01:34:22 +0000 (UTC) Date: Mon, 6 May 2019 21:34:20 -0400 From: Steven Rostedt To: Linus Torvalds Cc: Peter Zijlstra , Andy Lutomirski , Linux List Kernel Mailing , Ingo Molnar , Andrew Morton , Andy Lutomirski , Nicolai Stange , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "the arch/x86 maintainers" , Josh Poimboeuf , Jiri Kosina , Miroslav Benes , Petr Mladek , Joe Lawrence , Shuah Khan , Konrad Rzeszutek Wilk , Tim Chen , Sebastian Andrzej Siewior , Mimi Zohar , Juergen Gross , Nick Desaulniers , Nayna Jain , Masahiro Yamada , Joerg Roedel , "open list:KERNEL SELFTEST FRAMEWORK" , stable , Masami Hiramatsu Subject: Re: [RFC][PATCH 1/2] x86: Allow breakpoints to emulate call functions Message-ID: <20190506213420.62357f23@oasis.local.home> In-Reply-To: <20190506210416.2489a659@oasis.local.home> References: <20190502181811.GY2623@hirez.programming.kicks-ass.net> <20190503092959.GB2623@hirez.programming.kicks-ass.net> <20190503092247.20cc1ff0@gandalf.local.home> <2045370D-38D8-406C-9E94-C1D483E232C9@amacapital.net> <20190506081951.GJ2606@hirez.programming.kicks-ass.net> <20190506095631.6f71ad7c@gandalf.local.home> <20190506130643.62c35eeb@gandalf.local.home> <20190506145745.17c59596@gandalf.local.home> <20190506162915.380993f9@gandalf.local.home> <20190506174511.2f8b696b@gandalf.local.home> <20190506210416.2489a659@oasis.local.home> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Mon, 6 May 2019 21:04:16 -0400 Steven Rostedt wrote: > static int add_breakpoints(struct dyn_ftrace *rec, int enable) > { > unsigned long ftrace_addr; > int ret; > > ftrace_addr = ftrace_get_addr_curr(rec); > > ret = ftrace_test_record(rec, enable); > > switch (ret) { > case FTRACE_UPDATE_IGNORE: > return 0; > > case FTRACE_UPDATE_MAKE_CALL: > /* converting nop to call */ > return add_brk_on_nop(rec); > > case FTRACE_UPDATE_MODIFY_CALL: The FTRACE_UPDATE_MODIFY_CALL is the case where we switch from calling one trampoline to calling another. As you can plainly see from this switch statement, we treat it the same as converting to a nop. That's the bug we are trying to fix. It shouldn't be treated as a nop. It should be treated as a call to the old or new function. Either is fine, but it must be one or the other, not a nop. -- Steve > case FTRACE_UPDATE_MAKE_NOP: > /* converting a call to a nop */ > return add_brk_on_call(rec, ftrace_addr); > } > return 0; > }