eal: allow both allow and block options coexistence

Message ID 20230707050701.21433-1-yong.liu@intel.com (mailing list archive)
State New
Delegated to: Thomas Monjalon
Headers
Series eal: allow both allow and block options coexistence |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-aarch-unit-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS

Commit Message

Marvin Liu July 7, 2023, 5:07 a.m. UTC
  Currently, all buses use the same eal allow and block options. Need to
allow both allow and block options for different buses to coexist.
It wouldn't be a problem for pci bus if both allow and block options
were present. When the first option occurs, the scan mode for pci bus is
set.

For example:
  --allow 0000:05:00.0 --block wq0.0
    only pci device 0000:05:00.0 will be scanned
    all devices except wq0.0 on dsa bus will be scanned
  --allow 0000:05:00.0 --block 0000:05:00.1
    block option will be ignored
  --block 0000:05:00.1 --allow 0000:05:00.0
    allow option will be ignored

Signed-off-by: Marvin Liu <yong.liu@intel.com>
---
 .mailmap                            |  2 +-
 lib/eal/common/eal_common_options.c | 14 --------------
 2 files changed, 1 insertion(+), 15 deletions(-)
  

Comments

Thomas Monjalon July 7, 2023, 7:12 a.m. UTC | #1
07/07/2023 07:07, Marvin Liu:
> Currently, all buses use the same eal allow and block options. Need to
> allow both allow and block options for different buses to coexist.
> It wouldn't be a problem for pci bus if both allow and block options
> were present. When the first option occurs, the scan mode for pci bus is
> set.
> 
> For example:
>   --allow 0000:05:00.0 --block wq0.0
>     only pci device 0000:05:00.0 will be scanned
>     all devices except wq0.0 on dsa bus will be scanned
>   --allow 0000:05:00.0 --block 0000:05:00.1
>     block option will be ignored
>   --block 0000:05:00.1 --allow 0000:05:00.0
>     allow option will be ignored

It is wrong to ignore a user parameter silently.

Also, it would be clearer to use the new devargs syntax
with bus=pci,addr=0000:05:00.0
  

Patch

diff --git a/.mailmap b/.mailmap
index 0443e461a9..d256696485 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1548,7 +1548,7 @@  Yogesh Jangra <yogesh.jangra@intel.com>
 Yogev Chaimovich <yogev@cgstowernetworks.com>
 Yongjie Gu <yongjiex.gu@intel.com>
 Yongji Xie <xieyongji@baidu.com>
-Yong Liu <yong.liu@intel.com>
+Marvin Liu <yong.liu@intel.com>
 Yongping Zhang <yongping.zhang@broadcom.com>
 Yongseok Koh <yskoh@mellanox.com>
 Yong Wang <wang.yong19@zte.com.cn> <yongwang@vmware.com>
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 0305933698..0d8f9c5a38 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -1623,24 +1623,15 @@  int
 eal_parse_common_option(int opt, const char *optarg,
 			struct internal_config *conf)
 {
-	static int b_used;
-	static int a_used;
-
 	switch (opt) {
 	case 'b':
-		if (a_used)
-			goto ba_conflict;
 		if (eal_option_device_add(RTE_DEVTYPE_BLOCKED, optarg) < 0)
 			return -1;
-		b_used = 1;
 		break;
 
 	case 'a':
-		if (b_used)
-			goto ba_conflict;
 		if (eal_option_device_add(RTE_DEVTYPE_ALLOWED, optarg) < 0)
 			return -1;
-		a_used = 1;
 		break;
 	/* coremask */
 	case 'c': {
@@ -1929,11 +1920,6 @@  eal_parse_common_option(int opt, const char *optarg,
 	}
 
 	return 0;
-
-ba_conflict:
-	RTE_LOG(ERR, EAL,
-		"Options allow (-a) and block (-b) can't be used at the same time\n");
-	return -1;
 }
 
 static void