On Wed, Apr 18, 2018 at 06:43:11PM +0100, Ferruh Yigit wrote: > On 4/18/2018 4:30 PM, Pavan Nikhilesh wrote: > > Add macro to mark a variable to be mostly read only and place it in a > > separate section. > > > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > > --- > > > > Group together mostly read only data to avoid cacheline bouncing, also > > useful for auditing purposes. > > > > lib/librte_eal/common/include/rte_common.h | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/lib/librte_eal/common/include/rte_common.h > > b/lib/librte_eal/common/include/rte_common.h > > index 6c5bc5a76..f2ff2e9e6 100644 > > --- a/lib/librte_eal/common/include/rte_common.h > > +++ b/lib/librte_eal/common/include/rte_common.h > > @@ -114,6 +114,11 @@ static void __attribute__((constructor(prio), used)) > > func(void) > > */ > > #define __rte_noinline __attribute__((noinline)) > > > > +/** > > + * Mark a variable to be mostly read only and place it in a separate > > section. > > + */ > > +#define __rte_read_mostly __attribute__((__section__(".read_mostly"))) >
Hi Ferruh, > Hi Pavan, > > Is the section ".read_mostly" treated specially [1] or is this just for > grouping > symbols together (to reduce cacheline bouncing)? The section .read_mostly is not treated specially it's just for grouping symbols. > > [1] > If this is special section, can you please point counter part in the kernel? The kernel has something similar[1] but they have a custom linker script to arrange symbols. [1] https://github.com/torvalds/linux/blob/a27fc14219f2e3c4a46ba9177b04d9b52c875532/arch/x86/include/asm/cache.h#L11 kernel commit id 54cb27a71f51d304342c79e62fd7667f2171062b > > > > + > > /*********** Macros for pointer arithmetic ********/ > > > > /** > > -- > > 2.17.0 > > >