BPF List
 help / color / mirror / Atom feed
* [PATCH bpf-next v6 0/2] bpf: Add a generic bits iterator
@ 2024-04-11 13:11 Yafang Shao
  2024-04-11 13:11 ` [PATCH bpf-next v6 1/2] bpf: Add " Yafang Shao
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Yafang Shao @ 2024-04-11 13:11 UTC (permalink / raw)
  To: ast, daniel, john.fastabend, andrii, martin.lau, eddyz87, song,
	yonghong.song, kpsingh, sdf, haoluo, jolsa
  Cc: bpf, Yafang Shao

Three new kfuncs, namely bpf_iter_bits_{new,next,destroy}, have been
added for the new bpf_iter_bits functionality. These kfuncs enable the
iteration of the bits from a given address and a given number of bits.

- bpf_iter_bits_new
  Initialize a new bits iterator for a given memory area. Due to the
  limitation of bpf memalloc, the max number of bits to be iterated
  over is (4096 * 8).
- bpf_iter_bits_next
  Get the next bit in a bpf_iter_bits
- bpf_iter_bits_destroy
  Destroy a bpf_iter_bits

The bits iterator can be used in any context and on any address.

Changes:
- v5->v6:
  - Add positive tests (Andrii)
- v4->v5:
  - Simplify test cases (Andrii)
- v3->v4:
  - Fix endianness error on s390x (Andrii)
  - zero-initialize kit->bits_copy and zero out nr_bits (Andrii)
- v2->v3:
  - Optimization for u64/u32 mask (Andrii)
- v1->v2:
  - Simplify the CPU number verification code to avoid the failure on s390x
    (Eduard)
- bpf: Add bpf_iter_cpumask
  https://lwn.net/Articles/961104/
- bpf: Add new bpf helper bpf_for_each_cpu
  https://lwn.net/Articles/939939/

Yafang Shao (2):
  bpf: Add bits iterator
  selftests/bpf: Add selftest for bits iter

 kernel/bpf/helpers.c                          | 120 +++++++++++++++++
 .../selftests/bpf/prog_tests/verifier.c       |   2 +
 .../selftests/bpf/progs/verifier_bits_iter.c  | 127 ++++++++++++++++++
 3 files changed, 249 insertions(+)
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bits_iter.c

-- 
2.39.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-05-01  4:14 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-11 13:11 [PATCH bpf-next v6 0/2] bpf: Add a generic bits iterator Yafang Shao
2024-04-11 13:11 ` [PATCH bpf-next v6 1/2] bpf: Add " Yafang Shao
2024-04-11 13:11 ` [PATCH bpf-next v6 2/2] selftests/bpf: Add selftest for bits iter Yafang Shao
2024-04-11 13:50 ` [PATCH bpf-next v6 0/2] bpf: Add a generic bits iterator Yafang Shao
2024-04-25  0:34   ` Andrii Nakryiko
2024-04-25  5:36     ` Yafang Shao
2024-04-25  6:05       ` Yonghong Song
2024-04-25  8:03         ` Yafang Shao
2024-04-25 18:15       ` Andrii Nakryiko
2024-04-26  5:04         ` Yafang Shao
2024-04-26 16:50           ` Andrii Nakryiko
2024-04-28 13:47             ` Yafang Shao
2024-04-29 16:27               ` Andrii Nakryiko
2024-05-01  2:12                 ` Yafang Shao
2024-05-01  4:14                   ` Andrii Nakryiko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox