All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
	Janosch Frank <frankja@linux.vnet.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: KVM <kvm@vger.kernel.org>, Cornelia Huck <cohuck@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Ulrich Weigand <Ulrich.Weigand@de.ibm.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>,
	linux-s390 <linux-s390@vger.kernel.org>,
	Michael Mueller <mimu@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	linux-mm@kvack.org, Will Deacon <will@kernel.org>
Subject: Re: [PATCH v3 01/37] mm:gup/writeback: add callbacks for inaccessible pages
Date: Thu, 20 Feb 2020 13:15:05 +0100	[thread overview]
Message-ID: <c47b3511-2447-e463-abb8-9bd3f35932c8@redhat.com> (raw)
In-Reply-To: <20200220104020.5343-2-borntraeger@de.ibm.com>

On 20.02.20 11:39, Christian Borntraeger wrote:
> From: Claudio Imbrenda <imbrenda@linux.ibm.com>
> 
> With the introduction of protected KVM guests on s390 there is now a
> concept of inaccessible pages. These pages need to be made accessible
> before the host can access them.
> 
> While cpu accesses will trigger a fault that can be resolved, I/O
> accesses will just fail.  We need to add a callback into architecture
> code for places that will do I/O, namely when writeback is started or
> when a page reference is taken.
> 
> This is not only to enable paging, file backing etc, it is also
> necessary to protect the host against a malicious user space. For
> example a bad QEMU could simply start direct I/O on such protected
> memory.  We do not want userspace to be able to trigger I/O errors and
> thus we the logic is "whenever somebody accesses that page (gup) or
> doing I/O, make sure that this page can be accessed. When the guest
> tries to access that page we will wait in the page fault handler for
> writeback to have finished and for the page_ref to be the expected
> value.


Subject: "mm: gup..."

And I'd probably add that on s390x, it's unlikely to ever return !0.
(why the WARN_ON is okay and has to be tackled once relevant)

> 
> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> Acked-by: Will Deacon <will@kernel.org>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb

  reply	other threads:[~2020-02-20 12:15 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 10:39 [PATCH v3 00/37] KVM: s390: Add support for protected VMs Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 01/37] mm:gup/writeback: add callbacks for inaccessible pages Christian Borntraeger
2020-02-20 12:15   ` David Hildenbrand [this message]
2020-02-20 10:39 ` [PATCH v3 02/37] KVM: s390/interrupt: do not pin adapter interrupt pages Christian Borntraeger
2020-02-21  8:09   ` [PATCH v3.1 " Christian Borntraeger
2020-02-21  9:50     ` David Hildenbrand
2020-02-21 10:41     ` Cornelia Huck
2020-02-21 11:05       ` Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 03/37] s390/protvirt: introduce host side setup Christian Borntraeger
2020-02-21 12:39   ` Cornelia Huck
2020-02-20 10:39 ` [PATCH v3 04/37] s390/protvirt: add ultravisor initialization Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 05/37] s390/mm: provide memory management functions for protected KVM guests Christian Borntraeger
2020-02-20 12:25   ` David Hildenbrand
2020-02-20 10:39 ` [PATCH v3 06/37] s390/mm: add (non)secure page access exceptions handlers Christian Borntraeger
2020-02-21 10:38   ` David Hildenbrand
2020-02-20 10:39 ` [PATCH v3 07/37] KVM: s390: protvirt: Add UV debug trace Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 08/37] KVM: s390: add new variants of UV CALL Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 09/37] KVM: s390: protvirt: Add initial vm and cpu lifecycle handling Christian Borntraeger
2020-02-20 13:02   ` David Hildenbrand
2020-02-20 19:44     ` Christian Borntraeger
2020-02-21  8:07       ` [PATCH v3.1 " Christian Borntraeger
2020-02-21 11:45         ` David Hildenbrand
2020-02-21 13:03           ` Christian Borntraeger
2020-02-21 13:08             ` David Hildenbrand
2020-02-21  8:22       ` [PATCH v3 " David Hildenbrand
2020-02-21  8:40         ` Christian Borntraeger
2020-02-21 11:47           ` David Hildenbrand
2020-02-20 10:39 ` [PATCH v3 10/37] KVM: s390: protvirt: Add KVM api documentation Christian Borntraeger
2020-02-20 13:05   ` David Hildenbrand
2020-02-20 13:55     ` Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 11/37] KVM: s390: protvirt: Secure memory is not mergeable Christian Borntraeger
2020-02-21 12:49   ` Cornelia Huck
2020-02-20 10:39 ` [PATCH v3 12/37] KVM: s390/mm: Make pages accessible before destroying the guest Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 13/37] KVM: s390: protvirt: Handle SE notification interceptions Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 14/37] KVM: s390: protvirt: Instruction emulation Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 15/37] KVM: s390: protvirt: Implement interrupt injection Christian Borntraeger
2020-02-20 10:39 ` [PATCH v3 16/37] KVM: s390: protvirt: Add SCLP interrupt handling Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 17/37] KVM: s390: protvirt: Handle spec exception loops Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 18/37] KVM: s390: protvirt: Add new gprs location handling Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 19/37] KVM: S390: protvirt: Introduce instruction data area bounce buffer Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 20/37] KVM: s390: protvirt: handle secure guest prefix pages Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 21/37] KVM: s390/mm: handle guest unpin events Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 22/37] KVM: s390: protvirt: Write sthyi data to instruction data area Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 23/37] KVM: s390: protvirt: STSI handling Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 24/37] KVM: s390: protvirt: disallow one_reg Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 25/37] KVM: s390: protvirt: Do only reset registers that are accessible Christian Borntraeger
2020-02-21 10:39   ` David Hildenbrand
2020-02-20 10:40 ` [PATCH v3 26/37] KVM: s390: protvirt: Only sync fmt4 registers Christian Borntraeger
2020-02-21 10:43   ` David Hildenbrand
2020-02-20 10:40 ` [PATCH v3 27/37] KVM: s390: protvirt: Add program exception injection Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 28/37] KVM: s390: protvirt: UV calls in support of diag308 0, 1 Christian Borntraeger
2020-02-21 10:44   ` David Hildenbrand
2020-02-20 10:40 ` [PATCH v3 29/37] KVM: s390: protvirt: Report CPU state to Ultravisor Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 30/37] KVM: s390: protvirt: Support cmd 5 operation state Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 31/37] KVM: s390: protvirt: Mask PSW interrupt bits for interception 104 and 112 Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 32/37] KVM: s390: protvirt: do not inject interrupts after start Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 33/37] KVM: s390: protvirt: Add UV cpu reset calls Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 34/37] DOCUMENTATION: Protected virtual machine introduction and IPL Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 35/37] s390: protvirt: Add sysfs firmware interface for Ultravisor information Christian Borntraeger
2020-02-21 10:46   ` David Hildenbrand
2020-02-20 10:40 ` [PATCH v3 36/37] KVM: s390: rstify new ioctls in api.rst Christian Borntraeger
2020-02-21 10:47   ` David Hildenbrand
2020-02-21 10:51   ` Cornelia Huck
2020-02-21 11:13     ` Christian Borntraeger
2020-02-20 10:40 ` [PATCH v3 37/37] KVM: s390: protvirt: introduce and enable KVM_CAP_S390_PROTECTED Christian Borntraeger
2020-02-21 10:47   ` David Hildenbrand
2020-02-21 10:54 ` [PATCH v3 00/37] KVM: s390: Add support for protected VMs David Hildenbrand
2020-02-21 11:26   ` Christian Borntraeger
2020-02-21 11:28     ` David Hildenbrand
2020-02-21 13:45       ` Cornelia Huck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c47b3511-2447-e463-abb8-9bd3f35932c8@redhat.com \
    --to=david@redhat.com \
    --cc=Ulrich.Weigand@de.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=frankja@linux.vnet.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mimu@linux.ibm.com \
    --cc=thuth@redhat.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.