rte_prefetch.h(3)

NAME
rte_prefetch.h

SYNOPSIS

#include <rte_compat.h>

  Functions

static void rte_prefetch0 (const volatile void *p)
static void rte_prefetch1 (const volatile void *p)
static void rte_prefetch2 (const volatile void *p)
static void rte_prefetch_non_temporal (const volatile void *p)
static __rte_experimental void rte_prefetch0_write (const void *p)
static __rte_experimental void rte_prefetch1_write (const void *p)
static __rte_experimental void rte_prefetch2_write (const void *p)
static __rte_experimental void rte_cldemote (const volatile void *p)

Detailed Description

Prefetch operations.

This file defines an API for prefetch macros / inline-functions, which are architecture-dependent. Prefetching occurs when a processor requests an instruction or data from memory to cache before it is actually needed, potentially speeding up the execution of the program.

Definition in file rte_prefetch.h.

Function Documentation

  void rte_prefetch0 (const volatile void * p) [inline], [static]
Prefetch a cache line into all cache levels.

Parameters
    p Address to prefetch

  void rte_prefetch1 (const volatile void * p) [inline], [static]
Prefetch a cache line into all cache levels except the 0th cache level.

Parameters
    p Address to prefetch

  void rte_prefetch2 (const volatile void * p) [inline], [static]
Prefetch a cache line into all cache levels except the 0th and 1th cache levels.

Parameters
    p Address to prefetch

  void rte_prefetch_non_temporal (const volatile void * p) [inline], [static]
Prefetch a cache line into all cache levels (non-temporal/transient version)

The non-temporal prefetch is intended as a prefetch hint that processor will use the prefetched data only once or short period, unlike the rte_prefetch0() function which imply that prefetched data to use repeatedly.

Parameters
    p Address to prefetch

  __rte_experimental void rte_prefetch0_write (const void * p) [inline], [static]

Warning
    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.

Parameters
    p Address to prefetch

Definition at line 72 of file rte_prefetch.h.

  __rte_experimental void rte_prefetch1_write (const void * p) [inline], [static]

Warning
    EXPERIMENTAL: this API may change, or be removed, without prior notice

Prefetch a cache line into all cache levels, except the 0th, with intention to write. This prefetch variant hints to the CPU that the program is expecting to write to the cache line being prefetched.

Parameters
    p Address to prefetch

Definition at line 97 of file rte_prefetch.h.

  __rte_experimental void rte_prefetch2_write (const void * p) [inline], [static]

Warning
    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.

Parameters
    p Address to prefetch

Definition at line 122 of file rte_prefetch.h.

  __rte_experimental void rte_cldemote (const volatile void * p) [inline], [static]

Warning
    EXPERIMENTAL: this API may change, or be removed, without prior notice

Demote a cache line to a more distant level of cache from the processor. CLDEMOTE hints to hardware to move (demote) a cache line from the closest to the processor to a level more distant from the processor. It is a hint and not guaranteed. rte_cldemote is intended to move the cache line to the more remote cache, where it expects sharing to be efficient and to indicate that a line may be accessed by a different core in the future.

Parameters
    p Address to demote

Author

Generated automatically by Doxygen for DPDK from the source code.