linux/Documentation/virt/kvm
Ulrich Weigand f65470661f KVM: s390/interrupt: do not pin adapter interrupt pages
The adapter interrupt page containing the indicator bits is currently
pinned. That means that a guest with many devices can pin a lot of
memory pages in the host. This also complicates the reference tracking
which is needed for memory management handling of protected virtual
machines. It might also have some strange side effects for madvise
MADV_DONTNEED and other things.

We can simply try to get the userspace page set the bits and free the
page. By storing the userspace address in the irq routing entry instead
of the guest address we can actually avoid many lookups and list walks
so that this variant is very likely not slower.

If userspace messes around with the memory slots the worst thing that
can happen is that we write to some other memory within that process.
As we get the the page with FOLL_WRITE this can also not be used to
write to shared read-only pages.

Signed-off-by: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
[borntraeger@de.ibm.com: patch simplification]
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2020-02-27 19:47:10 +01:00
..
arm docs: kvm: arm/psci.txt: convert to ReST 2020-02-12 20:10:01 +01:00
devices KVM: s390/interrupt: do not pin adapter interrupt pages 2020-02-27 19:47:10 +01:00
amd-memory-encryption.rst
api.rst docs: kvm: Convert api.txt to ReST format 2020-02-12 20:09:59 +01:00
cpuid.rst
halt-polling.rst docs: virt: convert halt-polling.txt to ReST format 2020-02-12 20:09:50 +01:00
hypercalls.rst docs: kvm: Convert hypercalls.txt to ReST format 2020-02-12 20:10:02 +01:00
index.rst docs: kvm: review-checklist.txt: rename to ReST 2020-02-12 20:10:07 +01:00
locking.rst docs: kvm: Convert locking.txt to ReST format 2020-02-12 20:10:02 +01:00
mmu.rst docs: kvm: Convert mmu.txt to ReST format 2020-02-12 20:10:03 +01:00
msr.rst docs: virt: Convert msr.txt to ReST format 2020-02-12 20:09:51 +01:00
nested-vmx.rst docs: kvm: Convert nested-vmx.txt to ReST format 2020-02-12 20:10:04 +01:00
ppc-pv.rst docs: kvm: Convert ppc-pv.txt to ReST format 2020-02-12 20:10:05 +01:00
review-checklist.rst docs: kvm: review-checklist.txt: rename to ReST 2020-02-12 20:10:07 +01:00
s390-diag.rst docs: kvm: Convert s390-diag.txt to ReST format 2020-02-12 20:10:06 +01:00
timekeeping.rst docs: kvm: Convert timekeeping.txt to ReST format 2020-02-12 20:10:06 +01:00
vcpu-requests.rst