* @warning * @b EXPERIMENTAL: this API may change, or be removed, without prior notice * * Prefetch a cache line into all cache levels, with intention to write. This * prefetch variant hints to the CPU that the program is expecting to write to * the cache line being prefetched. * * @param p Address to prefetch */
| 64 | * @param p Address to prefetch |
| 65 | */ |
| 66 | __rte_experimental |
| 67 | static inline void |
| 68 | rte_prefetch0_write(const void *p) |
| 69 | { |
| 70 | /* 1 indicates intention to write, 3 sets target cache level to L1. See |
| 71 | * GCC docs where these integer constants are described in more detail: |
| 72 | * https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html |
| 73 | */ |
| 74 | __builtin_prefetch(p, 1, 3); |
| 75 | } |
| 76 | |
| 77 | /** |
| 78 | * @warning |
no outgoing calls