Messages in this thread | | | Date | Thu, 3 Dec 2020 09:48:57 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH] x86/cpu/amd: Remove dead code for TSEG region remapping |
| |
On Wed, Dec 02, 2020 at 05:32:32PM -0500, Arvind Sankar wrote: > The pfn_range_is_mapped() call just checks whether it is mapped at all > in the direct mapping. Is the TSEG range supposed to be marked as > non-RAM in the E820 map? AFAICS, the only case when a direct mapping is > created for non-RAM is for the 0-1Mb real-mode range, and that will > always use 4k pages. Above that anything not marked as RAM will create > an unmapped hole in the direct map, so in this case the memory just > below the TSEG base would already use smaller pages if needed. > > If it's possible that the E820 mapping says this range is RAM, then > should we also break up the direct map just after the end of the TSEG > range for the same reason?
So I have a machine where TSEG is not 2M aligned and somewhere in the 1G range:
[ 1.135094] tseg: 003bf00000
It is not in the E820 map either:
[ 0.019784] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.020014] init_memory_mapping: [mem 0x3bc00000-0x3bdfffff] [ 0.020166] init_memory_mapping: [mem 0x20000000-0x3bbfffff] [ 0.020327] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.020677] init_memory_mapping: [mem 0x3be00000-0x3be8ffff]
That doesn't mean that it can happen that there might be some configuration where it ends up being mapped.
So looking at what the code does, it kinda makes sense: you want the 2M range between 0x3be00000 and 0x3c000000 to be split into 4K mappings, *if* it is mapped.
I need to find a box where it is mapped *and* not 2M aligned, though, for testing. Which appears kinda hard to do as all the new ones are aligned.
The above is from a K8 box which should already be dead, as a matter of fact.
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |