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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69B59C00528 for ; Wed, 2 Aug 2023 20:12:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229796AbjHBUM0 convert rfc822-to-8bit (ORCPT ); Wed, 2 Aug 2023 16:12:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229525AbjHBUMZ (ORCPT ); Wed, 2 Aug 2023 16:12:25 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 916E6E75; Wed, 2 Aug 2023 13:12:24 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1C2DF61AB8; Wed, 2 Aug 2023 20:12:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDB70C433C7; Wed, 2 Aug 2023 20:12:21 +0000 (UTC) Date: Wed, 2 Aug 2023 16:12:20 -0400 From: Steven Rostedt To: Alexei Starovoitov Cc: Masami Hiramatsu , linux-trace-kernel@vger.kernel.org, LKML , Martin KaFai Lau , bpf , Sven Schnelle , Alexei Starovoitov , Jiri Olsa , Arnaldo Carvalho de Melo , Daniel Borkmann , Alan Maguire , Mark Rutland , Florent Revest , Peter Zijlstra , Thomas Gleixner Subject: Re: [PATCH v4 3/9] bpf/btf: Add a function to search a member of a struct/union Message-ID: <20230802161220.579b2220@gandalf.local.home> In-Reply-To: References: <169078860386.173706.3091034523220945605.stgit@devnote2> <169078863449.173706.2322042687021909241.stgit@devnote2> <20230801085724.9bb07d2c82e5b6c6a6606848@kernel.org> <20230802000228.158f1bd605e497351611739e@kernel.org> <20230801112036.0d4ee60d@gandalf.local.home> <20230801113240.4e625020@gandalf.local.home> <20230801190920.7a1abfd5@gandalf.local.home> <20230802092146.9bda5e49528e6988ab97899c@kernel.org> <20230801204054.3884688e@rorschach.local.home> <20230802225634.f520080cd9de759d687a2b0a@kernel.org> <20230802143845.3ce6ed61@gandalf.local.home> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-trace-kernel@vger.kernel.org On Wed, 2 Aug 2023 12:48:14 -0700 Alexei Starovoitov wrote: > On Wed, Aug 2, 2023 at 11:38 AM Steven Rostedt wrote: > > > > On Wed, 2 Aug 2023 11:24:12 -0700 > > Alexei Starovoitov wrote: > > > > > This is a non starter. > > > bpf progs expect arch dependent 'struct pt_regs *' and we cannot change that. > > > > If the progs are compiled into native code, isn't there optimizations that > > could be done? That is, if ftrace_regs is available, and the bpf program is > > just using the subset of pt_regs, is it possible that it could be compiled > > to use ftrace_regs? > > > > Forgive my ignorance on how BPF programs turn into executables when running > > in the kernel. > > Right. It's possible for the verifier to do an offset rewrite, > forbid certain access, always return 0 on load from certain offset, > and so on. > It's all non trivial amount of work. > ftrace_partial_regs() from ftrace_regs into pt_regs is so much simpler. Sure, and the copy could be the solution we have in the near future, but if we could optimize it in the future, then perhaps it would be worth doing it. Also, how are the bpf programs referencing the pt_regs? Could a ftrace_regs API be added too? If the verifier sees that the program is using ftrace_regs, it could then use the lighter weight fprobes for access, otherwise it falls back to the kprobe version. -- Steve