From: Petri Savolainen <petri.savolai...@linaro.org>

Use capability to check if pool and queue can hold enough events.
Also lower test case resource requirement.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
---
/** Email created from pull request 492 (psavol:master-sched-optim)
 ** https://github.com/Linaro/odp/pull/492
 ** Patch: https://github.com/Linaro/odp/pull/492.patch
 ** Base sha: 5a58bbf2bb331fd7dde2ebbc0430634ace6900fb
 ** Merge commit sha: b29563293c1bca56419d2dc355a8e64d961e024a
 **/
 helper/cuckootable.c      | 22 ++++++++++++++++++++++
 helper/test/cuckootable.c |  2 +-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/helper/cuckootable.c b/helper/cuckootable.c
index 29298d42d..5fe0034c0 100644
--- a/helper/cuckootable.c
+++ b/helper/cuckootable.c
@@ -184,6 +184,8 @@ odph_cuckoo_table_create(
 
        odp_queue_t queue;
        odp_queue_param_t qparam;
+       odp_queue_capability_t qcapa;
+       odp_pool_capability_t pcapa;
 
        char pool_name[ODPH_TABLE_NAME_LEN + 3],
                 queue_name[ODPH_TABLE_NAME_LEN + 3];
@@ -191,6 +193,26 @@ odph_cuckoo_table_create(
        uint32_t impl_size, kv_entry_size,
                         bucket_num, bucket_size;
 
+       if (odp_queue_capability(&qcapa)) {
+               ODPH_DBG("queue capa failed\n");
+               return NULL;
+       }
+
+       if (qcapa.plain.max_size && qcapa.plain.max_size < capacity) {
+               ODPH_DBG("queue max_size too small\n");
+               return NULL;
+       }
+
+       if (odp_pool_capability(&pcapa)) {
+               ODPH_DBG("pool capa failed\n");
+               return NULL;
+       }
+
+       if (pcapa.buf.max_num && pcapa.buf.max_num < capacity) {
+               ODPH_DBG("pool max_num too small\n");
+               return NULL;
+       }
+
        /* Check for valid parameters */
        if (
            (capacity > HASH_ENTRIES_MAX) ||
diff --git a/helper/test/cuckootable.c b/helper/test/cuckootable.c
index ebe791678..71c82cdc8 100644
--- a/helper/test/cuckootable.c
+++ b/helper/test/cuckootable.c
@@ -429,7 +429,7 @@ static int test_creation_with_bad_parameters(void)
        return 0;
 }
 
-#define PERFORMANCE_CAPACITY 1000000
+#define PERFORMANCE_CAPACITY 4000
 
 /*
  * Test the performance of cuckoo hash table.

Reply via email to