env: add flag RING_F_EXACT_SZ to spdk_ring_create

This flag is needed to enssure that we can access all of the elements in
the ring. Otherwise we end up being able to access n-1 elements.

Change-Id: I7a9216e69c0599c662e96ddbf6ee79383b6d20dd
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448489
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2019-03-19 14:58:39 -07:00 committed by Darek Stojaczyk
parent 0cb3b8550a
commit a2248fd05d

View File

@ -358,17 +358,17 @@ spdk_ring_create(enum spdk_ring_type type, size_t count, int socket_id)
{
char ring_name[64];
static uint32_t ring_num = 0;
unsigned flags = 0;
unsigned flags = RING_F_EXACT_SZ;
switch (type) {
case SPDK_RING_TYPE_SP_SC:
flags = RING_F_SP_ENQ | RING_F_SC_DEQ;
flags |= RING_F_SP_ENQ | RING_F_SC_DEQ;
break;
case SPDK_RING_TYPE_MP_SC:
flags = RING_F_SC_DEQ;
flags |= RING_F_SC_DEQ;
break;
case SPDK_RING_TYPE_MP_MC:
flags = 0;
flags |= 0;
break;
default:
return NULL;