test mbuf attach
[dpdk.git] / doc / guides / mempool / ring.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2020 Intel Corporation.
3
4 Ring Mempool Driver
5 ===================
6
7 **rte_mempool_ring** is a pure software mempool driver based on the
8 ``rte_ring`` DPDK library. This is a default mempool driver.
9 The following modes of operation are available for the ring mempool driver
10 and can be selected via mempool ops API:
11
12 - ``ring_mp_mc``
13
14   The underlying **rte_ring** operates in multi-thread producer,
15   multi-thread consumer sync mode. For more information please refer to:
16   :ref:`Ring_Library_MPMC_Mode`.
17
18 - ``ring_sp_sc``
19
20   The underlying **rte_ring** operates in single-thread producer,
21   single-thread consumer sync mode. For more information please refer to:
22   :ref:`Ring_Library_SPSC_Mode`.
23
24 - ``ring_sp_mc``
25
26   The underlying **rte_ring** operates in single-thread producer,
27   multi-thread consumer sync mode.
28
29 - ``ring_mp_sc``
30
31   The underlying **rte_ring** operates in multi-thread producer,
32   single-thread consumer sync mode.
33
34 - ``ring_mt_rts``
35
36   For underlying **rte_ring** both producer and consumer operate in
37   multi-thread Relaxed Tail Sync (RTS) mode. For more information please
38   refer to: :ref:`Ring_Library_MT_RTS_Mode`.
39
40 - ``ring_mt_hts``
41
42   For underlying **rte_ring** both producer and consumer operate in
43   multi-thread Head-Tail Sync (HTS) mode. For more information please
44   refer to: :ref:`Ring_Library_MT_HTS_Mode`.
45
46
47 For 'classic' DPDK deployments (with one thread per core) the ``ring_mp_mc``
48 mode is usually the most suitable and the fastest one. For overcommitted
49 scenarios (multiple threads share same set of cores) the ``ring_mt_rts`` or
50 ``ring_mt_hts`` modes usually provide a better alternative.
51 For more information about ``rte_ring`` structure, behaviour and available
52 synchronisation modes please refer to: :doc:`../prog_guide/ring_lib`.