From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-181.mta1.migadu.com (out-181.mta1.migadu.com [95.215.58.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42BB432ED41 for ; Fri, 12 Sep 2025 21:10:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757711412; cv=none; b=jjP4nY8iMumnDF43ArC4cMaCZ6FNMl4AhKbHCl/02myiYLvjGj6he/hXQcyA+8r2jY9N+cHoDr8q7FcNq0/TX4WTXmtIQtZp8nmba76tzyr2IHFWl8YQT0y+TuTIg32dIt+UokgjCavtWwRDOGHCM5mU87+AUN4Z85Bhen2vS2w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757711412; c=relaxed/simple; bh=tNcYr5ziqs6D8Tk6SiXuOUEiirhboBKH4zEUjW3nj/E=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Ro0zRhcFlFEFiBZxrPXLKmdoZmMFDGIG76xw8F9RLfpJvvCmyaAHxRRDJmQtoMJlM7T5BWCSsKV0yQtud6Xto7N6zgr+UJL4b/e322f89fdKJNOSZLSNsiH9zCyko6CaF+NH+OrrlWynkLLAnAeeKB7B+SjYkcmdV6m+0FnXIPs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=EXz/FrYD; arc=none smtp.client-ip=95.215.58.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="EXz/FrYD" Message-ID: <8c93b586-1ebd-44c1-87d6-bcbb8030f795@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1757711398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=v7SST8umNfuQI1uj5w85mwFvKzhhH3zx+XI2NwpkpMs=; b=EXz/FrYD+KUVjFXdQDMRdidl/sSKPAfYFlPGoTsOsxXoyx66KHRYyhVkbpCatQ1G0+Xckg +0VEO/8KF17Aka1OPF5zg0jc84I4Jol6aMAQFRA6xa7j2s6PDA/5eTSdO1RVA7SsD5/7OC 0bMMD8V6Elf1RgNC4tmvEl5voS0kQ2E= Date: Fri, 12 Sep 2025 14:09:50 -0700 Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCHv3 perf/core 0/6] uprobe,bpf: Allow to change app registers from uprobe registers To: Jiri Olsa Cc: Andrii Nakryiko , Oleg Nesterov , Masami Hiramatsu , Peter Zijlstra , Andrii Nakryiko , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, x86@kernel.org, Song Liu , Yonghong Song , John Fastabend , Hao Luo , Steven Rostedt , Ingo Molnar References: <20250909123857.315599-1-jolsa@kernel.org> <7f591ac9-d3e0-4404-987c-40eceaf51fbb@linux.dev> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Ihor Solodrai In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT On 9/12/25 1:55 PM, Jiri Olsa wrote: > On Fri, Sep 12, 2025 at 01:28:55PM -0700, Ihor Solodrai wrote: >> On 9/9/25 9:41 AM, Andrii Nakryiko wrote: >>> On Tue, Sep 9, 2025 at 8:39 AM Jiri Olsa wrote: >>>> >>>> hi, >>>> we recently had several requests for tetragon to be able to change >>>> user application function return value or divert its execution through >>>> instruction pointer change. >>>> >>>> This patchset adds support for uprobe program to change app's registers >>>> including instruction pointer. >>>> >>>> v3 changes: >>>> - deny attach of kprobe,multi with kprobe_write_ctx set [Alexei] >>>> - added more tests for denied kprobe attachment >>>> >>>> thanks, >>>> jirka >>>> >>>> >>>> --- >>>> Jiri Olsa (6): >>>> bpf: Allow uprobe program to change context registers >>>> uprobe: Do not emulate/sstep original instruction when ip is changed >>>> selftests/bpf: Add uprobe context registers changes test >>>> selftests/bpf: Add uprobe context ip register change test >>>> selftests/bpf: Add kprobe write ctx attach test >>>> selftests/bpf: Add kprobe multi write ctx attach test >>>> >>> >>> For the series: >>> >>> Acked-by: Andrii Nakryiko >>> >>> Question is which tree will this go through? Most changes are in BPF, >>> so probably bpf-next, right? >> >> Hi Jiri. >> >> This series does not apply to current bpf-next, see below. >> >> Could you please respin it with bpf-next tag? >> E.g. "[PATCH v4 bpf-next 0/6] ..." >> > > hi, > the uprobe change it needs to be on top of the optimized uprobes (tip/perf/core) > but the bpf selftests patches could be applied on bpf-next/master and disabled > in CI until tip/perf/core changes are merged in? Currently the series isn't even picked up by CI properly because it doesn't apply. It's not that the tests are failing. If there is a dependency on external (to bpf-next) commit, we could add it as a temporary CI patch or just wait for it to be merged in. But if you can make this series applicable to bpf-next without tip/perf/core changes, you can do that and add relevant tests to `tools/testing/selftests/bpf/DENYLIST`. It's important to not forget to remove them later though. > > thanks, > jirka > > >> Thanks! >> >> $ git log -1 --oneline >> a578b54a8ad2 (HEAD -> master, origin/master, origin/HEAD, >> kernel-patches/bpf-next) Merge branch >> 'bpf-report-arena-faults-to-bpf-streams' >> $ b4 am 20250909123857.315599-1-jolsa@kernel.org >> [...] >> $ git am ./v3_20250909_jolsa_uprobe_bpf_allow_to_change_app_registers_from_uprobe_registers.mbx >> Applying: bpf: Allow uprobe program to change context registers >> Applying: uprobe: Do not emulate/sstep original instruction when ip is >> changed >> error: patch failed: kernel/events/uprobes.c:2768 >> error: kernel/events/uprobes.c: patch does not apply >> Patch failed at 0002 uprobe: Do not emulate/sstep original instruction when >> ip is changed >> [...] >> >>> >>>> include/linux/bpf.h | 1 + >>>> kernel/events/core.c | 4 +++ >>>> kernel/events/uprobes.c | 7 +++++ >>>> kernel/trace/bpf_trace.c | 7 +++-- >>>> tools/testing/selftests/bpf/prog_tests/attach_probe.c | 28 +++++++++++++++++ >>>> tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c | 27 ++++++++++++++++ >>>> tools/testing/selftests/bpf/prog_tests/uprobe.c | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- >>>> tools/testing/selftests/bpf/progs/kprobe_write_ctx.c | 22 +++++++++++++ >>>> tools/testing/selftests/bpf/progs/test_uprobe.c | 38 +++++++++++++++++++++++ >>>> 9 files changed, 287 insertions(+), 3 deletions(-) >>>> create mode 100644 tools/testing/selftests/bpf/progs/kprobe_write_ctx.c >>