table of contents
rte_mcslock.h(3) | DPDK | rte_mcslock.h(3) |
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
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
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
me A pointer to a new node of MCS lock.
Returns
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
Returns
Definition at line 171 of file rte_mcslock.h.
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Fri Dec 15 2023 | Version 23.11.0 |