Re: slow boot with 7fef431be9c9 ("mm/page_alloc: place pages to tail in __free_pages_core()")

From: David Hildenbrand
Date: Tue Mar 16 2021 - 05:10:26 EST


On 16.03.21 09:58, Liang, Liang (Leo) wrote:
[AMD Public Use]

Hi David,

root@scbu-Chachani:~# cat /proc/mtrr
reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg01: base=0x0ffe00000 ( 4094MB), size= 2MB, count=1: write-protect
reg02: base=0x100000000 ( 4096MB), size= 16MB, count=1: write-protect

^ there it is

https://wiki.osdev.org/MTRR

"Reads allocate cache lines on a cache miss. All writes update main memory.

Cache lines are not allocated on a write miss. Write hits invalidate the cache line and update main memory. "

AFAIU, writes completely bypass caches and store directly to main mamory. If there are cache lines from a previous read, they are invalidated. So I think especially slow will be read(addr), write(addr), read(addr), ... which is what we have in the kstream benchmark.


The question is:

who sets this up without owning the memory?
Is the memory actually special/slow or is that setting wrong?
Buggy firmware/BIOS?
Buggy device driver?


reg03: base=0x0ffde0000 ( 4093MB), size= 128KB, count=1: write-protect
reg04: base=0x0ff000000 ( 4080MB), size= 512KB, count=1: write-protect


--
Thanks,

David / dhildenb