BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +- BaseTools/Source/Python/build/build.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-)
AsBuiltInf can be created during AutoGen phase. Move CreateAsBuiltInf
into AutoGenWorker to make this step run in parallel.
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yuwei Chen <yuwei.chen@intel.com>
---
BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +-
BaseTools/Source/Python/build/build.py | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py
index 017f676399..0425f1ab0b 100755
--- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py
@@ -278,11 +278,11 @@ class AutoGenWorkerInProcess(mp.Process):
else:
self.cache_q.put((Ma.MetaFile.Path, Ma.Arch, "PreMakeCache", False))
Ma.CreateCodeFile(False)
Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, Ma.Arch),[]))
-
+ Ma.CreateAsBuiltInf()
if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]:
try:
CacheResult = Ma.CanSkipbyMakeCache()
except:
CacheResult = False
diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index 59ceacfed0..c4cfe38ad9 100755
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -871,11 +871,11 @@ class Build():
if GlobalData.gUseHashCache and not GlobalData.gBinCacheDest and self.Target in [None, "", "all"]:
cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, "PreMakeCache", False))
PcdMa.CreateCodeFile(False)
PcdMa.CreateMakeFile(False,GenFfsList = DataPipe.Get("FfsCommand").get((PcdMa.MetaFile.Path, PcdMa.Arch),[]))
-
+ PcdMa.CreateAsBuiltInf()
# Force cache miss for PCD driver
if GlobalData.gBinCacheSource and self.Target in [None, "", "all"]:
cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, "MakeCache", False))
self.AutoGenMgr.join()
@@ -1263,11 +1263,10 @@ class Build():
# build modules
if BuildModule:
BuildCommand = BuildCommand + [Target]
LaunchCommand(BuildCommand, AutoGenObject.MakeFileDir)
- self.CreateAsBuiltInf()
if GlobalData.gBinCacheDest:
self.GenDestCache()
elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource:
# Only for --hash
# Update PreMakeCacheChain files
@@ -2274,11 +2273,10 @@ class Build():
# All modules have been put in build tasks queue. Tell task scheduler
# to exit if all tasks are completed
#
ExitFlag.set()
BuildTask.WaitForComplete()
- self.CreateAsBuiltInf()
if GlobalData.gBinCacheDest:
self.GenDestCache()
elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource:
# Only for --hash
# Update PreMakeCacheChain files
--
2.20.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#64046): https://edk2.groups.io/g/devel/message/64046
Mute This Topic: https://groups.io/mt/76142326/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
I like this idea. Is there any build performance improvement? > -----Original Message----- > From: Feng, Bob C <bob.c.feng@intel.com> > Sent: Wednesday, August 12, 2020 2:09 PM > To: devel@edk2.groups.io > Cc: Gao, Liming <liming.gao@intel.com>; Chen, Christine <yuwei.chen@intel.com> > Subject: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker for parallel > > AsBuiltInf can be created during AutoGen phase. Move CreateAsBuiltInf > into AutoGenWorker to make this step run in parallel. > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yuwei Chen <yuwei.chen@intel.com> > --- > BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +- > BaseTools/Source/Python/build/build.py | 4 +--- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > index 017f676399..0425f1ab0b 100755 > --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > @@ -278,11 +278,11 @@ class AutoGenWorkerInProcess(mp.Process): > else: > self.cache_q.put((Ma.MetaFile.Path, Ma.Arch, "PreMakeCache", False)) > > Ma.CreateCodeFile(False) > Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, Ma.Arch),[])) > - > + Ma.CreateAsBuiltInf() > if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]: > try: > CacheResult = Ma.CanSkipbyMakeCache() > except: > CacheResult = False > diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py > index 59ceacfed0..c4cfe38ad9 100755 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -871,11 +871,11 @@ class Build(): > if GlobalData.gUseHashCache and not GlobalData.gBinCacheDest and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, "PreMakeCache", False)) > > PcdMa.CreateCodeFile(False) > PcdMa.CreateMakeFile(False,GenFfsList = DataPipe.Get("FfsCommand").get((PcdMa.MetaFile.Path, PcdMa.Arch),[])) > - > + PcdMa.CreateAsBuiltInf() > # Force cache miss for PCD driver > if GlobalData.gBinCacheSource and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, "MakeCache", False)) > > self.AutoGenMgr.join() > @@ -1263,11 +1263,10 @@ class Build(): > > # build modules > if BuildModule: > BuildCommand = BuildCommand + [Target] > LaunchCommand(BuildCommand, AutoGenObject.MakeFileDir) > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files > @@ -2274,11 +2273,10 @@ class Build(): > # All modules have been put in build tasks queue. Tell task scheduler > # to exit if all tasks are completed > # > ExitFlag.set() > BuildTask.WaitForComplete() > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files > -- > 2.20.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64076): https://edk2.groups.io/g/devel/message/64076 Mute This Topic: https://groups.io/mt/76142326/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Liming, I did the test on Ovmf, there is some improvement but not much. Thanks, Bob -----Original Message----- From: Gao, Liming <liming.gao@intel.com> Sent: Wednesday, August 12, 2020 10:35 PM To: Feng, Bob C <bob.c.feng@intel.com>; devel@edk2.groups.io Cc: Chen, Christine <yuwei.chen@intel.com> Subject: RE: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker for parallel I like this idea. Is there any build performance improvement? > -----Original Message----- > From: Feng, Bob C <bob.c.feng@intel.com> > Sent: Wednesday, August 12, 2020 2:09 PM > To: devel@edk2.groups.io > Cc: Gao, Liming <liming.gao@intel.com>; Chen, Christine > <yuwei.chen@intel.com> > Subject: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker > for parallel > > AsBuiltInf can be created during AutoGen phase. Move CreateAsBuiltInf > into AutoGenWorker to make this step run in parallel. > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yuwei Chen <yuwei.chen@intel.com> > --- > BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +- > BaseTools/Source/Python/build/build.py | 4 +--- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > index 017f676399..0425f1ab0b 100755 > --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > @@ -278,11 +278,11 @@ class AutoGenWorkerInProcess(mp.Process): > else: > self.cache_q.put((Ma.MetaFile.Path, Ma.Arch, > "PreMakeCache", False)) > > Ma.CreateCodeFile(False) > > Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, > Ma.Arch),[])) > - > + Ma.CreateAsBuiltInf() > if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]: > try: > CacheResult = Ma.CanSkipbyMakeCache() > except: > CacheResult = False diff --git > a/BaseTools/Source/Python/build/build.py > b/BaseTools/Source/Python/build/build.py > index 59ceacfed0..c4cfe38ad9 100755 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -871,11 +871,11 @@ class Build(): > if GlobalData.gUseHashCache and not GlobalData.gBinCacheDest and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, > "PreMakeCache", False)) > > PcdMa.CreateCodeFile(False) > PcdMa.CreateMakeFile(False,GenFfsList = > DataPipe.Get("FfsCommand").get((PcdMa.MetaFile.Path, PcdMa.Arch),[])) > - > + PcdMa.CreateAsBuiltInf() > # Force cache miss for PCD driver > if GlobalData.gBinCacheSource and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, > "MakeCache", False)) > > self.AutoGenMgr.join() > @@ -1263,11 +1263,10 @@ class Build(): > > # build modules > if BuildModule: > BuildCommand = BuildCommand + [Target] > LaunchCommand(BuildCommand, AutoGenObject.MakeFileDir) > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files @@ -2274,11 +2273,10 > @@ class Build(): > # All modules have been put in build tasks queue. Tell task scheduler > # to exit if all tasks are completed > # > ExitFlag.set() > BuildTask.WaitForComplete() > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files > -- > 2.20.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64146): https://edk2.groups.io/g/devel/message/64146 Mute This Topic: https://groups.io/mt/76142326/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
A little better is also OK. Reviewed-by: Liming Gao <liming.gao@intel.com> -----Original Message----- From: Feng, Bob C <bob.c.feng@intel.com> Sent: 2020年8月13日 17:01 To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io Cc: Chen, Christine <yuwei.chen@intel.com> Subject: RE: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker for parallel Liming, I did the test on Ovmf, there is some improvement but not much. Thanks, Bob -----Original Message----- From: Gao, Liming <liming.gao@intel.com> Sent: Wednesday, August 12, 2020 10:35 PM To: Feng, Bob C <bob.c.feng@intel.com>; devel@edk2.groups.io Cc: Chen, Christine <yuwei.chen@intel.com> Subject: RE: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker for parallel I like this idea. Is there any build performance improvement? > -----Original Message----- > From: Feng, Bob C <bob.c.feng@intel.com> > Sent: Wednesday, August 12, 2020 2:09 PM > To: devel@edk2.groups.io > Cc: Gao, Liming <liming.gao@intel.com>; Chen, Christine > <yuwei.chen@intel.com> > Subject: [Patch] BaseTools: Move CreateAsBuiltInf into AutoGenWorker > for parallel > > AsBuiltInf can be created during AutoGen phase. Move CreateAsBuiltInf > into AutoGenWorker to make this step run in parallel. > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yuwei Chen <yuwei.chen@intel.com> > --- > BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +- > BaseTools/Source/Python/build/build.py | 4 +--- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > index 017f676399..0425f1ab0b 100755 > --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > @@ -278,11 +278,11 @@ class AutoGenWorkerInProcess(mp.Process): > else: > self.cache_q.put((Ma.MetaFile.Path, Ma.Arch, > "PreMakeCache", False)) > > Ma.CreateCodeFile(False) > > Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, > Ma.Arch),[])) > - > + Ma.CreateAsBuiltInf() > if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]: > try: > CacheResult = Ma.CanSkipbyMakeCache() > except: > CacheResult = False diff --git > a/BaseTools/Source/Python/build/build.py > b/BaseTools/Source/Python/build/build.py > index 59ceacfed0..c4cfe38ad9 100755 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -871,11 +871,11 @@ class Build(): > if GlobalData.gUseHashCache and not GlobalData.gBinCacheDest and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, > "PreMakeCache", False)) > > PcdMa.CreateCodeFile(False) > PcdMa.CreateMakeFile(False,GenFfsList = > DataPipe.Get("FfsCommand").get((PcdMa.MetaFile.Path, PcdMa.Arch),[])) > - > + PcdMa.CreateAsBuiltInf() > # Force cache miss for PCD driver > if GlobalData.gBinCacheSource and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, > "MakeCache", False)) > > self.AutoGenMgr.join() > @@ -1263,11 +1263,10 @@ class Build(): > > # build modules > if BuildModule: > BuildCommand = BuildCommand + [Target] > LaunchCommand(BuildCommand, AutoGenObject.MakeFileDir) > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files @@ -2274,11 +2273,10 > @@ class Build(): > # All modules have been put in build tasks queue. Tell task scheduler > # to exit if all tasks are completed > # > ExitFlag.set() > BuildTask.WaitForComplete() > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files > -- > 2.20.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64156): https://edk2.groups.io/g/devel/message/64156 Mute This Topic: https://groups.io/mt/76142326/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Bob > Feng > Sent: Tuesday, August 11, 2020 11:09 PM > To: devel@edk2.groups.io > Cc: Gao, Liming <liming.gao@intel.com>; Chen, Christine > <yuwei.chen@intel.com> > Subject: [edk2-devel] [Patch] BaseTools: Move CreateAsBuiltInf into > AutoGenWorker for parallel > > AsBuiltInf can be created during AutoGen phase. Move CreateAsBuiltInf into > AutoGenWorker to make this step run in parallel. > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yuwei Chen <yuwei.chen@intel.com> > --- > BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 2 +- > BaseTools/Source/Python/build/build.py | 4 +--- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > index 017f676399..0425f1ab0b 100755 > --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py > @@ -278,11 +278,11 @@ class AutoGenWorkerInProcess(mp.Process): > else: > self.cache_q.put((Ma.MetaFile.Path, Ma.Arch, > "PreMakeCache", False)) > > Ma.CreateCodeFile(False) > > Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, > Ma.Arch),[])) > - > + Ma.CreateAsBuiltInf() > if GlobalData.gBinCacheSource and CommandTarget in [None, "", > "all"]: > try: > CacheResult = Ma.CanSkipbyMakeCache() > except: > CacheResult = False diff --git > a/BaseTools/Source/Python/build/build.py > b/BaseTools/Source/Python/build/build.py > index 59ceacfed0..c4cfe38ad9 100755 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -871,11 +871,11 @@ class Build(): > if GlobalData.gUseHashCache and not GlobalData.gBinCacheDest > and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, > "PreMakeCache", False)) > > PcdMa.CreateCodeFile(False) > PcdMa.CreateMakeFile(False,GenFfsList = > DataPipe.Get("FfsCommand").get((PcdMa.MetaFile.Path, PcdMa.Arch),[])) > - > + PcdMa.CreateAsBuiltInf() > # Force cache miss for PCD driver > if GlobalData.gBinCacheSource and self.Target in [None, "", "all"]: > cqueue.put((PcdMa.MetaFile.Path, PcdMa.Arch, "MakeCache", > False)) > > self.AutoGenMgr.join() > @@ -1263,11 +1263,10 @@ class Build(): > > # build modules > if BuildModule: > BuildCommand = BuildCommand + [Target] > LaunchCommand(BuildCommand, AutoGenObject.MakeFileDir) > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files @@ -2274,11 +2273,10 @@ class > Build(): > # All modules have been put in build tasks queue. Tell task scheduler > # to exit if all tasks are completed > # > ExitFlag.set() > BuildTask.WaitForComplete() > - self.CreateAsBuiltInf() > if GlobalData.gBinCacheDest: > self.GenDestCache() > elif GlobalData.gUseHashCache and not > GlobalData.gBinCacheSource: > # Only for --hash > # Update PreMakeCacheChain files > -- > 2.20.1.windows.1 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64124): https://edk2.groups.io/g/devel/message/64124 Mute This Topic: https://groups.io/mt/76142326/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.