On Mon, 26 Nov 2018 at 11:22, Laszlo Ersek <[email protected]> wrote:
>
> On 11/23/18 13:14, Ard Biesheuvel wrote:
> > The ArmVirtQemu targets currently limit the size of the IPA space to
> > 40 bits because that is all what KVM supports. However, this is about
> > to change, and so we need to update the code if we want to ensure that
> > our UEFI firmware builds can keep running on systems that set values
> > other than 40 (which could be > 40 or < 40)
> >
> > So add a helper to ArmLib to read the number of supported address bits (#1)
> > and take this into account in the page table code (#2), which allows
> > PcdPrePiCpuMemorySize to assume a value that exceeds the capabilities of
> > the CPU.
> >
> > Patch #3 is mostly a cleanup patch, to switch to the new helper added in
> > patch #1. No functional changes intended.
> >
> > Patch #4 builds the CPU hob (and thus declares the size of the GCD memory
> > space) based on the CPU capabilities rather than the value of
> > PcdPrePiCpuMemorySize, to prevent any potential regressions in memory
> > utilization when we bump PcdPrePiCpuMemorySize back to 48.
> >
> > Patch #5 drops the definitions of PcdPrePiCpuMemorySize, reverting its
> > value back to the default 48.
>
> Staring a bit more at this, I wonder if it were helpful to reorder the
> patches like this (just thinking loudly, I'm not even suggesting it, I'm
> just curious about your opinion):
>
> - patch #1: keep in place (introduce new helper)
> - patch #2: current patch #3 (ArmVirtPkg refactoring), to benefit from
>   the new helper at once, without any relation to the feature that's the
>   end goal here.
> - patch #3: current patch #2, build page tables with CPU PA limits
>   accounted for
> - patch #4: current patch #4, build GCD memory space map with CPU PA
>   limits accounted for
> - patch #5: remove the traces of the now useless PCD from ArmVirt
>
> So basically, swap around #2 and #3. It's not really important; the
> reason I'm thinking of it is the following though: while removing the
> 40-bit limitation, my first thought is, "what are the current consumers,
> what needs to be updated".
>
> The current structuring of the series, with patch #3 in the middle,
> suggests that ArmVirtMemInfoLib instances are consumers. That's not the
> case however, they already fetch the CPU PA limits dynamically. So they
> need no functional updates, just a cleanup / centralization. That's why
> I'd find it helpful to handle ArmVirtMemInfoLib right after the
> introduction of the helper.
>
> The actual consumers (in need of functional updates) are the page tables
> and the GCD memory space map (two concepts, not three).
>
> If you think this would be an improvement, please consider the
> reordering. No need to repost just for this.
>

Yes, I think that makes sense.
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to