Provided by: dpdk-doc_24.11.2-2_all 

NAME
rte_mcslock.h
SYNOPSIS
#include <rte_lcore.h> #include <rte_common.h> #include <rte_pause.h> #include <rte_branch_prediction.h> #include <rte_stdatomic.h> Data Structures struct rte_mcslock Typedefs typedef struct rte_mcslock rte_mcslock_t Functions static void rte_mcslock_lock (1(rte_mcslock_t *) *msl, rte_mcslock_t *me) static void rte_mcslock_unlock (1(rte_mcslock_t *) *msl, 1(rte_mcslock_t *) me) static int rte_mcslock_trylock (1(rte_mcslock_t *) *msl, rte_mcslock_t *me) static int rte_mcslock_is_locked (1(rte_mcslock_t *) msl)
Detailed Description
RTE MCS lock This file defines the main data structure and APIs for MCS queued lock. The MCS lock (proposed by John M. Mellor-Crummey and Michael L. Scott) provides scalability by spinning on a CPU/thread local variable which avoids expensive cache bouncings. It provides fairness by maintaining a list of acquirers and passing the lock to each CPU/thread in the order they acquired the lock. Definition in file rte_mcslock.h.
Typedef Documentation
typedef struct rte_mcslock rte_mcslock_t The rte_mcslock_t type.
Function Documentation
static void rte_mcslock_lock (1(rte_mcslock_t *) * msl, rte_mcslock_t * me) [inline], [static] Take the MCS lock. Parameters msl A pointer to the pointer of a MCS lock. When the lock is initialized or declared, the msl pointer should be set to NULL. me A pointer to a new node of MCS lock. Each CPU/thread acquiring the lock should use its 'own node'. Definition at line 52 of file rte_mcslock.h. static void rte_mcslock_unlock (1(rte_mcslock_t *) * msl, 1(rte_mcslock_t *) me) [inline], [static] Release the MCS lock. Parameters msl A pointer to the pointer of a MCS lock. me A pointer to the node of MCS lock passed in rte_mcslock_lock. Definition at line 104 of file rte_mcslock.h. static int rte_mcslock_trylock (1(rte_mcslock_t *) * msl, rte_mcslock_t * me) [inline], [static] Try to take the lock. Parameters msl A pointer to the pointer of a MCS lock. me A pointer to a new node of MCS lock. Returns 1 if the lock is successfully taken; 0 otherwise. Definition at line 144 of file rte_mcslock.h. static int rte_mcslock_is_locked (1(rte_mcslock_t *) msl) [inline], [static] Test if the lock is taken. Parameters msl A pointer to a MCS lock node. Returns 1 if the lock is currently taken; 0 otherwise. Definition at line 171 of file rte_mcslock.h.
Author
Generated automatically by Doxygen for DPDK from the source code. DPDK Version 24.11.2 rte_mcslock.h(3)