All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Deegan <tim@xen.org>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: "wei.liu2@citrix.com" <wei.liu2@citrix.com>,
	"ian.campbell@citrix.com" <ian.campbell@citrix.com>,
	"stefano.stabellini@eu.citrix.com"
	<stefano.stabellini@eu.citrix.com>,
	"ian.jackson@eu.citrix.com" <ian.jackson@eu.citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Jan Beulich <JBeulich@suse.com>,
	"Zhang, Yang Z" <yang.z.zhang@intel.com>,
	"Chen, Tiejun" <tiejun.chen@intel.com>
Subject: Re: (v2) Design proposal for RMRR fix
Date: Thu, 8 Jan 2015 13:32:28 +0100	[thread overview]
Message-ID: <20150108123228.GA4984@deinos.phlegethon.org> (raw)
In-Reply-To: <AADFC41AFE54684AB9EE6CBC0274A5D126126D66@SHSMSX101.ccr.corp.intel.com>

Hi Kevin,

Thanks for sending out this design document.  I think Jan will have
the most to say about this.  Looking just at the hypervisor side of
things, and leaving the tools desig to others...

At 11:23 +0000 on 26 Dec (1419589382), Tian, Kevin wrote:
> c) in Xen hypervisor it is reasonable to fail upon confliction, where
> device is actually assigned. But due to the same requirement on USB
> controller, sometimes we might want it succeed just w/ warnings.

Can you explain more concretely why we would want to allow assignment
whn the RMRR setup fails?  It seems like the device's use of the RMRR
will (at least) corrupt the OS and (possibly) make the device itself
fail.

If we do need to allow this, it should be configured for a particular
device, rather than just disabling the safety checks for all devices at
once.

> >>>3.4 Xen: setup RMRR identity mapping
> ----
> Regardless of whether userspace has detected confliction, Xen hypervisor
> always needs to detect confliction itself when setting up identify 
> mapping for reserved gfn regions, following above defined policy. 
> 
> Identity mapping should be really handled from the general p2m layer, 
> so the same r/w permissions apply equally to CPU/DMA access paths,
> regardless of the underlying fact whether EPT is shared with IOMMU.

Agreed!

> >>>3.8 Xen: Handle devices sharing reserved regions
> ----
> Per VT-d spec, it's possible to have two devices sharing same reserved
> region. Though we didn't see such example in reality, hypervisor needs
> to detect and handle such scenario, otherwise vulnerability may exist
> if two devices are assigned to different VMs (so a malicious VM may
> program its assigned device to clobber the shared region to malform 
> another VM's device)
> 
> Ideally all devices sharing reserved regions should be assigned to a
> single VM. However achieving this goal can't be done sole in hypervisor
> w/o reworking current device assignment interface. Assignment is managed
> by toolstack, which requires exposing group sharing information to 
> userspace and then extends toolstack to manage assignment in bundle.

Xen can at least enforce that devices that share RMRR are not assigned
to different domains.  Is the problem here that "unassigned" devices
are actually assigned to dom0?

> Given the problem only in ideal space, we propose to not support such
> scenario, i.e. having hypervisor to fail the assignment, if the target
> device happens to share some reserved regions with another device,
> following [Guideline-4] to keep things simple.

How confident are you that this doesn't happen in real servers?  What
sort of range of servers have you been able to check?

Cheers,

Tim.

  parent reply	other threads:[~2015-01-08 12:32 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-26 11:23 (v2) Design proposal for RMRR fix Tian, Kevin
2015-01-08  0:43 ` Tian, Kevin
2015-01-08 12:32 ` Tim Deegan [this message]
2015-01-09  0:53   ` Tian, Kevin
2015-01-09 12:00     ` Andrew Cooper
2015-01-08 12:49 ` George Dunlap
2015-01-08 12:54   ` George Dunlap
2015-01-08 13:00     ` Jan Beulich
2015-01-08 15:15       ` George Dunlap
2015-01-08 15:21         ` Jan Beulich
2015-01-09  2:43     ` Tian, Kevin
2015-01-12 11:25       ` George Dunlap
2015-01-12 13:56         ` Pasi Kärkkäinen
2015-01-12 14:23           ` George Dunlap
2015-01-08 12:58   ` Jan Beulich
2015-01-09  2:29     ` Tian, Kevin
2015-01-09  9:24       ` Jan Beulich
2015-01-09 10:03         ` Tian, Kevin
2015-01-09  2:42   ` Tian, Kevin
2015-01-08 13:54 ` Jan Beulich
2015-01-08 15:59   ` George Dunlap
2015-01-08 16:10     ` Jan Beulich
2015-01-08 18:02       ` George Dunlap
2015-01-08 18:12         ` Pasi Kärkkäinen
2015-01-09  3:12         ` Tian, Kevin
2015-01-09  8:58         ` Jan Beulich
2015-01-09 20:27         ` Konrad Rzeszutek Wilk
2015-01-12  9:44           ` Tian, Kevin
2015-01-12 12:12           ` Ian Campbell
2015-01-14 20:06             ` Konrad Rzeszutek Wilk
2015-01-09  2:49     ` Tian, Kevin
2015-01-09  2:27   ` Tian, Kevin
2015-01-09  9:21     ` Jan Beulich
2015-01-09 10:10       ` Tian, Kevin
2015-01-09 10:35         ` Jan Beulich
2015-01-12  8:46           ` Tian, Kevin
2015-01-12  9:32             ` Jan Beulich
2015-01-12  9:41               ` Tian, Kevin
2015-01-12  9:50                 ` Jan Beulich
2015-01-12  9:56                   ` Tian, Kevin
2015-01-12 10:08                     ` Jan Beulich
2015-01-12 10:12                       ` Tian, Kevin
2015-01-12 10:22                         ` Jan Beulich
2015-01-12 11:22                           ` Tian, Kevin
2015-01-12 11:37                             ` Jan Beulich
2015-01-12 11:41                               ` Tian, Kevin
2015-01-12 12:03                                 ` Jan Beulich
2015-01-12 12:16                                   ` Tian, Kevin
2015-01-12 12:46                                     ` Jan Beulich
2015-01-12 12:13                             ` George Dunlap
2015-01-12 12:23                               ` Ian Campbell
2015-01-12 12:28                               ` Tian, Kevin
2015-01-12 14:19                                 ` George Dunlap
2015-01-13 11:03                                   ` Tian, Kevin
2015-01-13 11:56                                     ` Jan Beulich
2015-01-13 12:03                                       ` Tian, Kevin
2015-01-13 15:52                                         ` Jan Beulich
2015-01-13 15:58                                           ` George Dunlap
2015-01-14  8:06                                             ` Tian, Kevin
2015-01-14  9:00                                               ` Jan Beulich
2015-01-14  9:43                                                 ` Tian, Kevin
2015-01-14 10:24                                                   ` Jan Beulich
2015-01-14 12:01                                                     ` George Dunlap
2015-01-14 12:11                                                       ` Tian, Kevin
2015-01-14 14:32                                                       ` Jan Beulich
2015-01-14 14:37                                                         ` George Dunlap
2015-01-14 14:47                                                           ` Jan Beulich
2015-01-14 18:29                                                             ` George Dunlap
2015-01-15  8:37                                                               ` Jan Beulich
2015-01-15  9:36                                                                 ` Tian, Kevin
2015-01-15 10:06                                                                   ` Jan Beulich
2015-01-18  8:36                                                                     ` Tian, Kevin
2015-01-19  8:42                                                                       ` Jan Beulich
2015-01-15 11:45                                                                   ` George Dunlap
2015-01-18  8:58                                                                     ` Tian, Kevin
2015-01-19  9:32                                                                       ` Jan Beulich
2015-01-19 11:24                                                                         ` Tian, Kevin
2015-01-19 11:33                                                                           ` Tim Deegan
2015-01-19 11:41                                                                             ` Jan Beulich
2015-01-19 12:23                                                                               ` Tim Deegan
2015-01-19 13:00                                                                                 ` George Dunlap
2015-01-20  0:52                                                                                   ` Tian, Kevin
2015-01-20  8:43                                                                                     ` Jan Beulich
2015-01-20  8:56                                                                                       ` Tian, Kevin
2015-01-20 12:56                                                                                     ` George Dunlap
2015-01-21  2:43                                                                                       ` Tian, Kevin
2015-01-19 13:52                                                                                 ` Jan Beulich
2015-01-19 15:29                                                                                   ` Tim Deegan
2015-01-20  0:45                                                                                   ` Tian, Kevin
2015-01-20  7:29                                                                                     ` Jan Beulich
2015-01-20  8:59                                                                                       ` Tian, Kevin
2015-01-20  9:10                                                                                         ` Jan Beulich
2015-01-20 10:38                                                                                           ` Ian Campbell
2015-01-20 10:48                                                                                             ` Jan Beulich
2015-01-21  2:30                                                                                               ` Tian, Kevin
2015-01-21 10:18                                                                                                 ` Jan Beulich
2015-01-19 10:21                                                                       ` George Dunlap
2015-01-19 11:08                                                                         ` Ian Campbell
2015-01-14 12:03                                                     ` Tian, Kevin
2015-01-14 14:34                                                       ` Jan Beulich
2015-01-14 12:12                                                     ` George Dunlap
2015-01-14 14:36                                                       ` Jan Beulich
2015-01-14 12:16                                                   ` George Dunlap
2015-01-14 14:39                                                     ` Jan Beulich
2015-01-14 18:16                                                       ` George Dunlap
2015-01-14 12:21                                                   ` Ian Campbell
2015-01-14 12:17                                               ` Ian Campbell
2015-01-14 15:07                                                 ` Jan Beulich
2015-01-14 15:18                                                   ` Ian Campbell
2015-01-14 15:39                                                     ` George Dunlap
2015-01-14 15:43                                                       ` Ian Campbell
2015-01-14 18:14                                                         ` George Dunlap
2015-01-15 10:05                                                           ` Ian Campbell
2015-01-15 11:58                                                             ` George Dunlap
2015-01-14 16:26                                                       ` Jan Beulich
2015-01-15  8:40                                                   ` Tian, Kevin
2015-01-14 12:29                                               ` George Dunlap
2015-01-14 14:42                                                 ` Jan Beulich
2015-01-14 18:22                                                   ` George Dunlap
2015-01-15  8:18                                                     ` Tian, Kevin
2015-01-13 13:45                                     ` George Dunlap
2015-01-13 15:47                                       ` Jan Beulich
2015-01-13 16:00                                         ` George Dunlap
2015-01-13 16:06                                           ` Jan Beulich
2015-01-14  6:52                                             ` Tian, Kevin
2015-01-14 12:14                                               ` Ian Campbell
2015-01-14 12:23                                                 ` George Dunlap
2015-01-15  8:12                                                   ` Tian, Kevin
2015-01-13 16:45                                     ` Konrad Rzeszutek Wilk
2015-01-14  8:13                                       ` Tian, Kevin
2015-01-14  9:02                                         ` Jan Beulich
2015-01-14  9:44                                           ` Tian, Kevin
2015-01-14 10:25                                             ` Jan Beulich
2015-01-14 20:42                                         ` Konrad Rzeszutek Wilk
2015-01-15  8:09                                           ` Tian, Kevin
2015-01-16 17:17                                             ` Konrad Rzeszutek Wilk
2015-01-15  8:43                                           ` Jan Beulich
2015-01-14 12:47                                       ` George Dunlap
2015-01-12 12:30                               ` Tian, Kevin

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=20150108123228.GA4984@deinos.phlegethon.org \
    --to=tim@xen.org \
    --cc=JBeulich@suse.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=kevin.tian@intel.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tiejun.chen@intel.com \
    --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.