env: add single-producer, single-consumer ring type
This case will be used in incoming vhost patches. Change-Id: I62d569c01e9b8bf25c9293dff827d1b4406cea04 Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/362334 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
fadfd84920
commit
8557b1c2c5
@ -230,6 +230,7 @@ void spdk_delay_us(unsigned int us);
|
|||||||
struct spdk_ring;
|
struct spdk_ring;
|
||||||
|
|
||||||
enum spdk_ring_type {
|
enum spdk_ring_type {
|
||||||
|
SPDK_RING_TYPE_SP_SC, /* Single-producer, single-consumer */
|
||||||
SPDK_RING_TYPE_MP_SC, /* Multi-producer, single-consumer */
|
SPDK_RING_TYPE_MP_SC, /* Multi-producer, single-consumer */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -264,15 +264,23 @@ spdk_ring_create(enum spdk_ring_type type, size_t count, size_t ele_size, int so
|
|||||||
{
|
{
|
||||||
char ring_name[64];
|
char ring_name[64];
|
||||||
static uint32_t ring_num = 0;
|
static uint32_t ring_num = 0;
|
||||||
|
unsigned flags = 0;
|
||||||
|
|
||||||
if (type != SPDK_RING_TYPE_MP_SC) {
|
switch (type) {
|
||||||
|
case SPDK_RING_TYPE_SP_SC:
|
||||||
|
flags = RING_F_SP_ENQ | RING_F_SC_DEQ;
|
||||||
|
break;
|
||||||
|
case SPDK_RING_TYPE_MP_SC:
|
||||||
|
flags = RING_F_SC_DEQ;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(ring_name, sizeof(ring_name), "spdk_ring_%u",
|
snprintf(ring_name, sizeof(ring_name), "spdk_ring_%u",
|
||||||
__sync_fetch_and_add(&ring_num, 1));
|
__sync_fetch_and_add(&ring_num, 1));
|
||||||
|
|
||||||
return (struct spdk_ring *)rte_ring_create(ring_name, count, socket_id, RING_F_SC_DEQ);
|
return (struct spdk_ring *)rte_ring_create(ring_name, count, socket_id, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user