On 5/24/22 23:25, Jason Gunthorpe wrote:
On Mon, May 23, 2022 at 04:02:22PM +1000, Alexey Kardashevskiy wrote:
Which means the guest RAM does not need to be all mapped in that base IOAS
suggested down this thread as that would mean all memory is pinned and
powervm won't be able to swap it out (yeah, it can do such thing now!). Not
sure if we really want to support this or stick to a simpler design.
Huh? How can it swap? Calling GUP is not optional. Either you call GUP
at the start and there is no swap, or you call GUP for each vIOMMU
hypercall.
Correct, not optional.
Since everyone says PPC doesn't call GUP during the hypercall - how is
it working?
It does not call GUP during hypercalls because all VM pages are GUPed in
advance at a special memory preregistration step as we could not call
GUP from a hypercall handler with MMU off (often the case with POWER8
when this was developed in the first place). Things are better with
POWER9 (bare metal can do all sorts of things pretty much) but the
PowerVM interface with 2 windows is still there and this iommufd
proposal is going to be ported on top of PowerVM at first.
I am just saying there is a model when not everything is mapped and this
has its use. The PowerVM's swapping capability is something new and I do
not really know how that works though.
--
Alexey