On 3 June 2015 at 17:40, Laszlo Ersek <ler...@redhat.com> wrote: > On 06/03/15 16:49, Ard Biesheuvel wrote: >> This updates the sizes of the preallocated regions so that the number >> of distinct regions that exists is minimal at the time we exit boot >> services. >> >> For a typical run of the ArmVirtQemu platform, we get the following >> utilization numbers: >> >> Reserved : 4 Pages (16,384 Bytes) >> LoaderCode: 210 Pages (860,160 Bytes) >> LoaderData: 0 Pages (0 Bytes) >> BS_Code : 355 Pages (1,454,080 Bytes) >> BS_Data : 6,807 Pages (27,881,472 Bytes) >> RT_Code : 112 Pages (458,752 Bytes) >> RT_Data : 288 Pages (1,179,648 Bytes) >> ACPI_Recl : 32 Pages (131,072 Bytes) >> ACPI_NVS : 0 Pages (0 Bytes) >> MMIO : 16,385 Pages (67,112,960 Bytes) >> MMIO_Port : 0 Pages (0 Bytes) >> PalCode : 0 Pages (0 Bytes) >> Available : 123,264 Pages (504,889,344 Bytes) >> -------------- >> Total Memory: 511 MB (536,854,528 Bytes) >> >> Strangely enough, the allocation count of 20,000 pages for BS_Data >> does not result in those regions being merged. For BS_Code, RT_Code >> and RT_Data, the increased preallocation results in the following >> reduction in the number of regions. >> >> 0x000040000000-0x00004000ffff [Loader Data | | | | | >> |WB|WT|WC|UC] >> - 0x000040010000-0x0000b66bbfff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> - 0x0000b66bc000-0x0000b66d0fff [Loader Data | | | | | >> |WB|WT|WC|UC] >> - 0x0000b66d1000-0x0000b6f6bfff [Loader Code | | | | | >> |WB|WT|WC|UC] >> - 0x0000b6f6c000-0x0000b6f6ffff [Reserved | | | | | >> |WB|WT|WC|UC]* >> - 0x0000b6f70000-0x0000b6f8ffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000b6f90000-0x0000b6faffff [ACPI Reclaim Memory| | | | | >> |WB|WT|WC|UC]* >> - 0x0000b6fb0000-0x0000b6fcffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000b6fd0000-0x0000b701ffff [Runtime Data |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000b7020000-0x0000b702ffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000b7030000-0x0000b70cffff [Runtime Data |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000b70d0000-0x0000b70dffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> + 0x000040010000-0x0000b680bfff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> + 0x0000b680c000-0x0000b6820fff [Loader Data | | | | | >> |WB|WT|WC|UC] >> + 0x0000b6821000-0x0000b70bbfff [Loader Code | | | | | >> |WB|WT|WC|UC] >> + 0x0000b70bc000-0x0000b70bffff [Reserved | | | | | >> |WB|WT|WC|UC]* >> + 0x0000b70c0000-0x0000b70dffff [ACPI Reclaim Memory| | | | | >> |WB|WT|WC|UC]* >> 0x0000b70e0000-0x0000b9f87fff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> 0x0000b9f88000-0x0000bb921fff [Boot Data | | | | | >> |WB|WT|WC|UC] >> 0x0000bb922000-0x0000bb9bffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> 0x0000bb9c0000-0x0000bbbb0fff [Boot Data | | | | | >> |WB|WT|WC|UC] >> 0x0000bbbb1000-0x0000bbbeffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> 0x0000bbbf0000-0x0000bbf1ffff [Boot Data | | | | | >> |WB|WT|WC|UC] >> - 0x0000bbf20000-0x0000bedfffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> - 0x0000bee00000-0x0000bf71ffff [Loader Data | | | | | >> |WB|WT|WC|UC] >> - 0x0000bf720000-0x0000bf7ccfff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> - 0x0000bf7cd000-0x0000bf92ffff [Boot Code | | | | | >> |WB|WT|WC|UC] >> - 0x0000bf930000-0x0000bf93ffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> - 0x0000bf940000-0x0000bf95ffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> - 0x0000bf960000-0x0000bf97ffff [Runtime Data |RUN| | | | >> |WB|WT|WC|UC]* >> + 0x0000bbf20000-0x0000bebfffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> + 0x0000bec00000-0x0000bf51ffff [Loader Data | | | | | >> |WB|WT|WC|UC] >> + 0x0000bf520000-0x0000bf65cfff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> + 0x0000bf65d000-0x0000bf7bffff [Boot Code | | | | | >> |WB|WT|WC|UC] >> + 0x0000bf7c0000-0x0000bf84ffff [Runtime Code |RUN| | | | >> |WB|WT|WC|UC]* >> + 0x0000bf850000-0x0000bf86ffff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> + 0x0000bf870000-0x0000bf97ffff [Runtime Data |RUN| | | | >> |WB|WT|WC|UC]* >> 0x0000bf980000-0x0000bf997fff [Conventional Memory| | | | | >> |WB|WT|WC|UC] >> 0x0000bf998000-0x0000bf99afff [Boot Data | | | | | >> |WB|WT|WC|UC] >> 0x0000bf99b000-0x0000bf9aefff [Conventional Memory| | | | | >> |WB|WT|WC|UC] > > Heh, this output was produced by kernel code that I wrote. (I've written > negligible amounts of upstream kernel code.) Good way to sell me this > patch! :) > >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> >> --- >> ArmVirtPkg/ArmVirt.dsc.inc | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc >> index fd20ff39a068..08fb18a0c11a 100644 >> --- a/ArmVirtPkg/ArmVirt.dsc.inc >> +++ b/ArmVirtPkg/ArmVirt.dsc.inc >> @@ -330,9 +330,9 @@ >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0 >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0 >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0 >> - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|50 >> - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|20 >> - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000 >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000 >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20 >> gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0 >> > > Reviewed-by: Laszlo Ersek <ler...@redhat.com>
Thanks, pushed as r17554 -- Ard. ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel