Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vppinfra: add clib_prefetch_load and clib_prefetch_store
[vpp.git]
/
src
/
vppinfra
/
cache.h
diff --git
a/src/vppinfra/cache.h
b/src/vppinfra/cache.h
index
ac08355
..
04f91e0
100644
(file)
--- a/
src/vppinfra/cache.h
+++ b/
src/vppinfra/cache.h
@@
-45,9
+45,6
@@
*/
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
*/
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
-/* defines CLIB_LOG2_CACHE_LINE_BYTES */
-#include <vppinfra/config.h>
-
/* Default cache line size of 64 bytes. */
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
#define CLIB_LOG2_CACHE_LINE_BYTES 6
/* Default cache line size of 64 bytes. */
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
#define CLIB_LOG2_CACHE_LINE_BYTES 6
@@
-61,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
@@
-87,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 */