lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri,  2 Jun 2023 14:59:53 +0800
From: menglong8.dong@...il.com
To: olsajiri@...il.com
Cc: davem@...emloft.net,
	dsahern@...nel.org,
	ast@...nel.org,
	daniel@...earbox.net,
	andrii@...nel.org,
	martin.lau@...ux.dev,
	song@...nel.org,
	yhs@...com,
	john.fastabend@...il.com,
	kpsingh@...nel.org,
	sdf@...gle.com,
	haoluo@...gle.com,
	jolsa@...nel.org,
	tglx@...utronix.de,
	mingo@...hat.com,
	bp@...en8.de,
	dave.hansen@...ux.intel.com,
	x86@...nel.org,
	hpa@...or.com,
	edumazet@...gle.com,
	kuba@...nel.org,
	pabeni@...hat.com,
	mykolal@...com,
	shuah@...nel.org,
	benbjiang@...cent.com,
	iii@...ux.ibm.com,
	imagedong@...cent.com,
	xukuohai@...wei.com,
	chantr4@...il.com,
	zwisler@...gle.com,
	eddyz87@...il.com,
	netdev@...r.kernel.org,
	bpf@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	linux-kselftest@...r.kernel.org
Subject: [PATCH bpf-next v2 0/5] bpf, x86: allow function arguments up to 14 for TRACING

From: Menglong Dong <imagedong@...cent.com>

For now, the BPF program of type BPF_PROG_TYPE_TRACING can only be used
on the kernel functions whose arguments count less than 6. This is not
friendly at all, as too many functions have arguments count more than 6.

Therefore, let's enhance it by increasing the function arguments count
allowed in arch_prepare_bpf_trampoline(), for now, only x86_64.

In the 1th patch, we make MAX_BPF_FUNC_ARGS 14, according to our
statistics.

In the 2th patch, we make arch_prepare_bpf_trampoline() support to copy
function arguments in stack for x86 arch. Therefore, the maximum
arguments can be up to MAX_BPF_FUNC_ARGS for FENTRY and FEXIT.

And the 3-5th patches are for the testcases of the 2th patch.

Changes since v1:
- change the maximun function arguments to 14 from 12
- add testcases (Jiri Olsa)
- instead EMIT4 with EMIT3_off32 for "lea" to prevent overflow

Menglong Dong (5):
  bpf: make MAX_BPF_FUNC_ARGS 14
  bpf, x86: allow function arguments up to 14 for TRACING
  libbpf: make BPF_PROG support 15 function arguments
  selftests/bpf: rename bpf_fentry_test{7,8,9} to bpf_fentry_test_ptr*
  selftests/bpf: add testcase for FENTRY/FEXIT with 6+ arguments

 arch/x86/net/bpf_jit_comp.c                   | 96 ++++++++++++++++---
 include/linux/bpf.h                           |  9 +-
 net/bpf/test_run.c                            | 40 ++++++--
 tools/lib/bpf/bpf_helpers.h                   |  9 +-
 tools/lib/bpf/bpf_tracing.h                   | 10 +-
 .../selftests/bpf/prog_tests/bpf_cookie.c     | 24 ++---
 .../bpf/prog_tests/kprobe_multi_test.c        | 16 ++--
 .../testing/selftests/bpf/progs/fentry_test.c | 50 ++++++++--
 .../testing/selftests/bpf/progs/fexit_test.c  | 51 ++++++++--
 .../selftests/bpf/progs/get_func_ip_test.c    |  2 +-
 .../selftests/bpf/progs/kprobe_multi.c        | 12 +--
 .../bpf/progs/verifier_btf_ctx_access.c       |  2 +-
 .../selftests/bpf/verifier/atomic_fetch_add.c |  4 +-
 13 files changed, 249 insertions(+), 76 deletions(-)

-- 
2.40.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ