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:
parent
0cb3b8550a
commit
a2248fd05d
@ -358,17 +358,17 @@ spdk_ring_create(enum spdk_ring_type type, size_t count, int socket_id)
|
|||||||
{
|
{
|
||||||
char ring_name[64];
|
char ring_name[64];
|
||||||
static uint32_t ring_num = 0;
|
static uint32_t ring_num = 0;
|
||||||
unsigned flags = 0;
|
unsigned flags = RING_F_EXACT_SZ;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SPDK_RING_TYPE_SP_SC:
|
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;
|
break;
|
||||||
case SPDK_RING_TYPE_MP_SC:
|
case SPDK_RING_TYPE_MP_SC:
|
||||||
flags = RING_F_SC_DEQ;
|
flags |= RING_F_SC_DEQ;
|
||||||
break;
|
break;
|
||||||
case SPDK_RING_TYPE_MP_MC:
|
case SPDK_RING_TYPE_MP_MC:
|
||||||
flags = 0;
|
flags |= 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user