All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Dyasli <sergey.dyasli@citrix.com>
To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Cc: Sergey Dyasli <sergey.dyasli@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>,
	"jun.nakajima@intel.com" <jun.nakajima@intel.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>,
	"Tim (Xen.org)" <tim@xen.org>,
	George Dunlap <George.Dunlap@citrix.com>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>
Subject: Re: [PATCH RFC 00/12] Nested p2m: allow sharing between vCPUs
Date: Tue, 29 Aug 2017 13:39:48 +0000	[thread overview]
Message-ID: <1504013988.2895.1.camel@citrix.com> (raw)
In-Reply-To: <fbaef770-f7f5-3f4e-0844-76c6ec201ea3@citrix.com>

On Mon, 2017-08-28 at 18:03 +0100, George Dunlap wrote:
> On 07/18/2017 11:34 AM, Sergey Dyasli wrote:
> > Nested p2m (shadow EPT) is an object that stores memory address
> > translations from L2 GPA directly to L0 HPA. This is achieved by
> > combining together L1 EPT tables with L0 EPT during L2 EPT violations.
> > 
> > In the usual case, L1 uses the same EPTP value in VMCS12 for all vCPUs
> > of a L2 guest. But unfortunately, in current Xen's implementation, each
> > vCPU has its own n2pm object which cannot be shared with other vCPUs.
> > This leads to the following issues if a nested guest has SMP:
> > 
> >     1. There will be multiple np2m objects (1 per nested vCPU) with
> >        the same np2m_base (L1 EPTP value in VMCS12).
> > 
> >     2. Same EPT violations will be processed independently by each vCPU.
> > 
> >     3. Since MAX_NESTEDP2M is defined as 10, if a domain has more than
> >        10 nested vCPUs, performance will be extremely degraded due to
> >        constant np2m LRU list thrashing and np2m flushing.
> > 
> > This patch series makes it possible to share one np2m object between
> > different vCPUs that have the same np2m_base. Sharing of np2m objects
> > improves scalability of a domain from 10 nested vCPUs to 10 nested
> > guests (with arbitrary number of vCPUs per guest).
> 
> On the whole this looks like a decent approach.
> 
> Were you planning on re-sending it with the RFC removed, or would you
> like me to do a detailed review of this series as it is?

Thanks for review! My current plan is to re-send the series as v1 after
addressing your and Christoph's comments. Let's wait for that before
detailed review :)

Oh and there is a possibility I may do some AMD testing.

-- 
Thanks,
Sergey
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

      reply	other threads:[~2017-08-29 13:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-18 10:34 [PATCH RFC 00/12] Nested p2m: allow sharing between vCPUs Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 01/12] x86/np2m: refactor p2m_get_nestedp2m() Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 02/12] x86/np2m: add np2m_flush_eptp() Sergey Dyasli
2017-08-01  7:55   ` Egger, Christoph
2017-08-03 14:18     ` Sergey Dyasli
2017-08-03 14:40       ` Jan Beulich
2017-08-28 16:08   ` George Dunlap
2017-07-18 10:34 ` [PATCH RFC 03/12] x86/vvmx: use np2m_flush_eptp() for INVEPT_SINGLE_CONTEXT Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 04/12] x86/np2m: remove np2m_base from p2m_get_nestedp2m() Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 05/12] x86/np2m: add np2m_generation Sergey Dyasli
2017-08-28 16:18   ` George Dunlap
2017-07-18 10:34 ` [PATCH RFC 06/12] x86/vvmx: add stale_eptp flag Sergey Dyasli
2017-08-28 16:31   ` George Dunlap
2017-07-18 10:34 ` [PATCH RFC 07/12] x86/np2m: add np2m_schedule_in/out() Sergey Dyasli
2017-08-28 16:42   ` George Dunlap
2017-07-18 10:34 ` [PATCH RFC 08/12] x86/np2m: add p2m_get_nestedp2m_locked() Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 09/12] x86/np2m: improve nestedhvm_hap_nested_page_fault() Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 10/12] x86/np2m: implement sharing of np2m between vCPUs Sergey Dyasli
2017-08-28 16:59   ` George Dunlap
2017-07-18 10:34 ` [PATCH RFC 11/12] x86/np2m: add break to np2m_flush_eptp() Sergey Dyasli
2017-07-18 10:34 ` [PATCH RFC 12/12] x86/vvmx: remove EPTP write from ept_handle_violation() Sergey Dyasli
2017-08-28 17:03 ` [PATCH RFC 00/12] Nested p2m: allow sharing between vCPUs George Dunlap
2017-08-29 13:39   ` Sergey Dyasli [this message]

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=1504013988.2895.1.camel@citrix.com \
    --to=sergey.dyasli@citrix.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=George.Dunlap@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=jbeulich@suse.com \
    --cc=jun.nakajima@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xen.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.