3. Ring Mempool Driver

rte_mempool_ring is a pure software mempool driver based on the rte_ring DPDK library. This is a default mempool driver. The following modes of operation are available for the ring mempool driver and can be selected via mempool ops API:

  • ring_mp_mc

    The underlying rte_ring operates in multi-thread producer, multi-thread consumer sync mode. For more information please refer to: MP/MC (default one).

  • ring_sp_sc

    The underlying rte_ring operates in single-thread producer, single-thread consumer sync mode. For more information please refer to: SP/SC.

  • ring_sp_mc

    The underlying rte_ring operates in single-thread producer, multi-thread consumer sync mode.

  • ring_mp_sc

    The underlying rte_ring operates in multi-thread producer, single-thread consumer sync mode.

  • ring_mt_rts

    For underlying rte_ring both producer and consumer operate in multi-thread Relaxed Tail Sync (RTS) mode. For more information please refer to: MP_RTS/MC_RTS.

  • ring_mt_hts

    For underlying rte_ring both producer and consumer operate in multi-thread Head-Tail Sync (HTS) mode. For more information please refer to: MP_HTS/MC_HTS.

For ‘classic’ DPDK deployments (with one thread per core) the ring_mp_mc mode is usually the most suitable and the fastest one. For overcommitted scenarios (multiple threads share same set of cores) the ring_mt_rts or ring_mt_hts modes usually provide a better alternative. For more information about rte_ring structure, behaviour and available synchronisation modes please refer to: Ring Library.