From: Thomas Monjalon <thomas@monjalon.net>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 2/2] examples/ethtool: allocate only one mempool
Date: Wed, 13 Mar 2019 11:09:10 +0100 [thread overview]
Message-ID: <20190313100910.31260-3-thomas@monjalon.net> (raw)
In-Reply-To: <20190313100910.31260-1-thomas@monjalon.net>
No need to allocate one mempool per port.
The number of mbufs is fixed for simplicity.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
examples/ethtool/ethtool-app/main.c | 32 ++++++++---------------------
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c
index e23d3afd2..e7185ca79 100644
--- a/examples/ethtool/ethtool-app/main.c
+++ b/examples/ethtool/ethtool-app/main.c
@@ -22,7 +22,7 @@
#define MAX_BURST_LENGTH 32
#define PORT_RX_QUEUE_SIZE 1024
#define PORT_TX_QUEUE_SIZE 1024
-#define PKTPOOL_EXTRA_SIZE 512
+#define NUM_MBUFS 8191
#define PKTPOOL_CACHE 32
@@ -38,7 +38,6 @@ struct app_port {
int port_active;
int port_dirty;
int idx_port;
- struct rte_mempool *pkt_pool;
};
struct app_config {
@@ -89,36 +88,23 @@ void mark_port_newmac(int idx_port)
static void setup_ports(struct app_config *app_cfg, int cnt_ports)
{
int idx_port;
- int size_pktpool;
struct rte_eth_conf cfg_port;
- struct rte_eth_dev_info dev_info;
- char str_name[16];
uint16_t nb_rxd = PORT_RX_QUEUE_SIZE;
uint16_t nb_txd = PORT_TX_QUEUE_SIZE;
+ struct rte_mempool *pkt_pool;
memset(&cfg_port, 0, sizeof(cfg_port));
cfg_port.txmode.mq_mode = ETH_MQ_TX_NONE;
+ pkt_pool = rte_pktmbuf_pool_create("mbuf pool",
+ NUM_MBUFS, PKTPOOL_CACHE, 0, RTE_MBUF_DEFAULT_BUF_SIZE,
+ rte_socket_id());
+ if (pkt_pool == NULL)
+ rte_exit(EXIT_FAILURE, "rte_pktmbuf_pool_create failed");
+
for (idx_port = 0; idx_port < cnt_ports; idx_port++) {
struct app_port *ptr_port = &app_cfg->ports[idx_port];
- rte_eth_dev_info_get(idx_port, &dev_info);
- size_pktpool = dev_info.rx_desc_lim.nb_max +
- dev_info.tx_desc_lim.nb_max + PKTPOOL_EXTRA_SIZE;
-
- snprintf(str_name, 16, "pkt_pool%i", idx_port);
- ptr_port->pkt_pool = rte_pktmbuf_pool_create(
- str_name,
- size_pktpool, PKTPOOL_CACHE,
- 0,
- RTE_MBUF_DEFAULT_BUF_SIZE,
- rte_socket_id()
- );
- if (ptr_port->pkt_pool == NULL)
- rte_exit(EXIT_FAILURE,
- "rte_pktmbuf_pool_create failed"
- );
-
printf("Init port %i..\n", idx_port);
ptr_port->port_active = 1;
ptr_port->port_dirty = 0;
@@ -135,7 +121,7 @@ static void setup_ports(struct app_config *app_cfg, int cnt_ports)
if (rte_eth_rx_queue_setup(
idx_port, 0, nb_rxd,
rte_eth_dev_socket_id(idx_port), NULL,
- ptr_port->pkt_pool) < 0)
+ pkt_pool) < 0)
rte_exit(EXIT_FAILURE,
"rte_eth_rx_queue_setup failed"
);
--
2.20.1
next prev parent reply other threads:[~2019-03-13 10:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-13 10:09 [dpdk-dev] [PATCH 0/2] examples/ethtool: remove useless device info query Thomas Monjalon
2019-03-13 10:09 ` [dpdk-dev] [PATCH 1/2] examples/ethtool: remove query of default config Thomas Monjalon
2019-03-13 10:32 ` Bruce Richardson
2019-03-13 17:41 ` Rami Rosen
2019-03-20 13:46 ` Ferruh Yigit
2019-03-20 13:46 ` Ferruh Yigit
2019-03-20 13:51 ` Thomas Monjalon
2019-03-20 13:51 ` Thomas Monjalon
2019-03-20 13:56 ` Ferruh Yigit
2019-03-20 13:56 ` Ferruh Yigit
2019-03-20 14:05 ` Thomas Monjalon
2019-03-20 14:05 ` Thomas Monjalon
2019-03-13 10:09 ` Thomas Monjalon [this message]
2019-03-13 10:34 ` [dpdk-dev] [PATCH 2/2] examples/ethtool: allocate only one mempool Bruce Richardson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190313100910.31260-3-thomas@monjalon.net \
--to=thomas@monjalon.net \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).