Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3164219yba; Mon, 6 May 2019 18:35:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqwMrxr5/AxNOo35jqIfTfHltX7lCJo0/KujsoPJ3E70FD24cTQDqzDYlD/o/1gEVsXQSxRP X-Received: by 2002:a17:902:765:: with SMTP id 92mr35261997pli.196.1557192934892; Mon, 06 May 2019 18:35:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557192934; cv=none; d=google.com; s=arc-20160816; b=VbuO6n9IoIX4bIjI/yhWzLHmhXXVnkBDj4ZNQpX6g/OT9ybdKSKD0FlipFA32mo5nH uWdu01JQ4tTAYwkDBCJujoEFfj5aQ0U6/ioawoKYD+r0j1lBgGo71XdlvAbD58Tdq/PJ zueIo6n46iPvpSkalAVmzpyh9FCEAbhXyEN0+YPxigwAWxMPFYqnQuwepzxUHlVFEe6T 3+GPymLpN9GwXHD7yp30TwuZ/MnHma4yWjifADFBZSxS/z2wE0dLHHv5GfnRHVjRxfCU jht98E4hMDDAMMepICpyPiXN2cj49SBkaonjabagQWwN28H76FxxnDY4o5Am2zZZZCCF Vurg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=AXCriaNB4et+6ubfQOH8u5/aDi89qyxq+8/QWsJVwgs=; b=uwEXcIy48pGz0bEaOFN+/IouBTVFmz5JRGElIlnFUeaFz8gQJoPTkp2o93FFshDXTh TiAnMPDK25Ed3Hk6I7MZeBcsSV9VfmG4WS99GVdmA8qbO2mNtyPVNIvoBipD6nG3vxw5 EbaKTGqI/v74FGM+n1eKO/+FnWuiMzeTsyxUN3A6WUHrPPP6lFEUr1DPgvns1BQJKo2C 1SadBxAsN5Lfq0/ROftCMJzbUgkBuI3X+NUInAP49NDwQ5PMk0z7kjqpIxueA8ZVny4s 6yfgYdcSLm3EpnumXte0unyh6Z89C+yVEbNcMQ3G6NjFwRJuudTzAG3jcujIWBr0Bj61 A3wg== ARC-Authentication-Results: i=1; mx.google.com; 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 q12si17864468plr.434.2019.05.06.18.35.18; Mon, 06 May 2019 18:35:34 -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; 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 S1726605AbfEGBe0 (ORCPT + 99 others); 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: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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; > }