[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/4] x86/PVH: de-duplicate mappings for first Mb of Dom0 memory
On 31.08.2021 15:14, Jan Beulich wrote: > On 31.08.2021 15:02, Andrew Cooper wrote: >> On 30/08/2021 14:02, Jan Beulich wrote: >>> One of the changes comprising the fixes for XSA-378 disallows replacing >>> MMIO mappings by unintended (for this purpose) code paths. >> >> I'd drop the brackets. All it does is confuse the sentence. >> >>> This means we >>> need to be more careful about the mappings put in place in this range - >>> mappings should be created exactly once: >>> - iommu_hwdom_init() comes first; it should avoid the first Mb, >>> - pvh_populate_p2m() should insert identity mappings only into ranges >>> not populated as RAM, >>> - pvh_setup_acpi() should again avoid the first Mb, which was already >>> dealt with at that point. >> >> This really is a mess. It also seems very fragile. > > So it seems to me. > >> Why is iommu_hwdom_init() separate in the first place? It only does >> mappings up to 4G in the first place, and with this change, it is now >> [1M-4G) > > I guess we'll want to wait for Roger to return to shed some light on > this. > >>> @@ -1095,6 +1101,17 @@ static int __init pvh_setup_acpi(struct >>> nr_pages = PFN_UP((d->arch.e820[i].addr & ~PAGE_MASK) + >>> d->arch.e820[i].size); >>> >>> + /* Memory below 1MB has been dealt with by pvh_populate_p2m(). */ >>> + if ( pfn < PFN_DOWN(MB(1)) ) >>> + { >>> + if ( pfn + nr_pages <= PFN_DOWN(MB(1)) ) >>> + continue; >>> + >>> + /* This shouldn't happen, but is easy to deal with. */ >> >> I'm not sure this comment is helpful. >> >> Under PVH, there is nothing special about the 1M boundary, and we can >> reasonably have something else here or crossing the boundary. > > As long as we have this special treatment of the low Mb, the boundary > is meaningful imo. I'd see the comment go away when the handling in > general gets streamlined. I should have added: And as long as Dom0's E820 map gets cloned from the host's, which will necessarily consider the 1Mb boundary special. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |