examples: numa updates
authorIntel <intel.com>
Mon, 3 Jun 2013 00:00:00 +0000 (00:00 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 17 Sep 2013 12:16:09 +0000 (14:16 +0200)
Signed-off-by: Intel
12 files changed:
examples/dpdk_qat/main.c
examples/exception_path/main.c
examples/ipv4_frag/main.c
examples/ipv4_multicast/main.c
examples/l2fwd/main.c
examples/l3fwd/main.c
examples/link_status_interrupt/main.c
examples/multi_process/client_server_mp/mp_server/init.c
examples/multi_process/client_server_mp/mp_server/main.h
examples/multi_process/simple_mp/main.c
examples/multi_process/symmetric_mp/main.c
examples/vmdq_dcb/main.c

index 38f55a1..f4c388c 100644 (file)
@@ -98,8 +98,6 @@
 #define MAX_PKT_BURST 32
 #define BURST_TX_DRAIN 200000ULL /* around 100us at 2 Ghz */
 
-#define SOCKET0 0
-
 #define TX_QUEUE_FLUSH_MASK 0xFFFFFFFF
 #define TSC_COUNT_LIMIT 1000
 
index 70c1009..55bf58d 100644 (file)
@@ -79,9 +79,6 @@
 #define FATAL_ERROR(fmt, args...)       rte_exit(EXIT_FAILURE, fmt "\n", ##args)
 #define PRINT_INFO(fmt, args...)        RTE_LOG(INFO, APP, fmt "\n", ##args)
 
-/* NUMA socket to allocate mbuf pool on */
-#define SOCKET                  0
-
 /* Max ports than can be used (each port is associated with two lcores) */
 #define MAX_PORTS               (RTE_MAX_LCORE / 2)
 
@@ -457,13 +454,14 @@ init_port(uint8_t port)
                FATAL_ERROR("Could not configure port%u (%d)",
                            (unsigned)port, ret);
 
-       ret = rte_eth_rx_queue_setup(port, 0, NB_RXD, SOCKET, &rx_conf,
-                                    pktmbuf_pool);
+       ret = rte_eth_rx_queue_setup(port, 0, NB_RXD, rte_eth_dev_socket_id(port),
+                                 &rx_conf, pktmbuf_pool);
        if (ret < 0)
                FATAL_ERROR("Could not setup up RX queue for port%u (%d)",
                            (unsigned)port, ret);
 
-       ret = rte_eth_tx_queue_setup(port, 0, NB_TXD, SOCKET, &tx_conf);
+       ret = rte_eth_tx_queue_setup(port, 0, NB_TXD, rte_eth_dev_socket_id(port),
+                                 &tx_conf);
        if (ret < 0)
                FATAL_ERROR("Could not setup up TX queue for port%u (%d)",
                            (unsigned)port, ret);
@@ -557,7 +555,7 @@ main(int argc, char** argv)
                        MEMPOOL_CACHE_SZ,
                        sizeof(struct rte_pktmbuf_pool_private),
                        rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
-                       SOCKET, 0);
+                       rte_socket_id(), 0);
        if (pktmbuf_pool == NULL) {
                FATAL_ERROR("Could not initialise mbuf pool");
                return -1;
index f5285d8..a9d1705 100644 (file)
 #define MAX_PKT_BURST  32
 #define BURST_TX_DRAIN 200000ULL /* around 100us at 2 Ghz */
 
-#define SOCKET0 0
-
 /* Configure how many packets ahead to prefetch, when reading packets */
 #define PREFETCH_OFFSET        3
 
@@ -597,7 +595,7 @@ MAIN(int argc, char **argv)
                                   sizeof(struct rte_pktmbuf_pool_private),
                                   rte_pktmbuf_pool_init, NULL,
                                   rte_pktmbuf_init, NULL,
-                                  SOCKET0, 0);
+                                  rte_socket_id(), 0);
        if (pool_direct == NULL)
                rte_panic("Cannot init direct mbuf pool\n");
 
@@ -607,7 +605,7 @@ MAIN(int argc, char **argv)
                                   0,
                                   NULL, NULL,
                                   rte_pktmbuf_init, NULL,
-                                  SOCKET0, 0);
+                                  rte_socket_id(), 0);
        if (pool_indirect == NULL)
                rte_panic("Cannot init indirect mbuf pool\n");
 
@@ -671,7 +669,7 @@ MAIN(int argc, char **argv)
                printf("rxq=%d ", queueid);
                fflush(stdout);
                ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd,
-                                            SOCKET0, &rx_conf,
+                                            rte_eth_dev_socket_id(portid), &rx_conf,
                                             pool_direct);
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup: "
@@ -686,7 +684,7 @@ MAIN(int argc, char **argv)
                        printf("txq=%u,%d ", lcore_id, queueid);
                        fflush(stdout);
                        ret = rte_eth_tx_queue_setup(portid, queueid, nb_txd,
-                                                    SOCKET0, &tx_conf);
+                                                    rte_eth_dev_socket_id(portid), &tx_conf);
                        if (ret < 0)
                                rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup: "
                                        "err=%d, port=%d\n", ret, portid);
@@ -712,7 +710,7 @@ MAIN(int argc, char **argv)
        check_all_ports_link_status((uint8_t)nb_ports, enabled_port_mask);
 
        /* create the LPM table */
-       l3fwd_lpm = rte_lpm_create("L3FWD_LPM", SOCKET0, L3FWD_LPM_MAX_RULES, 0);
+       l3fwd_lpm = rte_lpm_create("L3FWD_LPM", rte_socket_id(), L3FWD_LPM_MAX_RULES, 0);
        if (l3fwd_lpm == NULL)
                rte_panic("Unable to create the l3fwd LPM table\n");
 
index 856dfa1..6201978 100644 (file)
 #define MAX_PKT_BURST 32
 #define BURST_TX_DRAIN 200000ULL /* around 100us at 2 Ghz */
 
-#define SOCKET0 0
-
 /* Configure how many packets ahead to prefetch, when reading packets */
 #define PREFETCH_OFFSET        3
 
@@ -205,7 +203,7 @@ static struct rte_fbk_hash_params mcast_hash_params = {
        .name = "MCAST_HASH",
        .entries = 1024,
        .entries_per_bucket = 4,
-       .socket_id = SOCKET0,
+       .socket_id = 0,
        .hash_func = NULL,
        .init_val = 0,
 };
@@ -638,6 +636,7 @@ init_mcast_hash(void)
 {
        uint32_t i;
 
+       mcast_hash_params.socket_id = rte_socket_id();
        mcast_hash = rte_fbk_hash_create(&mcast_hash_params);
        if (mcast_hash == NULL){
                return -1;
@@ -735,21 +734,21 @@ MAIN(int argc, char **argv)
        packet_pool = rte_mempool_create("packet_pool", NB_PKT_MBUF,
            PKT_MBUF_SIZE, 32, sizeof(struct rte_pktmbuf_pool_private),
            rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
-           SOCKET0, 0);
+           rte_socket_id(), 0);
 
        if (packet_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot init packet mbuf pool\n");
 
        header_pool = rte_mempool_create("header_pool", NB_HDR_MBUF,
            HDR_MBUF_SIZE, 32, 0, NULL, NULL, rte_pktmbuf_init, NULL,
-           SOCKET0, 0);
+           rte_socket_id(), 0);
 
        if (header_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot init header mbuf pool\n");
 
        clone_pool = rte_mempool_create("clone_pool", NB_CLONE_MBUF,
            CLONE_MBUF_SIZE, 32, 0, NULL, NULL, rte_pktmbuf_init, NULL,
-           SOCKET0, 0);
+           rte_socket_id(), 0);
 
        if (clone_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot init clone mbuf pool\n");
@@ -815,7 +814,7 @@ MAIN(int argc, char **argv)
                printf("rxq=%hu ", queueid);
                fflush(stdout);
                ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd,
-                                            SOCKET0, &rx_conf,
+                                            rte_eth_dev_socket_id(portid), &rx_conf,
                                             packet_pool);
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup: err=%d, port=%d\n",
@@ -830,7 +829,7 @@ MAIN(int argc, char **argv)
                        printf("txq=%u,%hu ", lcore_id, queueid);
                        fflush(stdout);
                        ret = rte_eth_tx_queue_setup(portid, queueid, nb_txd,
-                                                    SOCKET0, &tx_conf);
+                                                    rte_lcore_to_socket_id(lcore_id), &tx_conf);
                        if (ret < 0)
                                rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup: err=%d, "
                                          "port=%d\n", ret, portid);
index 9f5ba4b..13e7271 100644 (file)
 #define MAX_PKT_BURST 32
 #define BURST_TX_DRAIN 200000ULL /* around 100us at 2 Ghz */
 
-#define SOCKET0 0
-
 /*
  * Configurable number of RX/TX ring descriptors
  */
@@ -609,7 +607,7 @@ MAIN(int argc, char **argv)
                                   sizeof(struct rte_pktmbuf_pool_private),
                                   rte_pktmbuf_pool_init, NULL,
                                   rte_pktmbuf_init, NULL,
-                                  SOCKET0, 0);
+                                  rte_socket_id(), 0);
        if (l2fwd_pktmbuf_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot init mbuf pool\n");
 
@@ -709,10 +707,10 @@ MAIN(int argc, char **argv)
                        rte_exit(EXIT_FAILURE, "rte_eth_rx_queue_setup:err=%d, port=%u\n",
                                  ret, (unsigned) portid);
 
-               /* init one TX queue logical core on each port */
+               /* init one TX queue on each port */
                fflush(stdout);
                ret = rte_eth_tx_queue_setup(portid, 0, nb_txd,
-                               SOCKET0, &tx_conf);
+                               rte_eth_dev_socket_id(portid), &tx_conf);
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup:err=%d, port=%u\n",
                                ret, (unsigned) portid);
index 998093f..fae1d40 100755 (executable)
 
 #define NB_SOCKETS 8
 
-#define SOCKET0 0
-
 /* Configure how many packets ahead to prefetch, when reading packets */
 #define PREFETCH_OFFSET        3
 
@@ -323,7 +321,7 @@ struct rte_hash_parameters ipv4_l3fwd_hash_params = {
        .key_len = sizeof(struct ipv4_5tuple),
        .hash_func = DEFAULT_HASH_FUNC,
        .hash_func_init_val = 0,
-       .socket_id = SOCKET0,
+       .socket_id = 0,
 };
 
 struct rte_hash_parameters ipv6_l3fwd_hash_params = {
@@ -333,7 +331,7 @@ struct rte_hash_parameters ipv6_l3fwd_hash_params = {
        .key_len = sizeof(struct ipv6_5tuple),
        .hash_func = DEFAULT_HASH_FUNC,
        .hash_func_init_val = 0,
-       .socket_id = SOCKET0,
+       .socket_id = 0,
 };
 
 #define IPV4_L3FWD_NUM_ROUTES \
index aec84ea..0ac276f 100644 (file)
 #define MAX_PKT_BURST 32
 #define BURST_TX_DRAIN 200000ULL /* around 100us at 2 Ghz */
 
-#define SOCKET0 0
-
 /*
  * Configurable number of RX/TX ring descriptors
  */
@@ -663,7 +661,7 @@ MAIN(int argc, char **argv)
                                   sizeof(struct rte_pktmbuf_pool_private),
                                   rte_pktmbuf_pool_init, NULL,
                                   rte_pktmbuf_init, NULL,
-                                  SOCKET0, 0);
+                                  rte_socket_id(), 0);
        if (lsi_pktmbuf_pool == NULL)
                rte_panic("Cannot init mbuf pool\n");
 
@@ -762,7 +760,7 @@ MAIN(int argc, char **argv)
                /* init one RX queue */
                fflush(stdout);
                ret = rte_eth_rx_queue_setup(portid, 0, nb_rxd,
-                                            SOCKET0, &rx_conf,
+                                            rte_eth_dev_socket_id(portid), &rx_conf,
                                             lsi_pktmbuf_pool);
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "rte_eth_rx_queue_setup: err=%d, port=%u\n",
@@ -771,7 +769,7 @@ MAIN(int argc, char **argv)
                /* init one TX queue logical core on each port */
                fflush(stdout);
                ret = rte_eth_tx_queue_setup(portid, 0, nb_txd,
-                               SOCKET0, &tx_conf);
+                               rte_eth_dev_socket_id(portid), &tx_conf);
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup: err=%d,port=%u\n",
                                  ret, (unsigned) portid);
index 505ca6d..2abdfc0 100644 (file)
@@ -146,7 +146,7 @@ init_mbuf_pools(void)
        pktmbuf_pool = rte_mempool_create(PKTMBUF_POOL_NAME, num_mbufs,
                        MBUF_SIZE, MBUF_CACHE_SIZE,
                        sizeof(struct rte_pktmbuf_pool_private), rte_pktmbuf_pool_init,
-                       NULL, rte_pktmbuf_init, NULL, SOCKET0, NO_FLAGS );
+                       NULL, rte_pktmbuf_init, NULL, rte_socket_id(), NO_FLAGS );
 
        return (pktmbuf_pool == NULL); /* 0  on success */
 }
@@ -185,13 +185,13 @@ init_port(uint8_t port_num)
 
        for (q = 0; q < rx_rings; q++) {
                retval = rte_eth_rx_queue_setup(port_num, q, rx_ring_size,
-                               SOCKET0, &rx_conf_default, pktmbuf_pool);
+                               rte_eth_dev_socket_id(port_num), &rx_conf_default, pktmbuf_pool);
                if (retval < 0) return retval;
        }
 
        for ( q = 0; q < tx_rings; q ++ ) {
                retval = rte_eth_tx_queue_setup(port_num, q, tx_ring_size,
-                               SOCKET0, &tx_conf_default);
+                               rte_eth_dev_socket_id(port_num), &tx_conf_default);
                if (retval < 0) return retval;
        }
 
@@ -214,6 +214,8 @@ static int
 init_shm_rings(void)
 {
        unsigned i;
+       unsigned socket_id;
+       const char * q_name;
        const unsigned ringsize = CLIENT_QUEUE_RINGSIZE;
 
        clients = rte_malloc("client details",
@@ -223,8 +225,10 @@ init_shm_rings(void)
 
        for (i = 0; i < num_clients; i++) {
                /* Create an RX queue for each client */
-               clients[i].rx_q = rte_ring_create(get_rx_queue_name(i),
-                               ringsize, SOCKET0,
+               socket_id = rte_socket_id();
+               q_name = get_rx_queue_name(i);
+               clients[i].rx_q = rte_ring_create(q_name,
+                               ringsize, socket_id,
                                RING_F_SP_ENQ | RING_F_SC_DEQ ); /* single prod, single cons */
                if (clients[i].rx_q == NULL)
                        rte_exit(EXIT_FAILURE, "Cannot create rx ring queue for client %u\n", i);
index eef8974..d7ee4e4 100644 (file)
@@ -35,9 +35,6 @@
 #ifndef _MAIN_H_
 #define _MAIN_H_
 
-#define SOCKET0 0
-#define SOCKET1 1
-
 #ifdef RTE_EXEC_ENV_BAREMETAL
 #define MAIN _main
 #else
index d018d9b..585b43a 100644 (file)
@@ -75,8 +75,6 @@
 
 #define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
 
-#define SOCKET0 0
-
 static const char *_MSG_POOL = "MSG_POOL";
 static const char *_SEC_2_PRI = "SEC_2_PRI";
 static const char *_PRI_2_SEC = "PRI_2_SEC";
@@ -122,12 +120,12 @@ main(int argc, char **argv)
                rte_exit(EXIT_FAILURE, "Cannot init EAL\n");
 
        if (rte_eal_process_type() == RTE_PROC_PRIMARY){
-               send_ring = rte_ring_create(_PRI_2_SEC, ring_size, SOCKET0, flags);
-               recv_ring = rte_ring_create(_SEC_2_PRI, ring_size, SOCKET0, flags);
+               send_ring = rte_ring_create(_PRI_2_SEC, ring_size, rte_socket_id(), flags);
+               recv_ring = rte_ring_create(_SEC_2_PRI, ring_size, rte_socket_id(), flags);
                message_pool = rte_mempool_create(_MSG_POOL, pool_size,
                                string_size, pool_cache, priv_data_sz,
                                NULL, NULL, NULL, NULL,
-                               SOCKET0, flags);
+                               rte_socket_id(), flags);
        } else {
                recv_ring = rte_ring_lookup(_PRI_2_SEC);
                send_ring = rte_ring_lookup(_SEC_2_PRI);
index efd6a47..4f1946b 100644 (file)
@@ -80,8 +80,6 @@
 
 #define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
 
-#define SOCKET0 0
-
 #define MBUF_SIZE (2048 + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)
 #define NB_MBUFS 64*1024 /* use 64k mbufs */
 #define MBUF_CACHE_SIZE 256
@@ -280,7 +278,7 @@ smp_port_init(uint8_t port, struct rte_mempool *mbuf_pool, uint16_t num_queues)
 
        for (q = 0; q < rx_rings; q ++) {
                retval = rte_eth_rx_queue_setup(port, q, RX_RING_SIZE,
-                               SOCKET0, &rx_conf_default,
+                               rte_eth_dev_socket_id(port), &rx_conf_default,
                                mbuf_pool);
                if (retval < 0)
                        return retval;
@@ -288,7 +286,7 @@ smp_port_init(uint8_t port, struct rte_mempool *mbuf_pool, uint16_t num_queues)
 
        for (q = 0; q < tx_rings; q ++) {
                retval = rte_eth_tx_queue_setup(port, q, RX_RING_SIZE,
-                               SOCKET0, &tx_conf_default);
+                               rte_eth_dev_socket_id(port), &tx_conf_default);
                if (retval < 0)
                        return retval;
        }
@@ -482,7 +480,7 @@ main(int argc, char **argv)
                                        MBUF_CACHE_SIZE, sizeof(struct rte_pktmbuf_pool_private),
                                        rte_pktmbuf_pool_init, NULL,
                                        rte_pktmbuf_init, NULL,
-                                       SOCKET0, 0);
+                                       rte_socket_id(), 0);
        if (mp == NULL)
                rte_exit(EXIT_FAILURE, "Cannot get memory pool for buffers\n");
 
index 0b17875..7c744ef 100644 (file)
@@ -74,9 +74,6 @@
 #include "main.h"
 
 /* basic constants used in application */
-#define SOCKET0 0
-#define SOCKET1 1
-
 #define NUM_QUEUES 128
 
 #define NUM_MBUFS 64*1024
@@ -211,7 +208,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
 
        for (q = 0; q < rxRings; q ++) {
                retval = rte_eth_rx_queue_setup(port, q, rxRingSize,
-                                               SOCKET0, &rx_conf_default,
+                                               rte_eth_dev_socket_id(port), &rx_conf_default,
                                                mbuf_pool);
                if (retval < 0)
                        return retval;
@@ -219,7 +216,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
 
        for (q = 0; q < txRings; q ++) {
                retval = rte_eth_tx_queue_setup(port, q, txRingSize,
-                                               SOCKET0, &tx_conf_default);
+                                               rte_eth_dev_socket_id(port), &tx_conf_default);
                if (retval < 0)
                        return retval;
        }
@@ -388,7 +385,7 @@ MAIN(int argc, char *argv[])
                                       sizeof(struct rte_pktmbuf_pool_private),
                                       rte_pktmbuf_pool_init, NULL,
                                       rte_pktmbuf_init, NULL,
-                                      SOCKET0, 0);
+                                      rte_socket_id(), 0);
        if (mbuf_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot create mbuf pool\n");