All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chen, Tiejun" <tiejun.chen@intel.com>
To: Elena Ufimtseva <elena.ufimtseva@oracle.com>, xen-devel@lists.xen.org
Cc: kevin.tian@intel.com, wei.liu2@citrix.com,
	george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com,
	tim@xen.org, jbeulich@suse.com, yang.z.zhang@intel.com
Subject: Re: Regression in RMRRs identity mapping for PVH Dom0
Date: Thu, 24 Sep 2015 15:17:32 +0800	[thread overview]
Message-ID: <5603A38C.2060805@intel.com> (raw)
In-Reply-To: <20150923155612.GB3042@elena.ufimtseva>

On 9/23/2015 11:56 PM, Elena Ufimtseva wrote:
> Hi
>
> There is a regression in RMRR patch 5ae03990c120a7b3067a52d9784c9aa72c0705a6 in
> new set_identity_p2m_entry. RMRRs are not being mapped in IOMMU for PVH Dom0.
> This causes pages faults and some long 'hang-like' delays during boot and
> device assignments.
>
> During construct_dom0, in PVH path  p2m is being constructed and identity mapped
> in IOMMU. The p2m type is p2m_mmio_direct and p2m access p2m_rwx.
> New code used to map RMRRs invoked from rmrr_identity_mapping
> checks if p2m entry exists with same type and access and if yes, skips iommu
> mapping. Since there are p2m entries for pvh dom0 iomem, RMRRs are not being
> mapped in IOMMU.
>
> This debug patch attached fixes this and Ill be glad to see if there is a more elegant fix.

Based on your explanation, sounds pvh always creates this mapping 
beforehand, so what about this?

diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index cf8485e..d026845 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -964,7 +964,7 @@ int set_identity_p2m_entry(struct domain *d, 
unsigned long gfn,
      struct p2m_domain *p2m = p2m_get_hostp2m(d);
      int ret;

-    if ( !paging_mode_translate(p2m->domain) )
+    if ( !paging_mode_translate(p2m->domain) || is_pvh_domain(d) )
      {
          if ( !need_iommu(d) )
              return 0;

Thanks
Tiejun

  reply	other threads:[~2015-09-24  7:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-23 15:56 Regression in RMRRs identity mapping for PVH Dom0 Elena Ufimtseva
2015-09-24  7:17 ` Chen, Tiejun [this message]
2015-09-24  9:18   ` Tim Deegan
2015-09-24 10:31     ` Jan Beulich
2015-09-24 11:29       ` Elena Ufimtseva
2015-09-24 11:37     ` Elena Ufimtseva
2015-09-24 10:29 ` Wei Liu
2015-09-24 11:42   ` Elena Ufimtseva

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=5603A38C.2060805@intel.com \
    --to=tiejun.chen@intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=elena.ufimtseva@oracle.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=kevin.tian@intel.com \
    --cc=tim@xen.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yang.z.zhang@intel.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.