OK, thanks! On 06/08/2015 12:38 PM, Tian, Feng wrote: > Liming is the DxeCore module owner. > > I own the whole MdeModulePkg, and may dispatch community patch/review request > to corresponding owner if it's not straightforward for me. > > The review process from your side is ok. Don't worry about that:-) > > Thanks > Feng > > -----Original Message----- > From: Heyi Guo [mailto:heyi....@linaro.org] > Sent: Monday, June 08, 2015 12:26 > To: edk2-devel@lists.sourceforge.net; Tian, Feng > Cc: Ilias Biris > Subject: Re: [edk2] [PATCH] MdeModulePkg: Fix bug of AllocatePages for large > alignment > > Thanks Liming. > > I saw Tian is the maintainer of MdeModulePkg, so I had sent the mail to him. > > It will be great if you could help to commit this change :) > > > > On 06/08/2015 11:18 AM, Gao, Liming wrote: >> Heyi: >> Thanks for your catch issue. It only happens when the default alignment >> is different. Now, only Arm Arch64 uses the different alignments for the >> different memory types. So, you meet with this issue on QEMU AARCH64 UEFI. >> I agree your fix. Reviewed-by: Liming Gao <liming....@intel.com> >> >> Btw: if you need my help to commit this change, I would like to do it. >> >> Thanks >> Liming >> -----Original Message----- >> From: Heyi Guo [mailto:heyi....@linaro.org] >> Sent: Monday, June 08, 2015 9:26 AM >> To: Tian, Feng >> Cc: edk2-devel@lists.sourceforge.net; Ilias Biris >> Subject: Re: [edk2] [PATCH] MdeModulePkg: Fix bug of AllocatePages for >> large alignment >> >> Hi Tian, >> >> Do you have any comments on this patch? >> >> Thanks! >> >> On 06/05/2015 09:57 AM, Heyi Guo wrote: >>> Hi Ard, >>> >>> I got this error when running SCT against QEMU AARCH64 UEFI. I think >>> it will only happen for aarch64 runtime services allocation, because >>> only this type of memory requires more than 4 pages alignment, which >>> will trigger the bug. If we use the same alignment (e.g. 64KB) for >>> both boot and runtime memory, it just avoid the bug indirectly, as >>> each descriptor would be kept naturally aligned with 64KB. >>> >>> Thanks. >>> >>> On 06/05/2015 12:08 AM, Ard Biesheuvel wrote: >>>> On 4 June 2015 at 17:55, Heyi Guo <heyi....@linaro.org> wrote: >>>>> DescEnd will be clipped for alignment in CoreFindFreePagesI, and it >>>>> may fall below DescStart, when alignment is more than 16KB >>>>> (included) and both DescStart and original DescEnd fall into a >>>>> single range of such alignment. This results in a huge size >>>>> (Negative number in unsigned type) for this descriptor, fulfilling >>>>> the allocation requirement but failing to run ConvertPages; at last >>>>> it causes >>>> at least >>>> >>>>> occasional failure of AllocatePages. >>>>> >>>>> A simple comparison is added to ensure we would never get a >>>>> negative number. >>>>> >>>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>>> Signed-off-by: Heyi Guo <heyi....@linaro.org> >>>> Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org> >>>> >>>> So is this only happening because we use different granularities for >>>> boottime and runtime allocations on AArch64? >>>> >>>> >>>>> --- >>>>> MdeModulePkg/Core/Dxe/Mem/Page.c | 5 +++++ >>>>> 1 file changed, 5 insertions(+) >>>>> >>>>> diff --git a/MdeModulePkg/Core/Dxe/Mem/Page.c >>>>> b/MdeModulePkg/Core/Dxe/Mem/Page.c >>>>> index a92c865..f2efaf1 100644 >>>>> --- a/MdeModulePkg/Core/Dxe/Mem/Page.c >>>>> +++ b/MdeModulePkg/Core/Dxe/Mem/Page.c >>>>> @@ -1051,6 +1051,11 @@ CoreFindFreePagesI ( >>>>> >>>>> DescEnd = ((DescEnd + 1) & (~(Alignment - 1))) - 1; >>>>> >>>>> + // Skip if DescEnd is less than DescStart after alignment clipping >>>>> + if (DescEnd < DescStart) { >>>>> + continue; >>>>> + } >>>>> + >>>>> // >>>>> // Compute the number of bytes we can used from this >>>>> // descriptor, and see it's enough to satisfy the request >>>>> -- >>>>> 2.1.4 >>>>> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/edk2-devel >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel