Scalable scheduler requires to allocate shm memory for each queue. This patch is to avoid shm namespace collisions and allow shm block per queue.
Signed-off-by: Kevin Wang <[email protected]> Reviewed-by: Ola Liljedahl <[email protected]> Reviewed-by: Brian Brooks <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> --- .../linux-generic/include/odp_config_internal.h | 2 +- .../api/classification/odp_classification_basic.c | 8 ++--- .../classification/odp_classification_test_pmr.c | 42 +++++++++++----------- test/common_plat/validation/api/timer/timer.c | 5 ++- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/platform/linux-generic/include/odp_config_internal.h b/platform/linux-generic/include/odp_config_internal.h index e7d84c9..a262d2e 100644 --- a/platform/linux-generic/include/odp_config_internal.h +++ b/platform/linux-generic/include/odp_config_internal.h @@ -104,7 +104,7 @@ extern "C" { * * This the the number of separate SHM areas that can be reserved concurrently */ -#define ODP_CONFIG_SHM_BLOCKS (ODP_CONFIG_POOLS + 48) +#define ODP_CONFIG_SHM_BLOCKS (ODP_CONFIG_POOLS + ODP_CONFIG_QUEUES + 48) /* * Maximum event burst size diff --git a/test/common_plat/validation/api/classification/odp_classification_basic.c b/test/common_plat/validation/api/classification/odp_classification_basic.c index 9817287..b5b9285 100644 --- a/test/common_plat/validation/api/classification/odp_classification_basic.c +++ b/test/common_plat/validation/api/classification/odp_classification_basic.c @@ -93,10 +93,10 @@ void classification_test_create_pmr_match(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("pmr_match", true); + queue = queue_create("pmr_match_queue", true); CU_ASSERT(queue != ODP_QUEUE_INVALID); - pool = pool_create("pmr_match"); + pool = pool_create("pmr_match_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); odp_cls_cos_param_init(&cls_param); @@ -277,10 +277,10 @@ void classification_test_pmr_composite_create(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("pmr_match", true); + queue = queue_create("pmr_match_queue", true); CU_ASSERT(queue != ODP_QUEUE_INVALID); - pool = pool_create("pmr_match"); + pool = pool_create("pmr_match_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); odp_cls_cos_param_init(&cls_param); diff --git a/test/common_plat/validation/api/classification/odp_classification_test_pmr.c b/test/common_plat/validation/api/classification/odp_classification_test_pmr.c index d952420..c1da515 100644 --- a/test/common_plat/validation/api/classification/odp_classification_test_pmr.c +++ b/test/common_plat/validation/api/classification/odp_classification_test_pmr.c @@ -121,10 +121,10 @@ void classification_test_pmr_term_tcp_dport(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("tcp_dport1", true); + queue = queue_create("tcp_dport1_queue", true); CU_ASSERT(queue != ODP_QUEUE_INVALID); - pool = pool_create("tcp_dport1"); + pool = pool_create("tcp_dport1_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "tcp_dport"); @@ -235,10 +235,10 @@ void classification_test_pmr_term_tcp_sport(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("tcp_sport", true); + queue = queue_create("tcp_sport_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("tcp_sport"); + pool = pool_create("tcp_sport_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "tcp_sport"); @@ -348,10 +348,10 @@ void classification_test_pmr_term_udp_dport(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("udp_dport", true); + queue = queue_create("udp_dport_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("udp_dport"); + pool = pool_create("udp_dport_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "udp_dport"); @@ -464,10 +464,10 @@ void classification_test_pmr_term_udp_sport(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("udp_sport", true); + queue = queue_create("udp_sport_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("udp_sport"); + pool = pool_create("udp_sport_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "udp_sport"); @@ -578,10 +578,10 @@ void classification_test_pmr_term_ipproto(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("ipproto", true); + queue = queue_create("ipproto_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("ipproto"); + pool = pool_create("ipproto_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "ipproto"); @@ -687,10 +687,10 @@ void classification_test_pmr_term_dmac(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("dmac", true); + queue = queue_create("dmac_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("dmac"); + pool = pool_create("dmac_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "dmac"); @@ -794,10 +794,10 @@ void classification_test_pmr_term_packet_len(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("packet_len", true); + queue = queue_create("packet_len_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("packet_len"); + pool = pool_create("packet_len_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "packet_len"); @@ -1355,10 +1355,10 @@ static void classification_test_pmr_pool_set(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("ipproto1", true); + queue = queue_create("ipproto1_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("ipproto1"); + pool = pool_create("ipproto1_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "ipproto1"); @@ -1454,10 +1454,10 @@ static void classification_test_pmr_queue_set(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("ipproto1", true); + queue = queue_create("ipproto1_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("ipproto1"); + pool = pool_create("ipproto1_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "ipproto1"); @@ -1469,7 +1469,7 @@ static void classification_test_pmr_queue_set(void) cos = odp_cls_cos_create(cosname, &cls_param); CU_ASSERT_FATAL(cos != ODP_COS_INVALID); - queue_new = queue_create("ipproto2", true); + queue_new = queue_create("ipproto2_queue", true); CU_ASSERT_FATAL(queue_new != ODP_QUEUE_INVALID); /* new queue is set on CoS */ @@ -1546,10 +1546,10 @@ static void classification_test_pmr_term_daddr(void) configure_default_cos(pktio, &default_cos, &default_queue, &default_pool); - queue = queue_create("daddr", true); + queue = queue_create("daddr_queue", true); CU_ASSERT_FATAL(queue != ODP_QUEUE_INVALID); - pool = pool_create("daddr"); + pool = pool_create("daddr_pool"); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); sprintf(cosname, "daddr"); diff --git a/test/common_plat/validation/api/timer/timer.c b/test/common_plat/validation/api/timer/timer.c index b7d84c6..83e785a 100644 --- a/test/common_plat/validation/api/timer/timer.c +++ b/test/common_plat/validation/api/timer/timer.c @@ -297,8 +297,11 @@ static int worker_entrypoint(void *arg TEST_UNUSED) struct timespec ts; uint32_t nstale; odp_timer_set_t timer_rc; + char name[ODP_QUEUE_NAME_LEN]; - queue = odp_queue_create("timer_queue", NULL); + snprintf(name, sizeof(name), "timer_queue_%d", thr); + + queue = odp_queue_create(name, NULL); if (queue == ODP_QUEUE_INVALID) CU_FAIL_FATAL("Queue create failed"); -- 2.7.4
