event: add new pci-allowed and pci-blocked cmd line params

These replace the pci-whitelist and pci-blacklist params
which are now deprecated.

pci-blocked will still use the -B short name.  pci-allowed
will use a new -A short name.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Icf1c46c40ad6a0f49fb539b18cdd8d0c8daac636
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5281
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Jim Harris 2020-11-25 21:58:13 +00:00 committed by Tomasz Zawadzki
parent 9c2b3b3535
commit 5237fe34b7
4 changed files with 29 additions and 17 deletions

View File

@ -7,6 +7,12 @@
The pci_whitelist and pci_blacklist members of struct spdk_app_opts have been
deprecated. The new members are named pci_allowed and pci_blocked respectively.
The --pci-blacklist command line option has been deprecated, replaced with
--pci-blocked.
The --pci-whitelist/-W command line options have been deprecated, replaced with
--pci-allowed/-A.
### env
The pci_whitelist and pci_blacklist members of struct spdk_env_opts have been

View File

@ -41,8 +41,8 @@ Param | Long Param | Type | Default | Descript
| | --silence-noticelog | flag | | disable notice level logging to `stderr`
-u | --no-pci | flag | | @ref cmd_arg_disable_pci_access.
| | --wait-for-rpc | flag | | @ref cmd_arg_deferred_initialization
-B | --pci-blacklist | B:D:F | | @ref cmd_arg_pci_blacklist_whitelist.
-W | --pci-whitelist | B:D:F | | @ref cmd_arg_pci_blacklist_whitelist.
-B | --pci-blocked | B:D:F | | @ref cmd_arg_pci_blocked_allowed.
-A | --pci-allowed | B:D:F | | @ref cmd_arg_pci_blocked_allowed.
-R | --huge-unlink | flag | | @ref cmd_arg_huge_unlink
| | --huge-dir | string | the first discovered | allocate hugepages from a specific mount
-L | --logflag | string | | @ref cmd_arg_log_flags
@ -121,12 +121,12 @@ If SPDK is run with PCI access disabled it won't detect any PCI devices. This
includes primarily NVMe and IOAT devices. Also, the VFIO and UIO kernel modules
are not required in this mode.
### PCI address blacklist and whitelist {#cmd_arg_pci_blacklist_whitelist}
### PCI address blocked and allowed lists {#cmd_arg_pci_blocked_allowed}
If blacklist is used, then all devices with the provided PCI address will be
ignored. If a whitelist is used, only whitelisted devices will be probed.
`-B` or `-W` can be used more than once, but cannot be mixed together. That is,
`-B` and `-W` cannot be used at the same time.
If blocked list is used, then all devices with the provided PCI address will be
ignored. If an allowed list is used, only allowed devices will be probed.
`-B` or `-A` can be used more than once, but cannot be mixed together. That is,
`-B` and `-A` cannot be used at the same time.
### Unlink hugepage files after initialization {#cmd_arg_huge_unlink}

View File

@ -107,14 +107,17 @@ static const struct option g_cmdline_options[] = {
{"no-pci", no_argument, NULL, NO_PCI_OPT_IDX},
#define VERSION_OPT_IDX 'v'
{"version", no_argument, NULL, VERSION_OPT_IDX},
#define PCI_BLACKLIST_OPT_IDX 'B'
{"pci-blacklist", required_argument, NULL, PCI_BLACKLIST_OPT_IDX},
#define PCI_BLOCKED_OPT_IDX 'B'
{"pci-blocked", required_argument, NULL, PCI_BLOCKED_OPT_IDX},
{"pci-blacklist", required_argument, NULL, PCI_BLOCKED_OPT_IDX}, /* deprecated */
#define LOGFLAG_OPT_IDX 'L'
{"logflag", required_argument, NULL, LOGFLAG_OPT_IDX},
#define HUGE_UNLINK_OPT_IDX 'R'
{"huge-unlink", no_argument, NULL, HUGE_UNLINK_OPT_IDX},
#define PCI_ALLOWED_OPT_IDX 'A'
{"pci-allowed", required_argument, NULL, PCI_ALLOWED_OPT_IDX},
#define PCI_WHITELIST_OPT_IDX 'W'
{"pci-whitelist", required_argument, NULL, PCI_WHITELIST_OPT_IDX},
{"pci-whitelist", required_argument, NULL, PCI_WHITELIST_OPT_IDX}, /* deprecated */
#define SILENCE_NOTICELOG_OPT_IDX 257
{"silence-noticelog", no_argument, NULL, SILENCE_NOTICELOG_OPT_IDX},
#define WAIT_FOR_RPC_OPT_IDX 258
@ -571,12 +574,12 @@ usage(void (*app_usage)(void))
printf(" -u, --no-pci disable PCI access\n");
printf(" --wait-for-rpc wait for RPCs to initialize subsystems\n");
printf(" --max-delay <num> maximum reactor delay (in microseconds)\n");
printf(" -B, --pci-blacklist <bdf>\n");
printf(" pci addr to blacklist (can be used more than once)\n");
printf(" -B, --pci-blocked <bdf>\n");
printf(" pci addr to block (can be used more than once)\n");
printf(" -R, --huge-unlink unlink huge files after initialization\n");
printf(" -v, --version print SPDK version\n");
printf(" -W, --pci-whitelist <bdf>\n");
printf(" pci addr to whitelist (-B and -W cannot be used at the same time)\n");
printf(" -A, --pci-allowed <bdf>\n");
printf(" pci addr to allow (-B and -A cannot be used at the same time)\n");
printf(" --huge-dir <path> use a specific hugetlbfs mount to reserve memory from\n");
printf(" --iova-mode <pa/va> set IOVA mode ('pa' for IOVA_PA and 'va' for IOVA_VA)\n");
printf(" --base-virtaddr <addr> the base virtual address for DPDK (default: 0x200000000000)\n");
@ -737,11 +740,11 @@ spdk_app_parse_args(int argc, char **argv, struct spdk_app_opts *opts,
case WAIT_FOR_RPC_OPT_IDX:
opts->delay_subsystem_init = true;
break;
case PCI_BLACKLIST_OPT_IDX:
case PCI_BLOCKED_OPT_IDX:
if (opts->pci_allowed) {
free(opts->pci_allowed);
opts->pci_allowed = NULL;
SPDK_ERRLOG("-B and -W cannot be used at the same time\n");
SPDK_ERRLOG("-B and -A cannot be used at the same time\n");
usage(app_usage);
goto out;
}
@ -768,6 +771,9 @@ spdk_app_parse_args(int argc, char **argv, struct spdk_app_opts *opts,
opts->unlink_hugepage = true;
break;
case PCI_WHITELIST_OPT_IDX:
SPDK_WARNLOG("-W/--pci-whitelist is deprecated. Use -A/--pci-allowed.\n");
/* fallthrough */
case PCI_ALLOWED_OPT_IDX:
if (opts->pci_blocked) {
free(opts->pci_blocked);
opts->pci_blocked = NULL;

View File

@ -115,7 +115,7 @@ _spdk_opt_to_complete() {
local opt=$1
case "$opt" in
--pci-blacklist | -B | --pci-whitelist | -W)
--pci-blocked | -B | --pci-allowed | -A)
local pcis
if [[ -e /sys/bus/pci/devices ]]; then
pcis=(/sys/bus/pci/devices/*)