Hi Derek,

I figure out a new solution for –hash cache as below. Please try it again.

https://github.com/shijunjing/edk2/tree/hashcache_v2

 

It is based on latest edk2 master branch, and what you need porting are below files. Let me know if you need me to create a patch based on edk2-stable201908.

 

$ git status

On branch hashcache_v2

$ git show HEAD --name-only

BaseTools/Conf/build_rule.template

BaseTools/Conf/tools_def.template

BaseTools/Source/Python/AutoGen/AutoGenWorker.py

BaseTools/Source/Python/AutoGen/DataPipe.py

BaseTools/Source/Python/AutoGen/GenMake.py

BaseTools/Source/Python/AutoGen/IncludesAutoGen.py

BaseTools/Source/Python/AutoGen/ModuleAutoGen.py

BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py

BaseTools/Source/Python/Common/GlobalData.py

BaseTools/Source/Python/build/build.py

 

 

Thanks

 

Steven Shi

Intel\SSG\SFE\FIE Firmware Infrastructure

 

 

From: Shi, Steven
Sent: Sunday, September 29, 2019 10:32 AM
To: Lin, Derek (HPS SW) <derek.lin2@hpe.com>; devel@edk2.groups.io
Subject: RE: [edk2-devel] BaseTools --hash malfunction after migrate from stable201905 to stable201908

 

Hi Derek,

Thank you for the data. I will continue to enhance the –hash performance, and will let you know after I figure out new solution.

 

 

Thanks

 

Steven Shi

Intel\SSG\SFE\FIE Firmware Infrastructure

 

 

From: Lin, Derek (HPS SW) [mailto:derek.lin2@hpe.com]
Sent: Friday, September 27, 2019 3:57 PM
To: Shi, Steven <steven.shi@intel.com>; devel@edk2.groups.io
Subject: Re: [edk2-devel] BaseTools --hash malfunction after migrate from stable201905 to stable201908

 

Hi Steven,

Thanks for the fix!
I've tried your patch with a minor fix as attached.
                                       1            2           3                4

Build Duration:        00:05:51  00:03:47  00:05:15  00:04:31

AutoGen Duration:  00:03:32  00:03:08  00:03:14  00:03:16

Make Duration:       00:01:50  00:00:16  00:01:29  00:00:50

GenFds Duration:   00:00:30  00:00:22  00:00:31  00:00:23


1: clean build with patch and --hash
2: incremental build
3. clean build without patch and without --hash
4. incremental build

BTW, this data cannot compare with previous data I provided because they are built in different environment.

In general, the result is as you said that it fix --hash functionality, but not as quick as before.
Also the cost of --hash in clean build is increased.