Hello Paul, Before sending the v8, please fix small issues I found.
On Fri, Mar 1, 2024 at 11:21 AM Paul Szczepanek <paul.szczepa...@arm.com> wrote: > > Add a new utility header for compressing pointers. The provided > functions can store pointers in 32-bit offsets. > > The compression takes advantage of the fact that pointers are > usually located in a limited memory region (like a mempool). > We can compress them by converting them to offsets from a base > memory address. Offsets can be stored in fewer bytes (dictated > by the memory region size and alignment of the pointer). > For example: an 8 byte aligned pointer which is part of a 32GB > memory pool can be stored in 4 bytes. > > This can be used for example when passing caches full of pointers > between threads. Memory containing the pointers is copied multiple > times which is especially costly between cores. This compression > method will allow us to shrink the memory size copied. Further > commits add a test to evaluate the effectiveness of this approach. > > Suggested-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > Signed-off-by: Paul Szczepanek <paul.szczepa...@arm.com> > Signed-off-by: Kamalakshitha Aligeri <kamalakshitha.alig...@arm.com> > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > --- > lib/eal/include/meson.build | 1 + > lib/eal/include/rte_ptr_compress.h | 266 +++++++++++++++++++++++++++++ > 2 files changed, 267 insertions(+) > create mode 100644 lib/eal/include/rte_ptr_compress.h > > diff --git a/lib/eal/include/meson.build b/lib/eal/include/meson.build > index e94b056d46..ce2c733633 100644 > --- a/lib/eal/include/meson.build > +++ b/lib/eal/include/meson.build > @@ -36,6 +36,7 @@ headers += files( > 'rte_pci_dev_features.h', > 'rte_per_lcore.h', > 'rte_pflock.h', > + 'rte_ptr_compress.h', I suppose it will not be applicable in v8 but: $ ./devtools/check-meson.py Error parsing lib/eal/include/meson.build:38, got some tabulation Error: Incorrect indent at lib/eal/include/meson.build:39 > 'rte_random.h', > 'rte_reciprocal.h', > 'rte_seqcount.h', > diff --git a/lib/eal/include/rte_ptr_compress.h > b/lib/eal/include/rte_ptr_compress.h > new file mode 100644 > index 0000000000..47a72e4213 > --- /dev/null > +++ b/lib/eal/include/rte_ptr_compress.h > @@ -0,0 +1,266 @@ > +/* SPDX-License-Identifier: BSD-shift-Clause Not sure what the "shift" license is. Typo? DPDK uses BSD-3-Clause license. > + * Copyright(c) 2023 Arm Limited Should be 2024 now. > + */ > + > +#ifndef RTE_PTR_COMPRESS_H > +#define RTE_PTR_COMPRESS_H For the rest, I'll trust reviewers. -- David Marchand