Ray,
Thanks for the comments. I'll refine the commit message according to your 
suggestions in V2 version patch.

Thanks,
Dun

-----Original Message-----
From: Ni, Ray <ray...@intel.com> 
Sent: Thursday, May 18, 2023 2:59 PM
To: Tan, Dun <dun....@intel.com>; devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming 
<gaolim...@byosoft.com.cn>; Liu, Zhiguang <zhiguang....@intel.com>
Subject: RE: [PATCH] MdePkg: Code optimization to SMM 
InternalAllocateAlignedPages

Dun,
I can understand what you are trying to describe in the commit message.
I have some suggestions/questions that might help you refine the commit message 
a bit better.

Code changes look good to me.

Thanks,
Ray
> -----Original Message-----
> From: Tan, Dun <dun....@intel.com>
> Sent: Thursday, May 18, 2023 2:37 PM
> To: devel@edk2.groups.io
> Cc: Ni, Ray <ray...@intel.com>; Kinney, Michael D 
> <michael.d.kin...@intel.com>; Gao, Liming <gaolim...@byosoft.com.cn>; 
> Liu, Zhiguang <zhiguang....@intel.com>
> Subject: [PATCH] MdePkg: Code optimization to SMM 
> InternalAllocateAlignedPages
> 
> This commit is code optimization to InternalAllocateAlignedPages of 
> SmmMemoryAllocationLib which can reduce free memory fragments. Also it 
> can reduce one pre-allocation page.
> 
> Let's take a simple example:
> The expected pages size is 8KB, Alignment value is 8KB.
> 
> In original InternalAllocateAlignedPages(), the first step is to 
> allocate 4 pages and then find the first 8KB-aligned address in the 
> allocated 4 pages. If the limit address is already 8KB aligned, then
1. What's "limit address"?

> the allocated 4 pages contains two 8KB-aligned 8KB ranges. The lower
> 2 pages will be selected and removed from free pages. Then the higher
> 2 pages will be free. Since the whole memory allocation is from high 
> address to lower address, then the higher 2 pages cann't be merged 
> other free pages, causing the free memory fragments.
> 
> However, when only allocate 3(2+2-1) pages, we can avoid the free 
> memory fragments in specific case. Also 3 pages must contain a 
> 8kb-aligned 8kb range, which meets the requirement. If the limit of 
> allocated 3 pages is 8KB-aligned, then the last 8K range will
2. What's "last 8k"?


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105011): https://edk2.groups.io/g/devel/message/105011
Mute This Topic: https://groups.io/mt/98986400/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to