From: Bharata B Rao <bharata@linux.ibm.com>
To: Paul Mackerras <paulus@ozlabs.org>
Cc: linuxram@us.ibm.com, cclaudio@linux.ibm.com,
kvm-ppc@vger.kernel.org, linux-mm@kvack.org, jglisse@redhat.com,
Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
Bharata B Rao <bharata.rao@gmail.com>,
paulus@au1.ibm.com, sukadev@linux.vnet.ibm.com,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v9 2/8] KVM: PPC: Move pages between normal and secure memory
Date: Wed, 23 Oct 2019 11:11:22 +0530 [thread overview]
Message-ID: <20191023054122.GA1295@in.ibm.com> (raw)
In-Reply-To: <20191023041754.GA5809@oak.ozlabs.ibm.com>
On Wed, Oct 23, 2019 at 03:17:54PM +1100, Paul Mackerras wrote:
> On Tue, Oct 22, 2019 at 11:59:35AM +0530, Bharata B Rao wrote:
> The mapping of pages in userspace memory, and the mapping of userspace
> memory to guest physical space, are two distinct things. The memslots
> describe the mapping of userspace addresses to guest physical
> addresses, but don't say anything about what is mapped at those
> userspace addresses. So you can indeed get a page fault on a
> userspace address at the same time that a memslot is being deleted
> (even a memslot that maps that particular userspace address), because
> removing the memslot does not unmap anything from userspace memory,
> it just breaks the association between that userspace memory and guest
> physical memory. Deleting the memslot does unmap the pages from the
> guest but doesn't unmap them from the userspace process (e.g. QEMU).
>
> It is an interesting question what the semantics should be when a
> memslot is deleted and there are pages of userspace currently paged
> out to the device (i.e. the ultravisor). One approach might be to say
> that all those pages have to come back to the host before we finish
> the memslot deletion, but that is probably not necessary; I think we
> could just say that those pages are gone and can be replaced by zero
> pages if they get accessed on the host side. If userspace then unmaps
> the corresponding region of the userspace memory map, we can then just
> forget all those pages with very little work.
There are 5 scenarios currently where we are replacing the device mappings:
1. Guest reset
2. Memslot free (Memory unplug) (Not present in this version though)
3. Converting secure page to shared page
4. HV touching the secure page
5. H_SVM_INIT_ABORT hcall to abort SVM due to errors when transitioning
to secure mode (Not present in this version)
In the first 3 cases, we don't need to get the page to HV from
the secure side and hence skip the page out. However currently we do
allocate fresh page and replace the mapping with the new one.
> > However if that sounds fragile, may be I can go back to my initial
> > design where we weren't using rmap[] to store device PFNs. That will
> > increase the memory usage but we give us an easy option to have
> > per-guest mutex to protect concurrent page-ins/outs/faults.
>
> That sounds like it would be the best option, even if only in the
> short term. At least it would give us a working solution, even if
> it's not the best performing solution.
Sure, will avoid using rmap[] in the next version.
Regards,
Bharata.
next prev parent reply other threads:[~2019-10-23 5:43 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-25 5:06 [PATCH v9 0/8] KVM: PPC: Driver to manage pages of secure guest Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 1/8] KVM: PPC: Book3S HV: Define usage types for rmap array in guest memslot Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 2/8] KVM: PPC: Move pages between normal and secure memory Bharata B Rao
2019-09-25 12:12 ` Jason Gunthorpe
2019-10-18 3:00 ` Paul Mackerras
2019-10-22 6:29 ` Bharata B Rao
2019-10-23 4:17 ` Paul Mackerras
2019-10-23 5:41 ` Bharata B Rao [this message]
2019-09-25 5:06 ` [PATCH v9 3/8] KVM: PPC: Shared pages support for secure guests Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 4/8] KVM: PPC: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 5/8] KVM: PPC: Handle memory plug/unplug to secure VM Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 6/8] KVM: PPC: Radix changes for secure guest Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 7/8] KVM: PPC: Support reset of " Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 8/8] KVM: PPC: Ultravisor: Add PPC_UV config option Bharata B Rao
2019-09-25 12:14 ` [PATCH v9 0/8] KVM: PPC: Driver to manage pages of secure guest Jason Gunthorpe
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=20191023054122.GA1295@in.ibm.com \
--to=bharata@linux.ibm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=bharata.rao@gmail.com \
--cc=cclaudio@linux.ibm.com \
--cc=hch@lst.de \
--cc=jglisse@redhat.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=linuxram@us.ibm.com \
--cc=paulus@au1.ibm.com \
--cc=paulus@ozlabs.org \
--cc=sukadev@linux.vnet.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).