From nobody Mon Feb 9 01:20:15 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+44931+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+44931+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1565075728; cv=none; d=zoho.com; s=zohoarc; b=TpN0MxSa1zq+gtQpsFO2z4VnC4ctHKKncGAXdaMgWoEv2qb7wFjU2PCuMa+BgOKbghuKhR9AubgGnkCT4RPgcFSvaCU7AZlyzwEElQy4y5Sj4pg2nVBjEijL4IOu9pI8LokcY9NvSSCNonMjoYwHYbUke5Oz6QIkF8AzNcTmWBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565075728; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=Ni3QGMGMKfk8caoYMVO8egwodmVZ9y7vFFrUpmyQqIs=; b=oFRWIbnj96tMkDk/EK37x4xa2TdPesCY+IMDUpdUjFxZFdYWZKWiT7PejhfruN5r2arprZH3ThWemsE1M9uX4XUgaJLJyVCrUz/wN0ZC154M4yRc17xCze5Z5ZnleyRLmb2VNA17EXJuVhPPgTDy269AD3CrJcmezL5QH1o3j0U= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+44931+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1565075728058435.9738781936953; Tue, 6 Aug 2019 00:15:28 -0700 (PDT) Return-Path: X-Received: from mga05.intel.com (mga05.intel.com []) by groups.io with SMTP; Tue, 06 Aug 2019 00:15:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2019 00:15:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,352,1559545200"; d="scan'208";a="325551420" X-Received: from shwdepsi1121.ccr.corp.intel.com ([10.239.158.47]) by orsmga004.jf.intel.com with ESMTP; 06 Aug 2019 00:15:25 -0700 From: "Bob Feng" To: devel@edk2.groups.io Cc: Liming Gao , Bob Feng Subject: [edk2-devel] [Patch 06/10 V7] BaseTools: Add shared data for processes Date: Tue, 6 Aug 2019 15:15:07 +0800 Message-Id: <20190806071511.11836-7-bob.c.feng@intel.com> In-Reply-To: <20190806071511.11836-1-bob.c.feng@intel.com> References: <20190806071511.11836-1-bob.c.feng@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,bob.c.feng@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1565075727; bh=ZKCz3EEolPUY8P940wI2F3r1/sOGT7ggXDSidXwVgqY=; h=Cc:Date:From:Reply-To:Subject:To; b=bFT7vhvx2fPfPq19IO8e2eiAnzOwSjMi+0kAw7BpDJnuTbjfvCT9HS/Co+5isCiCbRf v5hRyzWzfs1iNpQLz9cDuNtFDGY8U+BnD7wkIIaNq3kBMPtJCM5sxZtiOS7SKm07mW4T7 v4gcEeUmya5JxNC8Oe8t8su/ysQRIzZ71nM= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1875 Add shared data for autogen processes. Cc: Liming Gao Signed-off-by: Bob Feng --- BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 3 ++- BaseTools/Source/Python/build/build.py | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py b/BaseTools/S= ource/Python/AutoGen/AutoGenWorker.py index 6c6ef4964741..9d06b45ec03f 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py @@ -62,18 +62,19 @@ class AutoGenManager(threading.Thread): def TerminateWorkers(self): self.error_event.set() def kill(self): self.feedback_q.put(None) class AutoGenWorkerInProcess(mp.Process): - def __init__(self,module_queue,data_pipe_file_path,feedback_q,file_loc= k,error_event): + def __init__(self,module_queue,data_pipe_file_path,feedback_q,file_loc= k, share_data,error_event): mp.Process.__init__(self) self.module_queue =3D module_queue self.data_pipe_file_path =3Ddata_pipe_file_path self.data_pipe =3D None self.feedback_q =3D feedback_q self.PlatformMetaFileSet =3D {} self.file_lock =3D file_lock + self.share_data =3D share_data self.error_event =3D error_event def GetPlatformMetaFile(self,filepath,root): try: return self.PlatformMetaFileSet[(filepath,root)] except: diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Pyth= on/build/build.py index e1f1adb7c3aa..4bddd80ee112 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -50,10 +50,11 @@ from GenPatchPcdTable.GenPatchPcdTable import PeImageCl= ass,parsePcdInfoFromMapFi from PatchPcdValue.PatchPcdValue import PatchBinaryFile =20 import Common.GlobalData as GlobalData from GenFds.GenFds import GenFds, GenFdsApi import multiprocessing as mp +from multiprocessing import Manager =20 # Version and Copyright VersionNumber =3D "0.60" + ' ' + gBUILD_VERSION __version__ =3D "%prog Version " + VersionNumber __copyright__ =3D "Copyright (c) 2007 - 2018, Intel Corporation All right= s reserved." @@ -826,18 +827,19 @@ class Build(): self.InitBuild() =20 self.AutoGenMgr =3D None EdkLogger.info("") os.chdir(self.WorkspaceDir) - def StartAutoGen(self,mqueue, DataPipe,SkipAutoGen,PcdMaList): + self.share_data =3D Manager().dict() + def StartAutoGen(self,mqueue, DataPipe,SkipAutoGen,PcdMaList,share_dat= a): try: if SkipAutoGen: return True,0 feedback_q =3D mp.Queue() file_lock =3D mp.Lock() error_event =3D mp.Event() - auto_workers =3D [AutoGenWorkerInProcess(mqueue,DataPipe.dump_= file,feedback_q,file_lock,error_event) for _ in range(self.ThreadNumber)] + auto_workers =3D [AutoGenWorkerInProcess(mqueue,DataPipe.dump_= file,feedback_q,file_lock,share_data,error_event) for _ in range(self.Threa= dNumber)] self.AutoGenMgr =3D AutoGenManager(auto_workers,feedback_q,err= or_event) self.AutoGenMgr.start() for w in auto_workers: w.start() if PcdMaList is not None: @@ -1229,11 +1231,11 @@ class Build(): =20 AutoGenObject.DataPipe.DataContainer =3D {"FfsCommand":FfsComm= and} self.Progress.Start("Generating makefile and code") data_pipe_file =3D os.path.join(AutoGenObject.BuildDir, "Globa= lVar_%s_%s.bin" % (str(AutoGenObject.Guid),AutoGenObject.Arch)) AutoGenObject.DataPipe.dump(data_pipe_file) - autogen_rt,errorcode =3D self.StartAutoGen(mqueue, AutoGenObje= ct.DataPipe, self.SkipAutoGen, PcdMaList) + autogen_rt, errorcode =3D self.StartAutoGen(mqueue, AutoGenObj= ect.DataPipe, self.SkipAutoGen, PcdMaList,self.share_data) self.Progress.Stop("done!") if not autogen_rt: self.AutoGenMgr.TerminateWorkers() self.AutoGenMgr.join(0.1) raise FatalError(errorcode) @@ -2069,11 +2071,11 @@ class Build(): mqueue =3D mp.Queue() for m in Pa.GetAllModuleInfo: mqueue.put(m) data_pipe_file =3D os.path.join(Pa.BuildDir, "GlobalVa= r_%s_%s.bin" % (str(Pa.Guid),Pa.Arch)) Pa.DataPipe.dump(data_pipe_file) - autogen_rt, errorcode =3D self.StartAutoGen(mqueue, Pa= .DataPipe, self.SkipAutoGen, PcdMaList) + autogen_rt, errorcode =3D self.StartAutoGen(mqueue, Pa= .DataPipe, self.SkipAutoGen, PcdMaList,self.share_data) self.Progress.Stop("done!") self.AutoGenTime +=3D int(round((time.time() - AutoGen= Start))) if not autogen_rt: self.AutoGenMgr.TerminateWorkers() self.AutoGenMgr.join(0.1) --=20 2.20.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44931): https://edk2.groups.io/g/devel/message/44931 Mute This Topic: https://groups.io/mt/32740903/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-