From: Andrii Nakryiko Date: Wed, 29 May 2024 23:01:48 +0000 (-0700) Subject: Merge branch 'bpf-add-a-generic-bits-iterator' X-Git-Tag: v6.11-rc1~163^2~222^2~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f088cabffcb646b559055464bb5fa79206752f07;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'bpf-add-a-generic-bits-iterator' Yafang Shao says: ==================== bpf: Add a generic bits iterator 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: - v7->v8: Refine the interface to avoid dealing with endianness (Andrii) - v6->v7: Fix endianness error for non-long-aligned data (Andrii) - 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/ ==================== Link: https://lore.kernel.org/r/20240517023034.48138-1-laoar.shao@gmail.com Signed-off-by: Andrii Nakryiko --- f088cabffcb646b559055464bb5fa79206752f07