| #
21cab84f |
| 24-Jan-2025 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
bitops: find first set bit
Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in intrinsics. Add associated unit tests.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Si
bitops: find first set bit
Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in intrinsics. Add associated unit tests.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
show more ...
|
|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1 |
|
| #
8b65ddc0 |
| 15-Oct-2024 |
David Marchand <david.marchand@redhat.com> |
bitops: fix build for GCC without experimental API
Building OVS against current DPDK fails with following warnings:
In file included from .../ovs/dpdk-dir/include/rte_memory.h:18,
bitops: fix build for GCC without experimental API
Building OVS against current DPDK fails with following warnings:
In file included from .../ovs/dpdk-dir/include/rte_memory.h:18, from .../ovs/dpdk-dir/include/rte_ring_core.h:29, from .../ovs/dpdk-dir/include/rte_ring.h:37, from .../ovs/dpdk-dir/include/rte_mempool.h:49, from .../ovs/dpdk-dir/include/rte_mbuf.h:38, from lib/dp-packet.h:25, from lib/ofp-packet.c:20: .../ovs/dpdk-dir/include/rte_bitops.h: In function ‘__rte_bit_assign32’: .../ovs/dpdk-dir/include/rte_bitops.h:528:1: error: ‘__rte_bit_set32’ is deprecated: Symbol is not yet part of stable ABI [-Werror=deprecated-declarations] ...
This comes from the fact that some (experimental) inline helpers are calling other experimental API. Hide those calls.
Fixes: 471de107ae23 ("bitops: add new bit manipulation API")
Reported-by: Kevin Traynor <ktraynor@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
| #
0883d736 |
| 20-Sep-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
bitops: support volatile pointers in new API
Have rte_bit_[test|set|clear|assign|flip]() and rte_bit_atomic_*() handle volatile-marked pointers.
Bugzilla ID: 1385
Signed-off-by: Mattias Rönnblom <
bitops: support volatile pointers in new API
Have rte_bit_[test|set|clear|assign|flip]() and rte_bit_atomic_*() handle volatile-marked pointers.
Bugzilla ID: 1385
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>
show more ...
|
| #
35326b61 |
| 20-Sep-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
bitops: add atomic bit operations in new API
Add atomic bit test/set/clear/assign/flip and test-and-set/clear/assign/flip functions.
All atomic bit functions allow (and indeed, require) the caller
bitops: add atomic bit operations in new API
Add atomic bit test/set/clear/assign/flip and test-and-set/clear/assign/flip functions.
All atomic bit functions allow (and indeed, require) the caller to specify a memory order.
Bugzilla ID: 1385
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>
show more ...
|
| #
471de107 |
| 20-Sep-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
bitops: add new bit manipulation API
Add functionality to test and modify the value of individual bits in 32-bit or 64-bit words.
These functions have no implications on memory ordering, atomicity
bitops: add new bit manipulation API
Add functionality to test and modify the value of individual bits in 32-bit or 64-bit words.
These functions have no implications on memory ordering, atomicity and does not use volatile and thus does not prevent any compiler optimizations.
Bugzilla ID: 1385
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>
show more ...
|
|
Revision tags: v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1 |
|
| #
1d8f2285 |
| 26-Jan-2024 |
Chengwen Feng <fengchengwen@huawei.com> |
eal: introduce more macros for bit definition
Introduce macros: 1. RTE_SHIFT_VAL64: get the uint64_t value which shifted by nr. 2. RTE_SHIFT_VAL32: get the uint32_t value which shifted by nr. 3. RTE
eal: introduce more macros for bit definition
Introduce macros: 1. RTE_SHIFT_VAL64: get the uint64_t value which shifted by nr. 2. RTE_SHIFT_VAL32: get the uint32_t value which shifted by nr. 3. RTE_GENMASK64: generate a contiguous 64bit bitmask starting at bit position low and ending at position high. 4. RTE_GENMASK32: generate a contiguous 32bit bitmask starting at bit position low and ending at position high. 5. RTE_FIELD_GET64: extract a 64bit field element. 6. RTE_FIELD_GET32: extract a 32bit field element.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2 |
|
| #
30764c0f |
| 20-Oct-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
bitops: promote some functions as stable
These were added in 20.05 release.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Joyce Kong <joyce.kong@arm.com>
|
| #
2a0557d1 |
| 18-Oct-2023 |
David Marchand <david.marchand@redhat.com> |
bitops: promote new symbols as stable
Calling an experimental symbol from an inline helper triggers a warning when such code is not compiled with experimental API. This can be seen when rte_bitops.h
bitops: promote new symbols as stable
Calling an experimental symbol from an inline helper triggers a warning when such code is not compiled with experimental API. This can be seen when rte_bitops.h gets (indirectly) included in OVS builds.
On the other hand, rte_clz32, rte_clz64, rte_ctz32, rte_ctz64, rte_popcount32, rte_popcount64 are inline helpers for abstracting common bit counting functions. This part of the API is unlikely to change.
Mark those symbols as stable (as discussed and agreed during the 2023/10/18 DPDK Techboard meeting).
Fixes: 18898c4d06f9 ("eal: use abstracted bit count functions")
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Joyce Kong <joyce.kong@arm.com> Acked-by: Kevin Traynor <ktraynor@redhat.com>
show more ...
|
|
Revision tags: v23.11-rc1 |
|
| #
18898c4d |
| 16-Oct-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
eal: use abstracted bit count functions
Use DPDK abstracted bitcount functions instead of gcc __builtin_'s
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1 |
|
| #
916c50dd |
| 04-Apr-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
bitops: add more bit count functions
Provide abstracted bit counting functions for count, leading and trailing bits in v to hide compiler specific intrinsics and builtins.
Include basic unit test o
bitops: add more bit count functions
Provide abstracted bit counting functions for count, leading and trailing bits in v to hide compiler specific intrinsics and builtins.
Include basic unit test of following functions added.
rte_clz32 rte_clz64 rte_ctz32 rte_ctz64 rte_popcount32 rte_popcount64
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
7253e3d2 |
| 04-Apr-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
bitops: move bit count functions
Move the following inline functions from rte_common.h to rte_bitops.h
rte_combine32ms1b rte_combine64ms1b rte_bsf32 rte_bsf32_safe rte_bsf64 rte_bsf64_s
bitops: move bit count functions
Move the following inline functions from rte_common.h to rte_bitops.h
rte_combine32ms1b rte_combine64ms1b rte_bsf32 rte_bsf32_safe rte_bsf64 rte_bsf64_safe rte_fls_u32 rte_fls_u64 rte_is_power_of_2 rte_align32pow2 rte_align32prevpow2 rte_align64pow2 rte_align64prevpow2 rte_log2_u32 rte_log2_u64
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1, v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1, v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
d7e9c02c |
| 16-Feb-2022 |
Brian Dooley <brian.dooley@intel.com> |
eal: add missing C++ guards
Some public header files were missing 'extern "C"' C++ guards, and couldn't be used by C++ applications. Add the missing guards.
Fixes: af75078fece3 ("first public relea
eal: add missing C++ guards
Some public header files were missing 'extern "C"' C++ guards, and couldn't be used by C++ applications. Add the missing guards.
Fixes: af75078fece3 ("first public release") Fixes: 7f3aa0863903 ("eal: introduce bit operations API") Fixes: 166a743c53fa ("compat: add infrastructure to support symbol versioning") Fixes: 8f40ee0734c8 ("eal/x86: get hypervisor name") Fixes: 75583b0d1efd ("eal: add keep alive monitoring") Fixes: 88701645c98c ("eal: move interrupt type out of igb_uio") Fixes: f04519d8092e ("lib: add missing include dependencies") Fixes: f58880682c81 ("trace: implement register API") Fixes: 428eb983f5f7 ("eal: add OS specific header file") Cc: stable@dpdk.org
Signed-off-by: Brian Dooley <brian.dooley@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
|
Revision tags: v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
99a2dd95 |
| 20-Apr-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also m
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal'
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|