ethdev: insert Rx callback as head of list
[dpdk.git] / app / test / test_mempool_perf.c
index 86cba8a..c5e3576 100644 (file)
@@ -1,13 +1,13 @@
 /*-
  *   BSD LICENSE
- * 
+ *
  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
  *   All rights reserved.
- * 
+ *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
  *   are met:
- * 
+ *
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
  *     * Neither the name of Intel Corporation nor the names of its
  *       contributors may be used to endorse or promote products derived
  *       from this software without specific prior written permission.
- * 
+ *
  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -47,7 +47,6 @@
 #include <rte_memzone.h>
 #include <rte_launch.h>
 #include <rte_cycles.h>
-#include <rte_tailq.h>
 #include <rte_eal.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
@@ -95,7 +94,7 @@
 #define TIME_S 5
 #define MEMPOOL_ELT_SIZE 2048
 #define MAX_KEEP 128
-#define MEMPOOL_SIZE ((RTE_MAX_LCORE*(MAX_KEEP+RTE_MEMPOOL_CACHE_MAX_SIZE))-1)
+#define MEMPOOL_SIZE ((rte_lcore_count()*(MAX_KEEP+RTE_MEMPOOL_CACHE_MAX_SIZE))-1)
 
 static struct rte_mempool *mp;
 static struct rte_mempool *mp_cache, *mp_nocache;
@@ -111,7 +110,7 @@ static unsigned n_keep;
 
 /* number of enqueues / dequeues */
 struct mempool_test_stats {
-       unsigned enq_count;
+       uint64_t enq_count;
 } __rte_cache_aligned;
 
 static struct mempool_test_stats stats[RTE_MAX_LCORE];
@@ -161,8 +160,8 @@ per_lcore_mempool_test(__attribute__((unused)) void *arg)
                                ret = rte_mempool_get_bulk(mp, &obj_table[idx],
                                                           n_get_bulk);
                                if (unlikely(ret < 0)) {
-                                       rte_mempool_dump(mp);
-                                       rte_ring_dump(mp->ring);
+                                       rte_mempool_dump(stdout, mp);
+                                       rte_ring_dump(stdout, mp->ring);
                                        /* in this case, objects are lost... */
                                        return -1;
                                }
@@ -190,7 +189,7 @@ static int
 launch_cores(unsigned cores)
 {
        unsigned lcore_id;
-       unsigned rate;
+       uint64_t rate;
        int ret;
        unsigned cores_save = cores;
 
@@ -239,7 +238,7 @@ launch_cores(unsigned cores)
        for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++)
                rate += (stats[lcore_id].enq_count / TIME_S);
 
-       printf("rate_persec=%u\n", rate);
+       printf("rate_persec=%" PRIu64 "\n", rate);
 
        return 0;
 }
@@ -273,7 +272,7 @@ do_one_mempool_test(unsigned cores)
        return 0;
 }
 
-int
+static int
 test_mempool_perf(void)
 {
        rte_atomic32_init(&synchro);
@@ -325,7 +324,13 @@ test_mempool_perf(void)
        if (do_one_mempool_test(rte_lcore_count()) < 0)
                return -1;
 
-       rte_mempool_list_dump();
+       rte_mempool_list_dump(stdout);
 
        return 0;
 }
+
+static struct test_command mempool_perf_cmd = {
+       .command = "mempool_perf_autotest",
+       .callback = test_mempool_perf,
+};
+REGISTER_TEST_COMMAND(mempool_perf_cmd);