Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
nat: improve outside port selection & perf
[vpp.git]
/
src
/
vppinfra
/
cache.h
diff --git
a/src/vppinfra/cache.h
b/src/vppinfra/cache.h
index
e5c678e
..
04f91e0
100644
(file)
--- a/
src/vppinfra/cache.h
+++ b/
src/vppinfra/cache.h
@@
-41,7
+41,7
@@
#include <vppinfra/error_bootstrap.h>
/*
#include <vppinfra/error_bootstrap.h>
/*
- * Allow CFLAGS to override the
arch-specific
cache line size
+ * Allow CFLAGS to override the
configured / deduced
cache line size
*/
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
*/
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
@@
-58,6
+58,12
@@
#define CLIB_CACHE_LINE_BYTES (1 << CLIB_LOG2_CACHE_LINE_BYTES)
#define CLIB_CACHE_LINE_ALIGN_MARK(mark) u8 mark[0] __attribute__((aligned(CLIB_CACHE_LINE_BYTES)))
#define CLIB_CACHE_LINE_BYTES (1 << CLIB_LOG2_CACHE_LINE_BYTES)
#define CLIB_CACHE_LINE_ALIGN_MARK(mark) u8 mark[0] __attribute__((aligned(CLIB_CACHE_LINE_BYTES)))
+#define CLIB_CACHE_LINE_ROUND(x) ((x + CLIB_CACHE_LINE_BYTES - 1) & ~(CLIB_CACHE_LINE_BYTES - 1))
+
+/* Default cache line fill buffers. */
+#ifndef CLIB_N_PREFETCHES
+#define CLIB_N_PREFETCHES 16
+#endif
/* Read/write arguments to __builtin_prefetch. */
#define CLIB_PREFETCH_READ 0
/* Read/write arguments to __builtin_prefetch. */
#define CLIB_PREFETCH_READ 0
@@
-84,6
+90,18
@@
do { \
#undef _
#undef _
+static_always_inline void
+clib_prefetch_load (void *p)
+{
+ CLIB_PREFETCH (p, CLIB_CACHE_LINE_BYTES, LOAD);
+}
+
+static_always_inline void
+clib_prefetch_store (void *p)
+{
+ CLIB_PREFETCH (p, CLIB_CACHE_LINE_BYTES, STORE);
+}
+
#endif /* included_clib_cache_h */
#endif /* included_clib_cache_h */