Skip to content
This repository has been archived by the owner on Oct 3, 2024. It is now read-only.

Rename README to READme.rst #128

Open
wants to merge 38 commits into
base: gvt-staging
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
fce5d77
ftrace: Allow configuring global trace buffer size (for dump-on-oops)
ickle Nov 13, 2017
25f9d15
lockdep: Up MAX_LOCKDEP_CHAINS
danvet Nov 29, 2017
1c63c72
lockdep: Bump MAX_STACK_TRACE_ENTRIES
ickle Jun 25, 2019
f8d3b96
lockdep: Swap storage for pin_count and references
ickle Apr 25, 2019
588f932
kernel/panic: Show the stacktrace after additional notifier messages
ickle Sep 3, 2018
58477ab
x86: Downgrade clock throttling thermal event critical error
ickle Oct 9, 2018
9b49bd7
libata: Downgrade unsupported feature warnings to notifications
ickle Oct 9, 2018
c6acd48
perf/core: Avoid removing shared pmu_context on unregister
ickle May 12, 2017
c536e73
ICL HACK: usb/icl: Work around ACPI boottime crash
ideak Jul 2, 2018
49d5dec
RFC: hung_task: taint kernel
danvet May 2, 2019
9cb258f
RFC: soft/hardlookup: taint kernel
danvet May 2, 2019
0ca01d9
RFC hung_task: Show all process backtrace for lock debugging
ickle Jun 26, 2019
20f972d
net/sch_generic: Shut up noise
danvet Jul 18, 2017
542a7e5
mm: Show slab debug as offsets from section base not hashed pointers
ickle Jul 1, 2019
6a59072
uapi/perf: Squelch compiler warning
ickle Jul 27, 2019
b005d1d
drm/i915: Force compilation with intel-iommu for CI validation
ickle Sep 10, 2019
cefebf5
HAX iommu/intel: Ignore igfx_off
ickle Sep 10, 2019
ebc8a5e
Revert "ALSA: hda: Add Tigerlake/Jasperlake PCI ID"
ickle Oct 29, 2019
0ecf50d
Merge remote-tracking branch 'drm/drm-next' into topic/core-for-CI
jlahtine-intel Nov 6, 2019
33c006e
Revert "drm/i915: Don't select BROKEN"
jlahtine-intel Nov 6, 2019
883d955
Revert "Revert "ALSA: hda: Add Tigerlake/Jasperlake PCI ID""
jnikula Nov 12, 2019
a40c273
drm/i915/gvt: Fix cmd length check for MI_ATOMIC
zhenyw Nov 21, 2019
0a58a15
Merge remote-tracking branch 'drm-misc/drm-misc-fixes' into drm-tip
airlied Dec 5, 2019
40b81fb
Merge remote-tracking branch 'drm/drm-next' into drm-tip
airlied Dec 5, 2019
dbd9dc2
Merge remote-tracking branch 'drm-intel/drm-intel-next-fixes' into dr…
airlied Dec 5, 2019
2b9da08
Merge remote-tracking branch 'drm-misc/drm-misc-next' into drm-tip
airlied Dec 5, 2019
979b6cd
Merge remote-tracking branch 'drm-intel/drm-intel-next-queued' into d…
airlied Dec 5, 2019
001cd24
Merge remote-tracking branch 'sound/for-linus' into drm-tip
airlied Dec 5, 2019
0a2dab7
Merge remote-tracking branch 'drm-intel/topic/core-for-CI' into drm-tip
airlied Dec 5, 2019
286516b
Merge remote-tracking branch 'drm/drm-vmwgfx-coherent' into drm-tip
airlied Dec 5, 2019
8bd05bd
drm-tip: 2019y-12m-05d-01h-16m-07s UTC integration manifest
airlied Dec 5, 2019
a739a80
drm/i915/gvt: use vgpu lock for active state setting
zhenyw Dec 2, 2019
bde763a
drm/i915/gvt: remove unused type attributes
zhenyw Dec 2, 2019
c696c3b
Merge remote-tracking branch 'origin/gvt-fixes' into gvt-staging
zhenyw Dec 5, 2019
32c8354
Merge remote-tracking branch 'origin/gvt-next-fixes' into gvt-staging
zhenyw Dec 5, 2019
b98d364
Merge remote-tracking branch 'origin/gvt-next' into gvt-staging
zhenyw Dec 5, 2019
0d8fbb8
gvt-staging: 2019y-12m-05d-15h-30m-02s CST integration manifest
zhenyw Dec 5, 2019
babae49
Rename README to READme.rst
kshithijiyer Dec 10, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions Documentation/ABI/testing/sysfs-devices-system-cpu
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,8 @@ What: /sys/devices/system/cpu/vulnerabilities
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
/sys/devices/system/cpu/vulnerabilities/l1tf
/sys/devices/system/cpu/vulnerabilities/mds
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
Date: January 2018
Contact: Linux kernel mailing list <[email protected]>
Description: Information about CPU vulnerabilities
Expand Down
2 changes: 2 additions & 0 deletions Documentation/admin-guide/hw-vuln/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ are configurable at compile, boot or run time.
spectre
l1tf
mds
tsx_async_abort
multihit.rst
163 changes: 163 additions & 0 deletions Documentation/admin-guide/hw-vuln/multihit.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
iTLB multihit
=============

iTLB multihit is an erratum where some processors may incur a machine check
error, possibly resulting in an unrecoverable CPU lockup, when an
instruction fetch hits multiple entries in the instruction TLB. This can
occur when the page size is changed along with either the physical address
or cache type. A malicious guest running on a virtualized system can
exploit this erratum to perform a denial of service attack.


Affected processors
-------------------

Variations of this erratum are present on most Intel Core and Xeon processor
models. The erratum is not present on:

- non-Intel processors

- Some Atoms (Airmont, Bonnell, Goldmont, GoldmontPlus, Saltwell, Silvermont)

- Intel processors that have the PSCHANGE_MC_NO bit set in the
IA32_ARCH_CAPABILITIES MSR.


Related CVEs
------------

The following CVE entry is related to this issue:

============== =================================================
CVE-2018-12207 Machine Check Error Avoidance on Page Size Change
============== =================================================


Problem
-------

Privileged software, including OS and virtual machine managers (VMM), are in
charge of memory management. A key component in memory management is the control
of the page tables. Modern processors use virtual memory, a technique that creates
the illusion of a very large memory for processors. This virtual space is split
into pages of a given size. Page tables translate virtual addresses to physical
addresses.

To reduce latency when performing a virtual to physical address translation,
processors include a structure, called TLB, that caches recent translations.
There are separate TLBs for instruction (iTLB) and data (dTLB).

Under this errata, instructions are fetched from a linear address translated
using a 4 KB translation cached in the iTLB. Privileged software modifies the
paging structure so that the same linear address using large page size (2 MB, 4
MB, 1 GB) with a different physical address or memory type. After the page
structure modification but before the software invalidates any iTLB entries for
the linear address, a code fetch that happens on the same linear address may
cause a machine-check error which can result in a system hang or shutdown.


Attack scenarios
----------------

Attacks against the iTLB multihit erratum can be mounted from malicious
guests in a virtualized system.


iTLB multihit system information
--------------------------------

The Linux kernel provides a sysfs interface to enumerate the current iTLB
multihit status of the system:whether the system is vulnerable and which
mitigations are active. The relevant sysfs file is:

/sys/devices/system/cpu/vulnerabilities/itlb_multihit

The possible values in this file are:

.. list-table::

* - Not affected
- The processor is not vulnerable.
* - KVM: Mitigation: Split huge pages
- Software changes mitigate this issue.
* - KVM: Vulnerable
- The processor is vulnerable, but no mitigation enabled


Enumeration of the erratum
--------------------------------

A new bit has been allocated in the IA32_ARCH_CAPABILITIES (PSCHANGE_MC_NO) msr
and will be set on CPU's which are mitigated against this issue.

======================================= =========== ===============================
IA32_ARCH_CAPABILITIES MSR Not present Possibly vulnerable,check model
IA32_ARCH_CAPABILITIES[PSCHANGE_MC_NO] '0' Likely vulnerable,check model
IA32_ARCH_CAPABILITIES[PSCHANGE_MC_NO] '1' Not vulnerable
======================================= =========== ===============================


Mitigation mechanism
-------------------------

This erratum can be mitigated by restricting the use of large page sizes to
non-executable pages. This forces all iTLB entries to be 4K, and removes
the possibility of multiple hits.

In order to mitigate the vulnerability, KVM initially marks all huge pages
as non-executable. If the guest attempts to execute in one of those pages,
the page is broken down into 4K pages, which are then marked executable.

If EPT is disabled or not available on the host, KVM is in control of TLB
flushes and the problematic situation cannot happen. However, the shadow
EPT paging mechanism used by nested virtualization is vulnerable, because
the nested guest can trigger multiple iTLB hits by modifying its own
(non-nested) page tables. For simplicity, KVM will make large pages
non-executable in all shadow paging modes.

Mitigation control on the kernel command line and KVM - module parameter
------------------------------------------------------------------------

The KVM hypervisor mitigation mechanism for marking huge pages as
non-executable can be controlled with a module parameter "nx_huge_pages=".
The kernel command line allows to control the iTLB multihit mitigations at
boot time with the option "kvm.nx_huge_pages=".

The valid arguments for these options are:

========== ================================================================
force Mitigation is enabled. In this case, the mitigation implements
non-executable huge pages in Linux kernel KVM module. All huge
pages in the EPT are marked as non-executable.
If a guest attempts to execute in one of those pages, the page is
broken down into 4K pages, which are then marked executable.

off Mitigation is disabled.

auto Enable mitigation only if the platform is affected and the kernel
was not booted with the "mitigations=off" command line parameter.
This is the default option.
========== ================================================================


Mitigation selection guide
--------------------------

1. No virtualization in use
^^^^^^^^^^^^^^^^^^^^^^^^^^^

The system is protected by the kernel unconditionally and no further
action is required.

2. Virtualization with trusted guests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If the guest comes from a trusted source, you may assume that the guest will
not attempt to maliciously exploit these errata and no further action is
required.

3. Virtualization with untrusted guests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If the guest comes from an untrusted source, the guest host kernel will need
to apply iTLB multihit mitigation via the kernel command line or kvm
module parameter.
Loading