From dbad65c3835e64152eba54ff96e3dfb5a2c366b9 Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Tue, 3 Oct 2017 21:35:53 +0200 Subject: [PATCH] app: add NoPci field to config file Allow disabling entire PCI access via config file. Change-Id: Ib571529fdcdfe0e8f43e0d69b32efa633c364f8f Signed-off-by: Dariusz Stojaczyk Reviewed-on: https://review.gerrithub.io/381203 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris --- etc/spdk/iscsi.conf.in | 5 +++++ etc/spdk/vhost.conf.in | 5 +++++ lib/event/app.c | 14 +++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/etc/spdk/iscsi.conf.in b/etc/spdk/iscsi.conf.in index abd20f071..bda6dee96 100644 --- a/etc/spdk/iscsi.conf.in +++ b/etc/spdk/iscsi.conf.in @@ -19,6 +19,11 @@ # on core 0. #ReactorMask 0xFFFF + # Disable PCI access. PCI is enabled by default. Setting this + # option will hide any PCI device from all SPDK modules, making + # SPDK act as if they don't exist. + #NoPci Yes + # Tracepoint group mask for spdk trace buffers # Default: 0x0 (all tracepoint groups disabled) # Set to 0xFFFFFFFFFFFFFFFF to enable all tracepoint groups. diff --git a/etc/spdk/vhost.conf.in b/etc/spdk/vhost.conf.in index 6419f2d47..c94cb1418 100644 --- a/etc/spdk/vhost.conf.in +++ b/etc/spdk/vhost.conf.in @@ -19,6 +19,11 @@ # on core 0. #ReactorMask 0xFFFF + # Disable PCI access. PCI is enabled by default. Setting this + # option will hide any PCI device from all SPDK modules, making + # SPDK act as if they don't exist. + #NoPci Yes + # Tracepoint group mask for spdk trace buffers # Default: 0x0 (all tracepoint groups disabled) # Set to 0xFFFFFFFFFFFFFFFF to enable all tracepoint groups. diff --git a/lib/event/app.c b/lib/event/app.c index f1c8199aa..7637cb84e 100644 --- a/lib/event/app.c +++ b/lib/event/app.c @@ -302,19 +302,19 @@ spdk_app_start(struct spdk_app_opts *opts, spdk_event_fn start_fn, spdk_log_set_level(SPDK_APP_DEFAULT_LOG_PRIORITY); spdk_log_open(); + sp = spdk_conf_find_section(g_spdk_app.config, "Global"); if (opts->reactor_mask == NULL) { - sp = spdk_conf_find_section(g_spdk_app.config, "Global"); - if (sp != NULL) { - if (spdk_conf_section_get_val(sp, "ReactorMask")) { - opts->reactor_mask = spdk_conf_section_get_val(sp, "ReactorMask"); - } else { - opts->reactor_mask = SPDK_APP_DPDK_DEFAULT_CORE_MASK; - } + if (sp && spdk_conf_section_get_val(sp, "ReactorMask")) { + opts->reactor_mask = spdk_conf_section_get_val(sp, "ReactorMask"); } else { opts->reactor_mask = SPDK_APP_DPDK_DEFAULT_CORE_MASK; } } + if (!opts->no_pci && sp) { + opts->no_pci = spdk_conf_section_get_boolval(sp, "NoPci", false); + } + spdk_env_opts_init(&env_opts); env_opts.name = opts->name;