[dpdk-dev] [PATCH v2 12/18] eal: add generic device declaration parameter
Gaetan Rivet
gaetan.rivet at 6wind.com
Thu Oct 12 10:21:19 CEST 2017
Add a new generic device declaration parameter:
--dev=<device_declaration>
That allows to declare device from any bus. The format is as follows:
device_declaration := <bus><c><device>[,arg_list]
bus := bus name
c := arbitrary character separator
device := device name (PCI location, virtual PMD name, ...)
arg_list := key value list: key1=val1[,key2=val2[,...]]
The bus name is mandatory. The character separator can be anything.
The device name is mandatory. The argument list is optional.
Examples:
--dev=pci:0000:05:00.0,port=1
--dev=vdev_net_ring0
Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
---
lib/librte_eal/common/eal_common_options.c | 19 +++++++++++++++++++
lib/librte_eal/common/eal_options.h | 2 ++
2 files changed, 21 insertions(+)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 603df27..b7591fd 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -95,6 +95,7 @@ eal_long_options[] = {
{OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
{OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
{OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM },
+ {OPT_DEV, 1, NULL, OPT_DEV_NUM },
{OPT_VDEV, 1, NULL, OPT_VDEV_NUM },
{OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM },
{OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM },
@@ -1120,6 +1121,21 @@ eal_parse_common_option(int opt, const char *optarg,
}
break;
+ case OPT_DEV_NUM: {
+ struct rte_devargs da;
+ int ret;
+
+ if (rte_eal_devargs_parse(&da, optarg) < 0)
+ return -1;
+ ret = rte_bus_probe_mode_set(da.bus->name,
+ RTE_BUS_PROBE_WHITELIST);
+ if (ret < 0 && ret != -ENOTSUP)
+ return -1;
+ if (eal_option_device_add(NULL, optarg) < 0)
+ return -1;
+ }
+ break;
+
case OPT_VDEV_NUM:
if (eal_option_device_add("vdev", optarg) < 0)
return -1;
@@ -1271,6 +1287,9 @@ eal_common_usage(void)
" -n CHANNELS Number of memory channels\n"
" -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
" -r RANKS Force number of memory ranks (don't detect)\n"
+ " --"OPT_DEV" Declare a device.\n"
+ " The argument format is <bus><c><device>[,key=val,...]\n"
+ " ex: pci:00:00.0,key=val\n"
" -b, --"OPT_PCI_BLACKLIST" Add a PCI device in black list.\n"
" Prevent EAL from using this PCI device. The argument\n"
" format is <domain:bus:devid.func>.\n"
diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h
index 30e6bb4..d50eff7 100644
--- a/lib/librte_eal/common/eal_options.h
+++ b/lib/librte_eal/common/eal_options.h
@@ -77,6 +77,8 @@ enum {
OPT_SOCKET_MEM_NUM,
#define OPT_SYSLOG "syslog"
OPT_SYSLOG_NUM,
+#define OPT_DEV "dev"
+ OPT_DEV_NUM,
#define OPT_VDEV "vdev"
OPT_VDEV_NUM,
#define OPT_VFIO_INTR "vfio-intr"
--
2.1.4
More information about the dev
mailing list