Files
xen/docs
Andrew Cooper 3c04c258ab x86/spec-ctrl: Introduce options to control VERW flushing
The Microarchitectural Data Sampling vulnerability is split into categories
with subtly different properties:

 MLPDS - Microarchitectural Load Port Data Sampling
 MSBDS - Microarchitectural Store Buffer Data Sampling
 MFBDS - Microarchitectural Fill Buffer Data Sampling
 MDSUM - Microarchitectural Data Sampling Uncacheable Memory

MDSUM is a special case of the other three, and isn't distinguished further.

These issues pertain to three microarchitectural buffers.  The Load Ports, the
Store Buffers and the Fill Buffers.  Each of these structures are flushed by
the new enhanced VERW functionality, but the conditions under which flushing
is necessary vary.

For this concise overview of the issues and default logic, the abbreviations
SP (Store Port), FB (Fill Buffer), LP (Load Port) and HT (Hyperthreading) are
used for brevity:

 * Vulnerable hardware is divided into two categories - parts which suffer
   from SP only, and parts with any other combination of vulnerabilities.

 * SP only has an HT interaction when the thread goes idle, due to the static
   partitioning of resources.  LP and FB have HT interactions at all points,
   due to the competitive sharing of resources.  All issues potentially leak
   data across the return-to-guest transition.

 * The microcode which implements VERW flushing also extends MSR_FLUSH_CMD, so
   we don't need to do both on the HVM return-to-guest path.  However, some
   parts are not vulnerable to L1TF (therefore have no MSR_FLUSH_CMD), but are
   vulnerable to MDS, so do require VERW on the HVM path.

Note that we deliberately support mds=1 even without MD_CLEAR in case the
microcode has been updated but the feature bit not exposed.

This is part of XSA-297, CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2019-05-14 15:28:32 +01:00
..
2019-03-22 13:48:02 +00:00
2019-03-13 13:40:23 +00:00
2018-11-14 19:25:11 +00:00
2016-04-01 11:07:28 +08:00

Remus provides fault tolerance for virtual machines by sending continuous
checkpoints to a backup, which will activate if the target VM fails.

See the website at http://wiki.xen.org/wiki/Remus for details.

Using Remus with libxl on Xen 4.5 and higher:
 To enable network buffering, you need libnl 3.2.8
 or higher along with the development headers and command line utilities.
 If your distro does not have the appropriate libnl3 version, you can find
 the latest source tarball of libnl3 at http://www.carisma.slowglass.com/~tgr/libnl/

Disk replication:
 VMs protected by Remus need to use DRBD based disk backends. Specifically, you
 need a compile and install a custom version of DRBD, that is available publicly
 at https://github.com/rshriram/remus-drbd
 This code is based on DRBD 8.3.11 and uses a new replication protocol (named
 protocol D) for asynchronous disk checkpoint replication. A protected VM's DRBD
 disks on the primary and backup hosts need to be configured to use protocol D
 as the replication protocol. An example resource configuration file can be found
 in the aforementioned github repository.