-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm updates from Paolo Bonzini: "This is a large update by KVM standards, including AMD PSP (Platform Security Processor, aka "AMD Secure Technology") and ARM CoreSight (debug and trace) changes. ARM: - CoreSight: Add support for ETE and TRBE - Stage-2 isolation for the host kernel when running in protected mode - Guest SVE support when running in nVHE mode - Force W^X hypervisor mappings in nVHE mode - ITS save/restore for guests using direct injection with GICv4.1 - nVHE panics now produce readable backtraces - Guest support for PTP using the ptp_kvm driver - Performance improvements in the S2 fault handler x86: - AMD PSP driver changes - Optimizations and cleanup of nested SVM code - AMD: Support for virtual SPEC_CTRL - Optimizations of the new MMU code: fast invalidation, zap under read lock, enable/disably dirty page logging under read lock - /dev/kvm API for AMD SEV live migration (guest API coming soon) - support SEV virtual machines sharing the same encryption context - support SGX in virtual machines - add a few more statistics - improved directed yield heuristics - Lots and lots of cleanups Generic: - Rework of MMU notifier interface, simplifying and optimizing the architecture-specific code - a handful of "Get rid of oprofile leftovers" patches - Some selftests improvements" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (379 commits) KVM: selftests: Speed up set_memory_region_test selftests: kvm: Fix the check of return value KVM: x86: Take advantage of kvm_arch_dy_has_pending_interrupt() KVM: SVM: Skip SEV cache flush if no ASIDs have been used KVM: SVM: Remove an unnecessary prototype declaration of sev_flush_asids() KVM: SVM: Drop redundant svm_sev_enabled() helper KVM: SVM: Move SEV VMCB tracking allocation to sev.c KVM: SVM: Explicitly check max SEV ASID during sev_hardware_setup() KVM: SVM: Unconditionally invoke sev_hardware_teardown() KVM: SVM: Enable SEV/SEV-ES functionality by default (when supported) KVM: SVM: Condition sev_enabled and sev_es_enabled on CONFIG_KVM_AMD_SEV=y KVM: SVM: Append "_enabled" to module-scoped SEV/SEV-ES control variables KVM: SEV: Mask CPUID[0x8000001F].eax according to supported features KVM: SVM: Move SEV module params/variables to sev.c KVM: SVM: Disable SEV/SEV-ES if NPT is disabled KVM: SVM: Free sev_asid_bitmap during init if SEV setup fails KVM: SVM: Zero out the VMCB array used to track SEV ASID association x86/sev: Drop redundant and potentially misleading 'sev_enabled' KVM: x86: Move reverse CPUID helpers to separate header file KVM: x86: Rename GPR accessors to make mode-aware variants the defaults ...
- Loading branch information
Showing
216 changed files
with
12,447 additions
and
4,022 deletions.
There are no files selected for viewing
14 changes: 14 additions & 0 deletions
14
Documentation/ABI/testing/sysfs-bus-coresight-devices-trbe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
What: /sys/bus/coresight/devices/trbe<cpu>/align | ||
Date: March 2021 | ||
KernelVersion: 5.13 | ||
Contact: Anshuman Khandual <anshuman.khandual@arm.com> | ||
Description: (Read) Shows the TRBE write pointer alignment. This value | ||
is fetched from the TRBIDR register. | ||
|
||
What: /sys/bus/coresight/devices/trbe<cpu>/flag | ||
Date: March 2021 | ||
KernelVersion: 5.13 | ||
Contact: Anshuman Khandual <anshuman.khandual@arm.com> | ||
Description: (Read) Shows if TRBE updates in the memory are with access | ||
and dirty flag updates as well. This value is fetched from | ||
the TRBIDR register. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause | ||
# Copyright 2021, Arm Ltd | ||
%YAML 1.2 | ||
--- | ||
$id: "http://devicetree.org/schemas/arm/ete.yaml#" | ||
$schema: "http://devicetree.org/meta-schemas/core.yaml#" | ||
|
||
title: ARM Embedded Trace Extensions | ||
|
||
maintainers: | ||
- Suzuki K Poulose <suzuki.poulose@arm.com> | ||
- Mathieu Poirier <mathieu.poirier@linaro.org> | ||
|
||
description: | | ||
Arm Embedded Trace Extension(ETE) is a per CPU trace component that | ||
allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 | ||
architecture and has extended support for future architecture changes. | ||
The trace generated by the ETE could be stored via legacy CoreSight | ||
components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer | ||
Arm Trace Buffer Extension (TRBE)). Since the ETE can be connected to | ||
legacy CoreSight components, a node must be listed per instance, along | ||
with any optional connection graph as per the coresight bindings. | ||
See bindings/arm/coresight.txt. | ||
properties: | ||
$nodename: | ||
pattern: "^ete([0-9a-f]+)$" | ||
compatible: | ||
items: | ||
- const: arm,embedded-trace-extension | ||
|
||
cpu: | ||
description: | | ||
Handle to the cpu this ETE is bound to. | ||
$ref: /schemas/types.yaml#/definitions/phandle | ||
|
||
out-ports: | ||
description: | | ||
Output connections from the ETE to legacy CoreSight trace bus. | ||
$ref: /schemas/graph.yaml#/properties/ports | ||
properties: | ||
port: | ||
description: Output connection from the ETE to legacy CoreSight Trace bus. | ||
$ref: /schemas/graph.yaml#/properties/port | ||
|
||
required: | ||
- compatible | ||
- cpu | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
|
||
# An ETE node without legacy CoreSight connections | ||
- | | ||
ete0 { | ||
compatible = "arm,embedded-trace-extension"; | ||
cpu = <&cpu_0>; | ||
}; | ||
# An ETE node with legacy CoreSight connections | ||
- | | ||
ete1 { | ||
compatible = "arm,embedded-trace-extension"; | ||
cpu = <&cpu_1>; | ||
out-ports { /* legacy coresight connection */ | ||
port { | ||
ete1_out_port: endpoint { | ||
remote-endpoint = <&funnel_in_port0>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause | ||
# Copyright 2021, Arm Ltd | ||
%YAML 1.2 | ||
--- | ||
$id: "http://devicetree.org/schemas/arm/trbe.yaml#" | ||
$schema: "http://devicetree.org/meta-schemas/core.yaml#" | ||
|
||
title: ARM Trace Buffer Extensions | ||
|
||
maintainers: | ||
- Anshuman Khandual <anshuman.khandual@arm.com> | ||
|
||
description: | | ||
Arm Trace Buffer Extension (TRBE) is a per CPU component | ||
for storing trace generated on the CPU to memory. It is | ||
accessed via CPU system registers. The software can verify | ||
if it is permitted to use the component by checking the | ||
TRBIDR register. | ||
properties: | ||
$nodename: | ||
const: "trbe" | ||
compatible: | ||
items: | ||
- const: arm,trace-buffer-extension | ||
|
||
interrupts: | ||
description: | | ||
Exactly 1 PPI must be listed. For heterogeneous systems where | ||
TRBE is only supported on a subset of the CPUs, please consult | ||
the arm,gic-v3 binding for details on describing a PPI partition. | ||
maxItems: 1 | ||
|
||
required: | ||
- compatible | ||
- interrupts | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
|
||
- | | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
trbe { | ||
compatible = "arm,trace-buffer-extension"; | ||
interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
============================== | ||
Trace Buffer Extension (TRBE). | ||
============================== | ||
|
||
:Author: Anshuman Khandual <anshuman.khandual@arm.com> | ||
:Date: November 2020 | ||
|
||
Hardware Description | ||
-------------------- | ||
|
||
Trace Buffer Extension (TRBE) is a percpu hardware which captures in system | ||
memory, CPU traces generated from a corresponding percpu tracing unit. This | ||
gets plugged in as a coresight sink device because the corresponding trace | ||
generators (ETE), are plugged in as source device. | ||
|
||
The TRBE is not compliant to CoreSight architecture specifications, but is | ||
driven via the CoreSight driver framework to support the ETE (which is | ||
CoreSight compliant) integration. | ||
|
||
Sysfs files and directories | ||
--------------------------- | ||
|
||
The TRBE devices appear on the existing coresight bus alongside the other | ||
coresight devices:: | ||
|
||
>$ ls /sys/bus/coresight/devices | ||
trbe0 trbe1 trbe2 trbe3 | ||
|
||
The ``trbe<N>`` named TRBEs are associated with a CPU.:: | ||
|
||
>$ ls /sys/bus/coresight/devices/trbe0/ | ||
align flag | ||
|
||
*Key file items are:-* | ||
* ``align``: TRBE write pointer alignment | ||
* ``flag``: TRBE updates memory with access and dirty flags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.