All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bharata B Rao <bharata@linux.ibm.com>
To: Paul Mackerras <paulus@ozlabs.org>
Cc: linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org,
	linux-mm@kvack.org, paulus@au1.ibm.com,
	aneesh.kumar@linux.vnet.ibm.com, jglisse@redhat.com,
	cclaudio@linux.ibm.com, linuxram@us.ibm.com,
	sukadev@linux.vnet.ibm.com, hch@lst.de
Subject: Re: [PATCH v10 6/8] KVM: PPC: Support reset of secure guest
Date: Mon, 11 Nov 2019 12:25:22 +0530	[thread overview]
Message-ID: <20191111065522.GH21634@in.ibm.com> (raw)
In-Reply-To: <20191111052806.GC4017@oak.ozlabs.ibm.com>

On Mon, Nov 11, 2019 at 04:28:06PM +1100, Paul Mackerras wrote:
> On Mon, Nov 04, 2019 at 09:47:58AM +0530, Bharata B Rao wrote:
> > Add support for reset of secure guest via a new ioctl KVM_PPC_SVM_OFF.
> > This ioctl will be issued by QEMU during reset and includes the
> > the following steps:
> > 
> > - Ask UV to terminate the guest via UV_SVM_TERMINATE ucall
> > - Unpin the VPA pages so that they can be migrated back to secure
> >   side when guest becomes secure again. This is required because
> >   pinned pages can't be migrated.
> 
> Unpinning the VPA pages is normally handled during VM reset by QEMU
> doing set_one_reg operations to set the values for the
> KVM_REG_PPC_VPA_ADDR, KVM_REG_PPC_VPA_SLB and KVM_REG_PPC_VPA_DTL
> pseudo-registers to zero.  Is there some reason why this isn't
> happening for a secure VM, and if so, what is that reason?
> If it is happening, then why do we need to unpin the pages explicitly
> here?

We were observing these VPA pages still remaining pinned during
reset and hence subsequent paging-in of these pages were failing.
Unpinning them fixed the problem.

I will investigate and get back on why exactly these pages weren't
gettting unpinned normally as part of reset.

> 
> > - Reinitialize guest's partitioned scoped page tables. These are
> >   freed when guest becomes secure (H_SVM_INIT_DONE)
> 
> It doesn't seem particularly useful to me to free the partition-scoped
> page tables when the guest becomes secure, and it feels like it makes
> things more fragile.  If you don't free them then, then you don't need
> to reallocate them now.

Sure, I will not free them in the next version.

Regards,
Bharata.



WARNING: multiple messages have this Message-ID (diff)
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@linux.vnet.ibm.com, paulus@au1.ibm.com,
	sukadev@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org,
	hch@lst.de
Subject: Re: [PATCH v10 6/8] KVM: PPC: Support reset of secure guest
Date: Mon, 11 Nov 2019 12:25:22 +0530	[thread overview]
Message-ID: <20191111065522.GH21634@in.ibm.com> (raw)
In-Reply-To: <20191111052806.GC4017@oak.ozlabs.ibm.com>

On Mon, Nov 11, 2019 at 04:28:06PM +1100, Paul Mackerras wrote:
> On Mon, Nov 04, 2019 at 09:47:58AM +0530, Bharata B Rao wrote:
> > Add support for reset of secure guest via a new ioctl KVM_PPC_SVM_OFF.
> > This ioctl will be issued by QEMU during reset and includes the
> > the following steps:
> > 
> > - Ask UV to terminate the guest via UV_SVM_TERMINATE ucall
> > - Unpin the VPA pages so that they can be migrated back to secure
> >   side when guest becomes secure again. This is required because
> >   pinned pages can't be migrated.
> 
> Unpinning the VPA pages is normally handled during VM reset by QEMU
> doing set_one_reg operations to set the values for the
> KVM_REG_PPC_VPA_ADDR, KVM_REG_PPC_VPA_SLB and KVM_REG_PPC_VPA_DTL
> pseudo-registers to zero.  Is there some reason why this isn't
> happening for a secure VM, and if so, what is that reason?
> If it is happening, then why do we need to unpin the pages explicitly
> here?

We were observing these VPA pages still remaining pinned during
reset and hence subsequent paging-in of these pages were failing.
Unpinning them fixed the problem.

I will investigate and get back on why exactly these pages weren't
gettting unpinned normally as part of reset.

> 
> > - Reinitialize guest's partitioned scoped page tables. These are
> >   freed when guest becomes secure (H_SVM_INIT_DONE)
> 
> It doesn't seem particularly useful to me to free the partition-scoped
> page tables when the guest becomes secure, and it feels like it makes
> things more fragile.  If you don't free them then, then you don't need
> to reallocate them now.

Sure, I will not free them in the next version.

Regards,
Bharata.


WARNING: multiple messages have this Message-ID (diff)
From: Bharata B Rao <bharata@linux.ibm.com>
To: Paul Mackerras <paulus@ozlabs.org>
Cc: linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org,
	linux-mm@kvack.org, paulus@au1.ibm.com,
	aneesh.kumar@linux.vnet.ibm.com, jglisse@redhat.com,
	cclaudio@linux.ibm.com, linuxram@us.ibm.com,
	sukadev@linux.vnet.ibm.com, hch@lst.de
Subject: Re: [PATCH v10 6/8] KVM: PPC: Support reset of secure guest
Date: Mon, 11 Nov 2019 06:55:37 +0000	[thread overview]
Message-ID: <20191111065522.GH21634@in.ibm.com> (raw)
In-Reply-To: <20191111052806.GC4017@oak.ozlabs.ibm.com>

On Mon, Nov 11, 2019 at 04:28:06PM +1100, Paul Mackerras wrote:
> On Mon, Nov 04, 2019 at 09:47:58AM +0530, Bharata B Rao wrote:
> > Add support for reset of secure guest via a new ioctl KVM_PPC_SVM_OFF.
> > This ioctl will be issued by QEMU during reset and includes the
> > the following steps:
> > 
> > - Ask UV to terminate the guest via UV_SVM_TERMINATE ucall
> > - Unpin the VPA pages so that they can be migrated back to secure
> >   side when guest becomes secure again. This is required because
> >   pinned pages can't be migrated.
> 
> Unpinning the VPA pages is normally handled during VM reset by QEMU
> doing set_one_reg operations to set the values for the
> KVM_REG_PPC_VPA_ADDR, KVM_REG_PPC_VPA_SLB and KVM_REG_PPC_VPA_DTL
> pseudo-registers to zero.  Is there some reason why this isn't
> happening for a secure VM, and if so, what is that reason?
> If it is happening, then why do we need to unpin the pages explicitly
> here?

We were observing these VPA pages still remaining pinned during
reset and hence subsequent paging-in of these pages were failing.
Unpinning them fixed the problem.

I will investigate and get back on why exactly these pages weren't
gettting unpinned normally as part of reset.

> 
> > - Reinitialize guest's partitioned scoped page tables. These are
> >   freed when guest becomes secure (H_SVM_INIT_DONE)
> 
> It doesn't seem particularly useful to me to free the partition-scoped
> page tables when the guest becomes secure, and it feels like it makes
> things more fragile.  If you don't free them then, then you don't need
> to reallocate them now.

Sure, I will not free them in the next version.

Regards,
Bharata.

  reply	other threads:[~2019-11-11  6:55 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04  4:17 [PATCH v10 0/8] KVM: PPC: Driver to manage pages of secure guest Bharata B Rao
2019-11-04  4:29 ` Bharata B Rao
2019-11-04  4:17 ` Bharata B Rao
2019-11-04  4:17 ` [PATCH v10 1/8] mm: ksm: Export ksm_madvise() Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-06  4:33   ` Paul Mackerras
2019-11-06  4:33     ` Paul Mackerras
2019-11-06  4:33     ` Paul Mackerras
2019-11-06  6:45     ` Bharata B Rao
2019-11-06  6:57       ` Bharata B Rao
2019-11-06  6:45       ` Bharata B Rao
2019-11-07  5:45       ` Paul Mackerras
2019-11-07  5:45         ` Paul Mackerras
2019-11-07  5:45         ` Paul Mackerras
2019-11-15 14:10         ` Bharata B Rao
2019-11-15 14:22           ` Bharata B Rao
2019-11-15 14:10           ` Bharata B Rao
2019-11-04  4:17 ` [PATCH v10 2/8] KVM: PPC: Support for running secure guests Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-06  4:34   ` Paul Mackerras
2019-11-06  4:34     ` Paul Mackerras
2019-11-06  4:34     ` Paul Mackerras
2019-11-04  4:17 ` [PATCH v10 3/8] KVM: PPC: Shared pages support for " Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-06  4:52   ` Paul Mackerras
2019-11-06  4:52     ` Paul Mackerras
2019-11-06  4:52     ` Paul Mackerras
2019-11-06  8:22     ` Bharata B Rao
2019-11-06  8:34       ` Bharata B Rao
2019-11-06  8:22       ` Bharata B Rao
2019-11-06  8:29       ` Bharata B Rao
2019-11-06  8:41         ` Bharata B Rao
2019-11-06  8:29         ` Bharata B Rao
2019-11-04  4:17 ` [PATCH v10 4/8] KVM: PPC: Radix changes for secure guest Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-06  5:58   ` Paul Mackerras
2019-11-06  5:58     ` Paul Mackerras
2019-11-06  5:58     ` Paul Mackerras
2019-11-06  8:36     ` Bharata B Rao
2019-11-06  8:48       ` Bharata B Rao
2019-11-06  8:36       ` Bharata B Rao
2019-11-04  4:17 ` [PATCH v10 5/8] KVM: PPC: Handle memory plug/unplug to secure VM Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-11  4:25   ` Paul Mackerras
2019-11-11  4:25     ` Paul Mackerras
2019-11-11  4:25     ` Paul Mackerras
2019-11-04  4:17 ` [PATCH v10 6/8] KVM: PPC: Support reset of secure guest Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-11  5:28   ` Paul Mackerras
2019-11-11  5:28     ` Paul Mackerras
2019-11-11  5:28     ` Paul Mackerras
2019-11-11  6:55     ` Bharata B Rao [this message]
2019-11-11  6:55       ` Bharata B Rao
2019-11-11  6:55       ` Bharata B Rao
2019-11-12  5:34   ` Paul Mackerras
2019-11-12  5:34     ` Paul Mackerras
2019-11-12  5:34     ` Paul Mackerras
2019-11-13 15:29     ` Bharata B Rao
2019-11-13 15:41       ` Bharata B Rao
2019-11-13 15:29       ` Bharata B Rao
2019-11-14  5:07       ` Paul Mackerras
2019-11-14  5:07         ` Paul Mackerras
2019-11-14  5:07         ` Paul Mackerras
2019-11-04  4:17 ` [PATCH v10 7/8] KVM: PPC: Implement H_SVM_INIT_ABORT hcall Bharata B Rao
2019-11-04  4:29   ` Bharata B Rao
2019-11-04  4:17   ` Bharata B Rao
2019-11-11  4:19   ` Paul Mackerras
2019-11-11  4:19     ` Paul Mackerras
2019-11-11  4:19     ` Paul Mackerras
2019-11-12  1:01     ` Ram Pai
2019-11-12  1:01       ` Ram Pai
2019-11-12  1:01       ` Ram Pai
2019-11-12  5:38       ` Paul Mackerras
2019-11-12  5:38         ` Paul Mackerras
2019-11-12  5:38         ` Paul Mackerras
2019-11-12  7:52         ` Ram Pai
2019-11-12  7:52           ` Ram Pai
2019-11-12  7:52           ` Ram Pai
2019-11-12 11:32           ` Paul Mackerras
2019-11-12 11:32             ` Paul Mackerras
2019-11-12 11:32             ` Paul Mackerras
2019-11-12 14:45             ` Ram Pai
2019-11-12 14:45               ` Ram Pai
2019-11-12 14:45               ` Ram Pai
2019-11-13  0:14               ` Paul Mackerras
2019-11-13  0:14                 ` Paul Mackerras
2019-11-13  0:14                 ` Paul Mackerras
2019-11-13  6:32                 ` Ram Pai
2019-11-13  6:32                   ` Ram Pai
2019-11-13  6:32                   ` Ram Pai
2019-11-13 21:18                   ` Paul Mackerras
2019-11-13 21:18                     ` Paul Mackerras
2019-11-13 21:18                     ` Paul Mackerras
2019-11-13 21:50                     ` Ram Pai
2019-11-13 21:50                       ` Ram Pai
2019-11-13 21:50                       ` Ram Pai
2019-11-14  5:08                       ` Paul Mackerras
2019-11-14  5:08                         ` Paul Mackerras
2019-11-14  5:08                         ` Paul Mackerras
2019-11-14  7:02                         ` Ram Pai
2019-11-14  7:02                           ` Ram Pai
2019-11-14  7:02                           ` Ram Pai
2019-11-04  4:18 ` [PATCH v10 8/8] KVM: PPC: Ultravisor: Add PPC_UV config option Bharata B Rao
2019-11-04  4:30   ` Bharata B Rao
2019-11-04  4:18   ` Bharata B Rao
2019-11-06  4:30 ` [PATCH v10 0/8] KVM: PPC: Driver to manage pages of secure guest Paul Mackerras
2019-11-06  4:30   ` Paul Mackerras
2019-11-06  4:30   ` Paul Mackerras
2019-11-06  6:20   ` Bharata B Rao
2019-11-06  6:32     ` Bharata B Rao
2019-11-06  6:20     ` Bharata B Rao

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=20191111065522.GH21634@in.ibm.com \
    --to=bharata@linux.ibm.com \
    --cc=aneesh.kumar@linux.vnet.ibm.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 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.