[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging-4.16] revert "hvmloader: PA range 0xfc000000-0xffffffff should be UC"
commit 1bba0ce1d94e685762827051f722efc96cb180a1 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Thu Jan 6 14:14:19 2022 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Jan 6 14:14:19 2022 +0100 revert "hvmloader: PA range 0xfc000000-0xffffffff should be UC" This reverts commit c22bd567ce22f6ad9bd93318ad0d7fd1c2eadb0d. While its description is correct from an abstract or real hardware pov, the range is special inside HVM guests. The range being UC in particular gets in the way of OVMF, which places itself at [FFE00000,FFFFFFFF]. While this is benign to epte_get_entry_emt() as long as the IOMMU isn't enabled for a guest, it becomes a very noticable problem otherwise: It takes about half a minute for OVMF to decompress itself into its designated address range. And even beyond OVMF there's no reason to have e.g. the ACPI memory range marked UC. Fixes: c22bd567ce22 ("hvmloader: PA range 0xfc000000-0xffffffff should be UC") Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> master commit: ea187c0b7a73c26258c0e91e4f3656989804555f master date: 2021-12-17 08:56:15 +0100 --- tools/firmware/hvmloader/cacheattr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/firmware/hvmloader/cacheattr.c b/tools/firmware/hvmloader/cacheattr.c index 1ac6656c70..1c67819748 100644 --- a/tools/firmware/hvmloader/cacheattr.c +++ b/tools/firmware/hvmloader/cacheattr.c @@ -98,12 +98,12 @@ void cacheattr_init(void) { uint64_t base = pci_mem_start, size; - for ( i = 0; !(base >> 32) && (i < nr_var_ranges); i++ ) + for ( i = 0; (base != pci_mem_end) && (i < nr_var_ranges); i++ ) { size = PAGE_SIZE; while ( !(base & size) ) size <<= 1; - while ( ((base + size) < base) || ((base + size - 1) >> 32) ) + while ( ((base + size) < base) || ((base + size) > pci_mem_end) ) size >>= 1; wrmsr(MSR_MTRRphysBase(i), base); -- generated by git-patchbot for /home/xen/git/xen.git#staging-4.16
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |