Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3176936yba; Mon, 6 May 2019 18:55:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqz7Zil/m+MRmRJs4VpBCXxlo8gPLmPxBushiqcH1VrPrNmKrX3/jckztmwx6mhz9mFD+YGo X-Received: by 2002:a62:3684:: with SMTP id d126mr37546392pfa.70.1557194115674; Mon, 06 May 2019 18:55:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557194115; cv=none; d=google.com; s=arc-20160816; b=grBJCdQiOm8SptFKN4RuW3ij+Z3fNcmFoQ4xM4ccoem1KMqV/25s3D155AztV9hHTE Na0wUTwtkzpFePLBIdDxnfnkDMNxGCZtcdwgpxbDBaHjLF8VR2nJ5fiRWFu0X7lm9Td1 WKQCHy2ZMMm7c/JaWj1oTJ4vlDVmNaHQkxkbr16voL0MwiM5k1WeJvivl26e8KWI45l/ 0EsYJhMyjo3+AIMTF5hXksuDELu2u56XnXq80UlKocRUWqKv9wJ3+gLkNRLlbTGSg7am BPQpN//44bLew/LIM62gIl4TzJLBHOh3ge3H6Jr/SC4KIO9AeOkUJ1mRAfqqUygCv6Qk YSdw== 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=LFm8MybuI6IJJLl+xWYfMP2pUuP9+ziTkOpFhL2yq98=; b=irULO8aczcazykIcSTlgNHZlNtR5m5RHhgYvsX54y7vZGQ17i4zXfXhveFUnn3a/vq iuAAM7VFYVE9FwLHElj9hna+manw1v0gwtolonS6xRQKULumFppDmdxnkB2/28EJaddL 7HdOOHKz5/jdOqx8ZDI7p/Xeis9GfVWF6Zd0i7yMdmvI2fMomks5DYy3HQ/a9AB0cqo8 I2QWTpaQoL4YOe/yDuLQu+gkonItZTiEi90YheYiWsVPapxuxn13f+nBkI1Mmj/W4Y6P CcMQqsTHe5UiYBBNIMdAHrCxBJCDKy5iJMBmf8BNMoKITOnJmEC2kJ/76VH8jrONjFNe ZJHQ== 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 k15si17730005pls.61.2019.05.06.18.54.58; Mon, 06 May 2019 18:55:15 -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 S1726197AbfEGBx6 (ORCPT + 99 others); Mon, 6 May 2019 21:53:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:58306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725994AbfEGBx6 (ORCPT ); Mon, 6 May 2019 21:53:58 -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 9F031206A3; Tue, 7 May 2019 01:53:54 +0000 (UTC) Date: Mon, 6 May 2019 21:53:53 -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: <20190506215353.14a8ef78@oasis.local.home> In-Reply-To: References: <20190502181811.GY2623@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 18:34:59 -0700 Linus Torvalds wrote: > On Mon, May 6, 2019 at 6:04 PM Steven Rostedt wrote: > > > > That iterator does something special for each individual record. All > > 40,000 of them. > > .. yes, but the 'int3' only happens for *one* of them at a time. > > Why would it bother with the other 39,999 calls? > > You could easily just look up the record at the int3 time, and just > use the record. Exactly the same way you use the one-at-a-time ones. > > Instead, you emulate a fake call to a function that *wouldn't* get > called, which now does the lookup there. That's the part I don't get. > Why are you emulating something else than what you'd be rewriting? > Ah, now I see what you are saying. Yes, I could pass in what it is suppose to call. But I was trying to use the same code for all the alternative solutions we were passing around, and this became the "default" case that would work with any int3_emulate_call implementation we came up with. That is, if we call ftrace_regs_caller() for any scenario it should work. Even if the call was suppose to be a nop, because in that case, all the ftrace_ops registered in the iterator would refuse to have their handler be called for that function. I sent you a single patch, but that was really just a diff of several applied patches against your unmodified tree. The last patch implements the ftrace code. And I had it this way because it should work for any of the implementations. I could modify it so that it picks what function to call when the int3 is triggered. I think all the solutions we are down to allow that now. Some of the early ideas had me call one function for all int3s due to trampolines and such. Also, I figured just calling ftrace_regs_caller() was simpler then having that int3 handler do the hash look ups to determine what handler it needs to call. -- Steve