* @warning * @b EXPERIMENTAL: this API may change, or be removed, without prior notice * * Prefetch a cache line into all cache levels, except the 0th and 1st, 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 */
| 106 | * @param p Address to prefetch |
| 107 | */ |
| 108 | __rte_experimental |
| 109 | static inline void |
| 110 | rte_prefetch2_write(const void *p) |
| 111 | { |
| 112 | /* 1 indicates intention to write, 1 sets target cache level to L3. See |
| 113 | * GCC docs where these integer constants are described in more detail: |
| 114 | * https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html |
| 115 | */ |
| 116 | __builtin_prefetch(p, 1, 1); |
| 117 | } |
| 118 | |
| 119 | /** |
| 120 | * @warning |
no outgoing calls