On Wed, Feb 03, 2021 at 02:33:56PM +0100, David Hildenbrand wrote:
One problem I see with existing code / this change making more obvious is
that when trying to remove in other granularity than we added (e.g., unplug
a 128MB DIMM avaialble during boot), we remove the direct map of unrelated
DIMMs.
So, let me see if I understand your concern.
We have a range that was mapped with 1GB page, and we try to remove
a 128MB chunk from it.
Yes, in that case we would clear the pud, and that is bad, so we should
keep the PAGE_ALIGNED checks.
Now, let us assume that scenario.
If you have a 1GB mapped range and you remove it in smaller chunks bit by bit
(e.g: 128M), the direct mapping of that range will never be cleared unless