From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) by mx.groups.io with SMTP id smtpd.web09.8919.1633352360490065515 for ; Mon, 04 Oct 2021 05:59:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@posteo.de header.s=2017 header.b=RG++bBkI; spf=pass (domain: posteo.de, ip: 185.67.36.65, mailfrom: mhaeuser@posteo.de) Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 6E96524002D for ; Mon, 4 Oct 2021 14:59:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1633352357; bh=zK1ULiVA75Pq7JSjTkJN3MupT51mc+eWHQ8Om58hyzI=; h=Date:Subject:To:Cc:From:From; b=RG++bBkIHFvEwV3HzAh9JH1MP5+gGfO92IrTVDG8Xm/AS5s+T2xbQLN9MzBOFi5BX E9+7AhqCM7c0YZuddA7Uk53Z8lB+DtPZ6rR5UIoc9WM/BGTCUpOtNNA4Es0+OQqBQC CLQecZecFGRRGCg3KUXCwxAQugNjWOqJXWSUoR28lToCq5GZMbVwIN7AhO2kC0GCwu IZWAddo+mz68wkaFT/sFLMS2hzl7DMcNtkuMVaIt9FaBLGWpMU32d+wP9x0Lvdboee Hhx+LgXVX8USKLz6rHVK7bV6K5MVPAhwt4ppdQShIxsUMAW4bYA5owWJu+/aUIheaf OAJh61jpaqgBg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4HNLQB5y5Xz9rxH; Mon, 4 Oct 2021 14:59:14 +0200 (CEST) Message-ID: Date: Mon, 4 Oct 2021 12:59:14 +0000 MIME-Version: 1.0 Subject: Re: [edk2-devel] [PATCH v5 4/4] UefiCpuPkg/CpuCacheInfoLib: Add QuickSort function on BaseLib To: devel@edk2.groups.io, ianx.kuo@intel.com Cc: amy.chan@intel.com, ray.ni@intel.com, Eric Dong , Rahul Kumar References: <20211004050318.1816-1-ianx.kuo@intel.com> <20211004050318.1816-5-ianx.kuo@intel.com> From: =?UTF-8?B?TWFydmluIEjDpHVzZXI=?= In-Reply-To: <20211004050318.1816-5-ianx.kuo@intel.com> Content-Language: en-GB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Good day IanX, On 04/10/2021 07:03, IanX Kuo wrote: > From: IanX Kuo > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3675 > > Remove MdeModulePkg dependency > > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Signed-off-by: IanX Kuo > --- > UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c | 5 ++++- > UefiCpuPkg/Library/CpuCacheInfoLib/DxeCpuCacheInfoLib.inf | 2 -- > UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h | 2 -- > UefiCpuPkg/Library/CpuCacheInfoLib/PeiCpuCacheInfoLib.inf | 2 -- > 4 files changed, 4 insertions(+), 7 deletions(-) > > diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c b/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c > index c0077d6770..b5ed05bd43 100644 > --- a/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c > +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c > @@ -282,6 +282,7 @@ CpuCacheInfoCollectCpuCacheInfoData ( > UINTN LocalCacheInfoCount; > UINTN Index; > UINTN NextIndex; > + VOID *QuickSortBuffer; > > // > // Get number of Packages and Package ID. > @@ -369,7 +370,9 @@ CpuCacheInfoCollectCpuCacheInfoData ( > // > // Sort LocalCacheInfo array by CPU package ID, core type, cache level and cache type. > // > - PerformQuickSort (LocalCacheInfo, LocalCacheInfoCount, sizeof (*LocalCacheInfo), (SORT_COMPARE) CpuCacheInfoCompare); > + QuickSortBuffer = AllocateZeroPool (sizeof (*LocalCacheInfo)); CPU_CACHE_INFO is just a couple Bytes in size, maybe just allocate it on the stack? > + ASSERT (QuickSortBuffer != NULL); Please handle memory allocation failures properly. Best regards, Marvin > + QuickSort (LocalCacheInfo, LocalCacheInfoCount, sizeof (*LocalCacheInfo), (BASE_SORT_COMPARE) CpuCacheInfoCompare, QuickSortBuffer); > CopyMem (CacheInfo, LocalCacheInfo, sizeof (*CacheInfo) * LocalCacheInfoCount); > DEBUG_CODE ( > CpuCacheInfoPrintCpuCacheInfoTable (CacheInfo, LocalCacheInfoCount); > diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/DxeCpuCacheInfoLib.inf b/UefiCpuPkg/Library/CpuCacheInfoLib/DxeCpuCacheInfoLib.inf > index c3d3f1e799..fdd79970f9 100644 > --- a/UefiCpuPkg/Library/CpuCacheInfoLib/DxeCpuCacheInfoLib.inf > +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/DxeCpuCacheInfoLib.inf > @@ -25,7 +25,6 @@ > > [Packages] > MdePkg/MdePkg.dec > - MdeModulePkg/MdeModulePkg.dec > UefiCpuPkg/UefiCpuPkg.dec > > [LibraryClasses] > @@ -34,7 +33,6 @@ > BaseMemoryLib > MemoryAllocationLib > UefiBootServicesTableLib > - SortLib > > [Protocols] > gEfiMpServiceProtocolGuid > diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h b/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h > index 26e1f46516..af60588e34 100644 > --- a/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h > +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h > @@ -13,11 +13,9 @@ > #include > #include > #include > -#include > #include > #include > #include > -#include > #include > > typedef union { > diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/PeiCpuCacheInfoLib.inf b/UefiCpuPkg/Library/CpuCacheInfoLib/PeiCpuCacheInfoLib.inf > index 0864497849..c643fc89be 100644 > --- a/UefiCpuPkg/Library/CpuCacheInfoLib/PeiCpuCacheInfoLib.inf > +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/PeiCpuCacheInfoLib.inf > @@ -25,7 +25,6 @@ > > [Packages] > MdePkg/MdePkg.dec > - MdeModulePkg/MdeModulePkg.dec > UefiCpuPkg/UefiCpuPkg.dec > > [LibraryClasses] > @@ -34,7 +33,6 @@ > BaseMemoryLib > MemoryAllocationLib > PeiServicesTablePointerLib > - SortLib > > [Ppis] > gEdkiiPeiMpServices2PpiGuid