* [PATCH] BaseTools: Enable MAX_CONCURRENT_THREAD_NUMBER = 0 feature
@ 2018-01-09 2:13 Feng, YunhuaX
2018-01-09 7:58 ` Zhu, Yonghong
0 siblings, 1 reply; 2+ messages in thread
From: Feng, YunhuaX @ 2018-01-09 2:13 UTC (permalink / raw)
To: edk2-devel@lists.01.org; +Cc: Feng, YunhuaX, Zhu, Yonghong, Gao, Liming
Adding 'MAX_CONCURRENT_THREAD_NUMBER=0' option for user to
enable 'auto-detect thread number' feature, and changing default value
to '0' when initial build environment is configured.
Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=775
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
---
BaseTools/Conf/target.template | 5 +++--
BaseTools/Source/Python/build/build.py | 6 +++++-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git BaseTools/Conf/target.template BaseTools/Conf/target.template
index 787fc64fb1..ee8745610f 100644
--- BaseTools/Conf/target.template
+++ BaseTools/Conf/target.template
@@ -61,8 +61,9 @@ TOOL_CHAIN_TAG = MYTOOLS
# MAX_CONCURRENT_THREAD_NUMBER NUMBER Optional The number of concurrent threads. Recommend to set this
# value to one more than the number of your compurter
-# cores or CPUs. Less than 2 means disable multithread build.
-MAX_CONCURRENT_THREAD_NUMBER = 1
+# cores or CPUs. automatically detect number of processor threads
+# when 'MAX_CONCURRENT_THREAD_NUMBER=0'
+MAX_CONCURRENT_THREAD_NUMBER = 0
# BUILD_RULE_CONF Filename Optional Specify the file name to use for the build rules that are followed
diff --git BaseTools/Source/Python/build/build.py BaseTools/Source/Python/build/build.py
index 38498046d7..fd2681e05d 100644
--- BaseTools/Source/Python/build/build.py
+++ BaseTools/Source/Python/build/build.py
@@ -26,6 +26,7 @@ import platform
import traceback
import encodings.ascii
import itertools
+import multiprocessing
from struct import *
from threading import *
@@ -936,7 +937,10 @@ class Build():
self.ThreadNumber = int(self.ThreadNumber, 0)
if self.ThreadNumber == 0:
- self.ThreadNumber = 1
+ try:
+ self.ThreadNumber = multiprocessing.cpu_count()
+ except (ImportError, NotImplementedError):
+ self.ThreadNumber = 1
if not self.PlatformFile:
PlatformFile = self.TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_ACTIVE_PLATFORM]
--
2.12.2.windows.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] BaseTools: Enable MAX_CONCURRENT_THREAD_NUMBER = 0 feature
2018-01-09 2:13 [PATCH] BaseTools: Enable MAX_CONCURRENT_THREAD_NUMBER = 0 feature Feng, YunhuaX
@ 2018-01-09 7:58 ` Zhu, Yonghong
0 siblings, 0 replies; 2+ messages in thread
From: Zhu, Yonghong @ 2018-01-09 7:58 UTC (permalink / raw)
To: Feng, YunhuaX, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong
Hi Yunhua,
Please separate this patch into two. And remember to update copyright year.
Best Regards,
Zhu Yonghong
-----Original Message-----
From: Feng, YunhuaX
Sent: Tuesday, January 09, 2018 10:14 AM
To: edk2-devel@lists.01.org
Cc: Feng, YunhuaX <yunhuax.feng@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [PATCH] BaseTools: Enable MAX_CONCURRENT_THREAD_NUMBER = 0 feature
Adding 'MAX_CONCURRENT_THREAD_NUMBER=0' option for user to enable 'auto-detect thread number' feature, and changing default value to '0' when initial build environment is configured.
Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=775
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
---
BaseTools/Conf/target.template | 5 +++--
BaseTools/Source/Python/build/build.py | 6 +++++-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git BaseTools/Conf/target.template BaseTools/Conf/target.template index 787fc64fb1..ee8745610f 100644
--- BaseTools/Conf/target.template
+++ BaseTools/Conf/target.template
@@ -61,8 +61,9 @@ TOOL_CHAIN_TAG = MYTOOLS
# MAX_CONCURRENT_THREAD_NUMBER NUMBER Optional The number of concurrent threads. Recommend to set this
# value to one more than the number of your compurter
-# cores or CPUs. Less than 2 means disable multithread build.
-MAX_CONCURRENT_THREAD_NUMBER = 1
+# cores or CPUs. automatically detect number of processor threads
+# when 'MAX_CONCURRENT_THREAD_NUMBER=0'
+MAX_CONCURRENT_THREAD_NUMBER = 0
# BUILD_RULE_CONF Filename Optional Specify the file name to use for the build rules that are followed diff --git BaseTools/Source/Python/build/build.py BaseTools/Source/Python/build/build.py
index 38498046d7..fd2681e05d 100644
--- BaseTools/Source/Python/build/build.py
+++ BaseTools/Source/Python/build/build.py
@@ -26,6 +26,7 @@ import platform
import traceback
import encodings.ascii
import itertools
+import multiprocessing
from struct import *
from threading import *
@@ -936,7 +937,10 @@ class Build():
self.ThreadNumber = int(self.ThreadNumber, 0)
if self.ThreadNumber == 0:
- self.ThreadNumber = 1
+ try:
+ self.ThreadNumber = multiprocessing.cpu_count()
+ except (ImportError, NotImplementedError):
+ self.ThreadNumber = 1
if not self.PlatformFile:
PlatformFile = self.TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_ACTIVE_PLATFORM]
--
2.12.2.windows.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-01-09 7:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 2:13 [PATCH] BaseTools: Enable MAX_CONCURRENT_THREAD_NUMBER = 0 feature Feng, YunhuaX
2018-01-09 7:58 ` Zhu, Yonghong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox