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

Reply via email to