All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: "Xu, Dongxiao" <dongxiao.xu@intel.com>
Cc: Keir,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"Han, Weidong" <weidong.han@intel.com>,
	Fraser <Keir.Fraser@eu.citrix.com>,
	"Cui, Dexuan" <dexuan.cui@intel.com>
Subject: Re: [PATCH][VT-d] Dis-allow PCI device assignment if PoD is enabled
Date: Thu, 21 Jan 2010 13:45:33 +0000	[thread overview]
Message-ID: <4B585A7D.9000905@eu.citrix.com> (raw)
In-Reply-To: <6CADD16F56BC954D8E28F3836FA7ED711313B899A0@shzsmsx501.ccr.corp.intel.com>

Seems like a good "seatbelt" for 4.0.

Looking forward, what would it take to make PoD and VT-d coexist?  We 
only need PoD during boot, until the balloon driver comes up and 
balloons down the guest's memory.  Three solutions come to mind, but as 
I don't know the constraints of VT-d, I don't know which is feasible (if 
any):
* Redo the VT-d mapping every time the p2m map changes as a result of PoD.
* While PoD pages exist, intercept device commands, and redo the VT-d 
map if the page was marked PoD the last time we updated the VT-d map
* Detect DMA faults, instantiate the page if necessary, update the VT-d 
map, and re-start the transaction.

How expensive is it to change the VT-d pagetable?  Is a DMA fault 
re-startable?  i.e., could we take a fault, redo the VT-d map, and 
re-issue the DMA request?

 -George

Xu, Dongxiao wrote:
> It seems that currently we don't have any code to handle
> the coexistence of VT-d and PoD. VT-d engine needs to set up
> the entire page table for the domain. However if PoD is enabled,
> un-populated memory is marked as populate_on_demand, and
> VT-d engine won't set up page tables for them. Therefore any
> DMA towards those memory may cause DMA fault.
> 	So for safety concern, its better to dis-allow PCI device
> assignment if PoD is enabled.
>
> Best Regards, 
> -- Dongxiao
>   

  reply	other threads:[~2010-01-21 13:45 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-21 12:28 [PATCH][VT-d] Dis-allow PCI device assignment if PoD is enabled Xu, Dongxiao
2010-01-21 13:45 ` George Dunlap [this message]
2010-01-21 18:02   ` Ian Pratt
2010-01-22 12:17     ` George Dunlap

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=4B585A7D.9000905@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Keir.Fraser@eu.citrix.com \
    --cc=dexuan.cui@intel.com \
    --cc=dongxiao.xu@intel.com \
    --cc=weidong.han@intel.com \
    --cc=xen-devel@lists.xensource.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.