[dpdk-dev] [PATCH] examples: do not probe pci twice
Thomas Monjalon
thomas.monjalon at 6wind.com
Fri Sep 26 14:31:24 CEST 2014
Since commit a155d430119 ("support link bonding device initialization"),
rte_eal_pci_probe() is called in rte_eal_init().
So it doesn't have to be called by application anymore.
It has been fixed for testpmd in commit 2950a769315,
and this patch remove it from other applications.
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
app/test-pipeline/init.c | 5 ---
app/test/test_kni.c | 5 ---
examples/dpdk_qat/main.c | 3 --
examples/exception_path/main.c | 5 ---
examples/ip_fragmentation/main.c | 3 --
examples/ip_pipeline/init.c | 5 ---
examples/ip_reassembly/main.c | 3 --
examples/ipv4_multicast/main.c | 3 --
examples/kni/main.c | 5 ---
examples/l2fwd-ivshmem/host/host.c | 3 --
examples/l2fwd/main.c | 3 --
examples/l3fwd-acl/main.c | 3 --
examples/l3fwd-power/main.c | 3 --
examples/l3fwd-vf/main.c | 3 --
examples/l3fwd/main.c | 4 --
examples/link_status_interrupt/main.c | 3 --
examples/load_balancer/init.c | 4 --
.../client_server_mp/mp_client/client.c | 3 --
.../client_server_mp/mp_server/init.c | 6 ---
.../client_server_mp/shared/init_drivers.h | 49 ----------------------
examples/multi_process/l2fwd_fork/main.c | 3 --
examples/multi_process/symmetric_mp/main.c | 6 +--
examples/netmap_compat/bridge/bridge.c | 4 --
examples/qos_meter/main.c | 3 --
examples/qos_sched/init.c | 3 --
examples/quota_watermark/qw/init.c | 7 ----
examples/vhost/main.c | 3 --
examples/vhost_xen/main.c | 3 --
examples/vmdq/main.c | 3 --
29 files changed, 2 insertions(+), 154 deletions(-)
delete mode 100644 examples/multi_process/client_server_mp/shared/init_drivers.h
diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c
index a4337d0..17b6d23 100644
--- a/app/test-pipeline/init.c
+++ b/app/test-pipeline/init.c
@@ -228,11 +228,6 @@ app_init_ports(void)
{
uint32_t i;
- /* Init driver */
- RTE_LOG(INFO, USER1, "Initializing the PMD driver ...\n");
- if (rte_eal_pci_probe() < 0)
- rte_panic("Cannot probe PCI\n");
-
/* Init NIC ports, then start the ports */
for (i = 0; i < app.n_ports; i++) {
uint8_t port;
diff --git a/app/test/test_kni.c b/app/test/test_kni.c
index 2860bf3..1081131 100644
--- a/app/test/test_kni.c
+++ b/app/test/test_kni.c
@@ -508,11 +508,6 @@ test_kni(void)
printf("fail to create mempool for kni\n");
return -1;
}
- ret = rte_eal_pci_probe();
- if (ret < 0) {
- printf("fail to probe PCI devices\n");
- return -1;
- }
nb_ports = rte_eth_dev_count();
if (nb_ports == 0) {
diff --git a/examples/dpdk_qat/main.c b/examples/dpdk_qat/main.c
index 1599a0a..c130ea3 100644
--- a/examples/dpdk_qat/main.c
+++ b/examples/dpdk_qat/main.c
@@ -696,9 +696,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
return -1;
- if (rte_eal_pci_probe() < 0)
- rte_panic("Cannot probe PCI\n");
-
if (check_lcore_params() < 0)
rte_panic("check_lcore_params failed\n");
diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c
index f286bf2..b485976 100644
--- a/examples/exception_path/main.c
+++ b/examples/exception_path/main.c
@@ -567,11 +567,6 @@ main(int argc, char** argv)
return -1;
}
- /* Scan PCI bus for recognised devices */
- ret = rte_eal_pci_probe();
- if (ret < 0)
- FATAL_ERROR("Could not probe PCI (%d)", ret);
-
/* Get number of ports found in scan */
nb_sys_ports = rte_eth_dev_count();
if (nb_sys_ports == 0)
diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index 6d309b5..75028ac 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -871,9 +871,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid arguments");
- if (rte_eal_pci_probe() < 0)
- rte_panic("Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index e3ebd46..cb7568b 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -474,11 +474,6 @@ app_init_ports(void)
{
uint32_t i;
- /* Init driver */
- RTE_LOG(INFO, USER1, "Initializing the PMD driver ...\n");
- if (rte_eal_pci_probe() < 0)
- rte_panic("Cannot probe PCI\n");
-
/* Init NIC ports, then start the ports */
for (i = 0; i < app.n_ports; i++) {
uint32_t port;
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index b6b4f59..9ba3f0a 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -1078,9 +1078,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid IP reassembly parameters\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index 35bd842..5c2ab86 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -754,9 +754,6 @@ MAIN(int argc, char **argv)
if (clone_pool == NULL)
rte_exit(EXIT_FAILURE, "Cannot init clone mbuf pool\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports == 0)
rte_exit(EXIT_FAILURE, "No physical ports!\n");
diff --git a/examples/kni/main.c b/examples/kni/main.c
index 7df1b36..69d1ef2 100644
--- a/examples/kni/main.c
+++ b/examples/kni/main.c
@@ -889,11 +889,6 @@ main(int argc, char** argv)
return -1;
}
- /* Scan PCI bus for recognised devices */
- ret = rte_eal_pci_probe();
- if (ret < 0)
- rte_exit(EXIT_FAILURE, "Could not probe PCI (%d)\n", ret);
-
/* Get number of ports found in scan */
nb_sys_ports = rte_eth_dev_count();
if (nb_sys_ports == 0)
diff --git a/examples/l2fwd-ivshmem/host/host.c b/examples/l2fwd-ivshmem/host/host.c
index 02e65b9..1800b3a 100644
--- a/examples/l2fwd-ivshmem/host/host.c
+++ b/examples/l2fwd-ivshmem/host/host.c
@@ -716,9 +716,6 @@ int main(int argc, char **argv)
if (l2fwd_ivshmem_pktmbuf_pool == NULL)
rte_exit(EXIT_FAILURE, "Cannot init mbuf pool\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports == 0)
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 4069d7c..e16c914 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -615,9 +615,6 @@ MAIN(int argc, char **argv)
if (l2fwd_pktmbuf_pool == NULL)
rte_exit(EXIT_FAILURE, "Cannot init mbuf pool\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports == 0)
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
index bafd26a..4dd6b34 100644
--- a/examples/l3fwd-acl/main.c
+++ b/examples/l3fwd-acl/main.c
@@ -1995,9 +1995,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "init_lcore_rx_queues failed\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index a9d5c80..3bf63ff 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -1547,9 +1547,6 @@ MAIN(int argc, char **argv)
rte_exit(EXIT_FAILURE, "init_lcore_rx_queues failed\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c
index 7b1e08a..f567aa8 100644
--- a/examples/l3fwd-vf/main.c
+++ b/examples/l3fwd-vf/main.c
@@ -1007,9 +1007,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "init_lcore_rx_queues failed\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index e3e3463..01220e3 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -2474,10 +2474,6 @@ MAIN(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "init_lcore_rx_queues failed\n");
-
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports > RTE_MAX_ETHPORTS)
nb_ports = RTE_MAX_ETHPORTS;
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 1a87551..b8b7571 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -663,9 +663,6 @@ MAIN(int argc, char **argv)
if (lsi_pktmbuf_pool == NULL)
rte_panic("Cannot init mbuf pool\n");
- if (rte_eal_pci_probe() < 0)
- rte_panic("Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports == 0)
rte_panic("No Ethernet port - bye\n");
diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c
index 2f00a70..a300706 100644
--- a/examples/load_balancer/init.c
+++ b/examples/load_balancer/init.c
@@ -450,10 +450,6 @@ app_init_nics(void)
int ret;
uint32_t n_rx_queues, n_tx_queues;
- if (rte_eal_pci_probe() < 0) {
- rte_panic("Cannot probe PCI\n");
- }
-
/* Init NIC ports and queues, then start the ports */
for (port = 0; port < APP_MAX_NIC_PORTS; port ++) {
struct rte_mempool *pool;
diff --git a/examples/multi_process/client_server_mp/mp_client/client.c b/examples/multi_process/client_server_mp/mp_client/client.c
index ee2338c..af8f819 100644
--- a/examples/multi_process/client_server_mp/mp_client/client.c
+++ b/examples/multi_process/client_server_mp/mp_client/client.c
@@ -65,7 +65,6 @@
#include <rte_string_fns.h>
#include "common.h"
-#include "init_drivers.h"
/* Number of packets to attempt to read from queue */
#define PKT_READ_SIZE ((uint16_t)32)
@@ -240,8 +239,6 @@ main(int argc, char *argv[])
if (parse_app_args(argc, argv) < 0)
rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n");
- if (init_drivers() < 0)
- rte_exit(EXIT_FAILURE, "Cannot get NIC ports\n");
if (rte_eth_dev_count() == 0)
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
diff --git a/examples/multi_process/client_server_mp/mp_server/init.c b/examples/multi_process/client_server_mp/mp_server/init.c
index a84d1ee..30518c0 100644
--- a/examples/multi_process/client_server_mp/mp_server/init.c
+++ b/examples/multi_process/client_server_mp/mp_server/init.c
@@ -66,7 +66,6 @@
#include <rte_cycles.h>
#include "common.h"
-#include "init_drivers.h"
#include "args.h"
#include "init.h"
#include "main.h"
@@ -308,11 +307,6 @@ init(int argc, char *argv[])
argc -= retval;
argv += retval;
- /* initialise the nic drivers */
- retval = init_drivers();
- if (retval != 0)
- rte_exit(EXIT_FAILURE, "Cannot initialise drivers\n");
-
/* get total number of ports */
total_ports = rte_eth_dev_count();
diff --git a/examples/multi_process/client_server_mp/shared/init_drivers.h b/examples/multi_process/client_server_mp/shared/init_drivers.h
deleted file mode 100644
index 3c9881f..0000000
--- a/examples/multi_process/client_server_mp/shared/init_drivers.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * 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
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * 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
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _INIT_DRIVERS_H_
-#define _INIT_DRIVERS_H_
-
-/**
- * Initialise all 1G and 10G NICs available
- */
-static inline int
-init_drivers(void)
-{
- if (rte_eal_pci_probe() < 0)
- return -1;
-
- return 0;
-}
-
-#endif
diff --git a/examples/multi_process/l2fwd_fork/main.c b/examples/multi_process/l2fwd_fork/main.c
index 03fba55..c887b63 100644
--- a/examples/multi_process/l2fwd_fork/main.c
+++ b/examples/multi_process/l2fwd_fork/main.c
@@ -1050,9 +1050,6 @@ MAIN(int argc, char **argv)
for (i = 0; i < RTE_MAX_LCORE; i++)
lcore_resource[i].lcore_id = i;
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
nb_ports = rte_eth_dev_count();
if (nb_ports == 0)
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index b8f31b3..504a27a 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -461,16 +461,14 @@ main(int argc, char **argv)
argc -= ret;
argv += ret;
- /* probe to determine the NIC devices available */
- proc_type = rte_eal_process_type();
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
+ /* determine the NIC devices available */
if (rte_eth_dev_count() == 0)
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
/* parse application arguments (those after the EAL ones) */
smp_parse_args(argc, argv);
+ proc_type = rte_eal_process_type();
mp = (proc_type == RTE_PROC_SECONDARY) ?
rte_mempool_lookup(_SMP_MBUF_POOL) :
rte_mempool_create(_SMP_MBUF_POOL, NB_MBUFS, MBUF_SIZE,
diff --git a/examples/netmap_compat/bridge/bridge.c b/examples/netmap_compat/bridge/bridge.c
index 898277e..d9ceb42 100644
--- a/examples/netmap_compat/bridge/bridge.c
+++ b/examples/netmap_compat/bridge/bridge.c
@@ -294,10 +294,6 @@ int main(int argc, char *argv[])
if (ports.num == 0)
rte_exit(EXIT_FAILURE, "no ports specified\n");
- err = rte_eal_pci_probe();
- if (err < 0)
- rte_exit(EXIT_FAILURE, "rte_eal_pci_probe(): error %d\n", err);
-
if (rte_eth_dev_count() < 1)
rte_exit(EXIT_FAILURE, "Not enough ethernet ports available\n");
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index b4b8c4f..c02ac50 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -386,9 +386,6 @@ MAIN(int argc, char **argv)
if (pool == NULL)
rte_exit(EXIT_FAILURE, "Buffer pool creation error\n");
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "PCI probe error\n");
-
/* NIC init */
ret = rte_eth_dev_configure(port_rx, 1, 1, &port_conf);
if (ret < 0)
diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
index cbfd63f..f38802e 100644
--- a/examples/qos_sched/init.c
+++ b/examples/qos_sched/init.c
@@ -304,9 +304,6 @@ int app_init(void)
char ring_name[MAX_NAME_LEN];
char pool_name[MAX_NAME_LEN];
- if (rte_eal_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
if (rte_eth_dev_count() == 0)
rte_exit(EXIT_FAILURE, "No Ethernet port - bye\n");
diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c
index a7f8c85..9bc5db3 100644
--- a/examples/quota_watermark/qw/init.c
+++ b/examples/quota_watermark/qw/init.c
@@ -136,13 +136,6 @@ void configure_eth_port(uint8_t port_id)
void
init_dpdk(void)
{
- int ret;
-
- /* Bind the drivers to usable devices */
- ret = rte_eal_pci_probe();
- if (ret < 0)
- rte_exit(EXIT_FAILURE, "rte_eal_pci_probe(): error %d\n", ret);
-
if (rte_eth_dev_count() < 2)
rte_exit(EXIT_FAILURE, "Not enough ethernet port available\n");
}
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 85ee8b8..c81b8f5 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -3549,9 +3549,6 @@ MAIN(int argc, char *argv[])
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid argument\n");
- if (rte_eal_pci_probe() != 0)
- rte_exit(EXIT_FAILURE, "Error with NIC driver initialization\n");
-
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id ++)
if (rte_lcore_is_enabled(lcore_id))
lcore_ids[core_id ++] = lcore_id;
diff --git a/examples/vhost_xen/main.c b/examples/vhost_xen/main.c
index 56ffec8..498de06 100644
--- a/examples/vhost_xen/main.c
+++ b/examples/vhost_xen/main.c
@@ -1466,9 +1466,6 @@ MAIN(int argc, char *argv[])
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid argument\n");
- if (rte_eal_pci_probe() != 0)
- rte_exit(EXIT_FAILURE, "Error with NIC driver initialization\n");
-
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id ++)
if (rte_lcore_is_enabled(lcore_id))
lcore_ids[core_id ++] = lcore_id;
diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index 35df234..a162d8b 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -597,9 +597,6 @@ MAIN(int argc, char *argv[])
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid VMDQ argument\n");
- if (rte_eal_pci_probe() != 0)
- rte_exit(EXIT_FAILURE, "Error with NIC driver initialization\n");
-
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id ++)
if (rte_lcore_is_enabled(lcore_id))
lcore_ids[core_id ++] = lcore_id;
--
2.0.4
More information about the dev
mailing list