[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v8 08/13] vpci/header: program p2m with guest BAR view
On 20.07.2023 02:32, Volodymyr Babchuk wrote: > @@ -52,8 +66,8 @@ static int cf_check map_range( > * - {un}map_mmio_regions doesn't support preemption. > */ > > - rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(s)) > - : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(s)); > + rc = map->map ? map_mmio_regions(map->d, start_gfn, size, _mfn(s)) > + : unmap_mmio_regions(map->d, start_gfn, size, _mfn(s)); Aiui this is the first direct exposure of these functions to DomU-s; so far all calls were Xen-internal or from a domctl. There are a couple of Arm TODOs listed in the comment ahead, but I'm not sure that's all what is lacking here, and it's unclear whether this can sensibly be left as a follow-on activity (at the very least known open issues need mentioning as TODOs). For example the x86 function truncates an unsigned long local variable to (signed) int in its main return statement. This may for the moment still be only a theoretical issue, but will need dealing with sooner or later, I think. Furthermore this yet again allows DomU-s to fiddle with their p2m. To a degree this is unavoidable, I suppose. But some thought may need putting into this anyway. Aiui on real hardware if a BAR is placed over RAM, behavior is simply undefined. Once the BAR is moved away though, behavior will become defined again: The RAM will "reappear" in case the earlier undefined-ness made it disappear. I don't know how the Arm variants of the functions behave, but on x86 the RAM pages will disappear from the guest's p2m upon putting a BAR there, but they won't reappear upon unmapping of the BAR. Luckily at least preemption looks to be handled in a satisfactory manner already. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |