mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
BackMerge tag 'v7.0-rc4' into drm-next
Linux 7.0-rc4 Needed for rust tree. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -498,7 +498,8 @@ Lior David <quic_liord@quicinc.com> <liord@codeaurora.org>
|
||||
Loic Poulain <loic.poulain@oss.qualcomm.com> <loic.poulain@linaro.org>
|
||||
Loic Poulain <loic.poulain@oss.qualcomm.com> <loic.poulain@intel.com>
|
||||
Lorenzo Pieralisi <lpieralisi@kernel.org> <lorenzo.pieralisi@arm.com>
|
||||
Lorenzo Stoakes <lorenzo.stoakes@oracle.com> <lstoakes@gmail.com>
|
||||
Lorenzo Stoakes <ljs@kernel.org> <lstoakes@gmail.com>
|
||||
Lorenzo Stoakes <ljs@kernel.org> <lorenzo.stoakes@oracle.com>
|
||||
Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net>
|
||||
Luca Weiss <luca@lucaweiss.eu> <luca@z3ntu.xyz>
|
||||
Lucas De Marchi <demarchi@kernel.org> <lucas.demarchi@intel.com>
|
||||
|
||||
@@ -151,11 +151,11 @@ Description:
|
||||
The algorithm_params file is write-only and is used to setup
|
||||
compression algorithm parameters.
|
||||
|
||||
What: /sys/block/zram<id>/writeback_compressed
|
||||
What: /sys/block/zram<id>/compressed_writeback
|
||||
Date: Decemeber 2025
|
||||
Contact: Richard Chang <richardycc@google.com>
|
||||
Description:
|
||||
The writeback_compressed device atrribute toggles compressed
|
||||
The compressed_writeback device atrribute toggles compressed
|
||||
writeback feature.
|
||||
|
||||
What: /sys/block/zram<id>/writeback_batch_size
|
||||
|
||||
@@ -216,7 +216,7 @@ writeback_limit WO specifies the maximum amount of write IO zram
|
||||
writeback_limit_enable RW show and set writeback_limit feature
|
||||
writeback_batch_size RW show and set maximum number of in-flight
|
||||
writeback operations
|
||||
writeback_compressed RW show and set compressed writeback feature
|
||||
compressed_writeback RW show and set compressed writeback feature
|
||||
comp_algorithm RW show and change the compression algorithm
|
||||
algorithm_params WO setup compression algorithm parameters
|
||||
compact WO trigger memory compaction
|
||||
@@ -439,11 +439,11 @@ budget in next setting is user's job.
|
||||
By default zram stores written back pages in decompressed (raw) form, which
|
||||
means that writeback operation involves decompression of the page before
|
||||
writing it to the backing device. This behavior can be changed by enabling
|
||||
`writeback_compressed` feature, which causes zram to write compressed pages
|
||||
`compressed_writeback` feature, which causes zram to write compressed pages
|
||||
to the backing device, thus avoiding decompression overhead. To enable
|
||||
this feature, execute::
|
||||
|
||||
$ echo yes > /sys/block/zramX/writeback_compressed
|
||||
$ echo yes > /sys/block/zramX/compressed_writeback
|
||||
|
||||
Note that this feature should be configured before the `zramX` device is
|
||||
initialized.
|
||||
|
||||
@@ -8196,6 +8196,9 @@ Kernel parameters
|
||||
p = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT
|
||||
(Reduce timeout of the SET_ADDRESS
|
||||
request from 5000 ms to 500 ms);
|
||||
q = USB_QUIRK_FORCE_ONE_CONFIG (Device
|
||||
claims zero configurations,
|
||||
forcing to 1);
|
||||
Example: quirks=0781:5580:bk,0a5c:5834:gij
|
||||
|
||||
usbhid.mousepoll=
|
||||
|
||||
@@ -253,7 +253,6 @@ allOf:
|
||||
enum:
|
||||
# these platforms support 2 streams MST on some interfaces,
|
||||
# others are SST only
|
||||
- qcom,glymur-dp
|
||||
- qcom,sc8280xp-dp
|
||||
- qcom,x1e80100-dp
|
||||
then:
|
||||
@@ -310,6 +309,26 @@ allOf:
|
||||
minItems: 6
|
||||
maxItems: 8
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
# these platforms support 2 streams MST on some interfaces,
|
||||
# others are SST only, but all controllers have 4 ports
|
||||
- qcom,glymur-dp
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 9
|
||||
maxItems: 9
|
||||
clocks:
|
||||
minItems: 5
|
||||
maxItems: 6
|
||||
clocks-names:
|
||||
minItems: 5
|
||||
maxItems: 6
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -176,13 +176,17 @@ examples:
|
||||
};
|
||||
};
|
||||
|
||||
displayport-controller@ae90000 {
|
||||
displayport-controller@af54000 {
|
||||
compatible = "qcom,glymur-dp";
|
||||
reg = <0xae90000 0x200>,
|
||||
<0xae90200 0x200>,
|
||||
<0xae90400 0x600>,
|
||||
<0xae91000 0x400>,
|
||||
<0xae91400 0x400>;
|
||||
reg = <0xaf54000 0x200>,
|
||||
<0xaf54200 0x200>,
|
||||
<0xaf55000 0xc00>,
|
||||
<0xaf56000 0x400>,
|
||||
<0xaf57000 0x400>,
|
||||
<0xaf58000 0x400>,
|
||||
<0xaf59000 0x400>,
|
||||
<0xaf5a000 0x600>,
|
||||
<0xaf5b000 0x600>;
|
||||
|
||||
interrupt-parent = <&mdss>;
|
||||
interrupts = <12>;
|
||||
|
||||
@@ -10,7 +10,7 @@ maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description:
|
||||
SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
|
||||
SM8750 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
|
||||
DPU display controller, DSI and DP interfaces etc.
|
||||
|
||||
$ref: /schemas/display/msm/mdss-common.yaml#
|
||||
|
||||
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
title: Synopsys DesignWare APB I2C Controller
|
||||
|
||||
maintainers:
|
||||
- Jarkko Nikula <jarkko.nikula@linux.intel.com>
|
||||
- Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/powerpc/fsl/fsl,mpc83xx.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale PowerQUICC II Pro (MPC83xx) platforms
|
||||
|
||||
maintainers:
|
||||
- J. Neuschäfer <j.ne@posteo.net>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
const: '/'
|
||||
compatible:
|
||||
oneOf:
|
||||
- description: MPC83xx Reference Design Boards
|
||||
items:
|
||||
- enum:
|
||||
- fsl,mpc8308rdb
|
||||
- fsl,mpc8315erdb
|
||||
- fsl,mpc8360rdk
|
||||
- fsl,mpc8377rdb
|
||||
- fsl,mpc8377wlan
|
||||
- fsl,mpc8378rdb
|
||||
- fsl,mpc8379rdb
|
||||
|
||||
- description: MPC8313E Reference Design Board
|
||||
items:
|
||||
- const: MPC8313ERDB
|
||||
- const: MPC831xRDB
|
||||
- const: MPC83xxRDB
|
||||
|
||||
- description: MPC8323E Reference Design Board
|
||||
items:
|
||||
- const: MPC8323ERDB
|
||||
- const: MPC832xRDB
|
||||
- const: MPC83xxRDB
|
||||
|
||||
- description: MPC8349E-mITX(-GP) Reference Design Platform
|
||||
items:
|
||||
- enum:
|
||||
- MPC8349EMITX
|
||||
- MPC8349EMITXGP
|
||||
- const: MPC834xMITX
|
||||
- const: MPC83xxMITX
|
||||
|
||||
- description: Keymile KMETER1 board
|
||||
const: keymile,KMETER1
|
||||
|
||||
- description: MPC8308 P1M board
|
||||
const: denx,mpc8308_p1m
|
||||
|
||||
patternProperties:
|
||||
"^soc@.*$":
|
||||
type: object
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,mpc8315-immr
|
||||
- fsl,mpc8308-immr
|
||||
- const: simple-bus
|
||||
- items:
|
||||
- const: fsl,mpc8360-immr
|
||||
- const: fsl,immr
|
||||
- const: fsl,soc
|
||||
- const: simple-bus
|
||||
- const: simple-bus
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
examples:
|
||||
- |
|
||||
/ {
|
||||
compatible = "fsl,mpc8315erdb";
|
||||
model = "MPC8315E-RDB";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
soc@e0000000 {
|
||||
compatible = "fsl,mpc8315-immr", "simple-bus";
|
||||
reg = <0xe0000000 0x00000200>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0 0xe0000000 0x00100000>;
|
||||
bus-frequency = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A31 SPI Controller
|
||||
|
||||
allOf:
|
||||
- $ref: spi-controller.yaml
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
@@ -82,11 +79,11 @@ patternProperties:
|
||||
|
||||
spi-rx-bus-width:
|
||||
items:
|
||||
- const: 1
|
||||
enum: [0, 1, 2, 4]
|
||||
|
||||
spi-tx-bus-width:
|
||||
items:
|
||||
- const: 1
|
||||
enum: [0, 1, 2, 4]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@@ -95,6 +92,28 @@ required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: spi-controller.yaml
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- allwinner,sun50i-r329-spi
|
||||
- allwinner,sun55i-a523-spi
|
||||
then:
|
||||
patternProperties:
|
||||
"^.*@[0-9a-f]+":
|
||||
properties:
|
||||
spi-rx-bus-width:
|
||||
items:
|
||||
enum: [0, 1]
|
||||
|
||||
spi-tx-bus-width:
|
||||
items:
|
||||
enum: [0, 1]
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -43,7 +43,6 @@ options should be enabled to use sched_ext:
|
||||
CONFIG_DEBUG_INFO_BTF=y
|
||||
CONFIG_BPF_JIT_ALWAYS_ON=y
|
||||
CONFIG_BPF_JIT_DEFAULT_ON=y
|
||||
CONFIG_PAHOLE_HAS_BTF_TAG=y
|
||||
|
||||
sched_ext is used only when the BPF scheduler is loaded and running.
|
||||
|
||||
@@ -58,7 +57,8 @@ in ``ops->flags``, all ``SCHED_NORMAL``, ``SCHED_BATCH``, ``SCHED_IDLE``, and
|
||||
However, when the BPF scheduler is loaded and ``SCX_OPS_SWITCH_PARTIAL`` is
|
||||
set in ``ops->flags``, only tasks with the ``SCHED_EXT`` policy are scheduled
|
||||
by sched_ext, while tasks with ``SCHED_NORMAL``, ``SCHED_BATCH`` and
|
||||
``SCHED_IDLE`` policies are scheduled by the fair-class scheduler.
|
||||
``SCHED_IDLE`` policies are scheduled by the fair-class scheduler which has
|
||||
higher sched_class precedence than ``SCHED_EXT``.
|
||||
|
||||
Terminating the sched_ext scheduler program, triggering `SysRq-S`, or
|
||||
detection of any internal error including stalled runnable tasks aborts the
|
||||
@@ -345,6 +345,8 @@ Where to Look
|
||||
The functions prefixed with ``scx_bpf_`` can be called from the BPF
|
||||
scheduler.
|
||||
|
||||
* ``kernel/sched/ext_idle.c`` contains the built-in idle CPU selection policy.
|
||||
|
||||
* ``tools/sched_ext/`` hosts example BPF scheduler implementations.
|
||||
|
||||
* ``scx_simple[.bpf].c``: Minimal global FIFO scheduler example using a
|
||||
@@ -353,13 +355,35 @@ Where to Look
|
||||
* ``scx_qmap[.bpf].c``: A multi-level FIFO scheduler supporting five
|
||||
levels of priority implemented with ``BPF_MAP_TYPE_QUEUE``.
|
||||
|
||||
* ``scx_central[.bpf].c``: A central FIFO scheduler where all scheduling
|
||||
decisions are made on one CPU, demonstrating ``LOCAL_ON`` dispatching,
|
||||
tickless operation, and kthread preemption.
|
||||
|
||||
* ``scx_cpu0[.bpf].c``: A scheduler that queues all tasks to a shared DSQ
|
||||
and only dispatches them on CPU0 in FIFO order. Useful for testing bypass
|
||||
behavior.
|
||||
|
||||
* ``scx_flatcg[.bpf].c``: A flattened cgroup hierarchy scheduler
|
||||
implementing hierarchical weight-based cgroup CPU control by compounding
|
||||
each cgroup's share at every level into a single flat scheduling layer.
|
||||
|
||||
* ``scx_pair[.bpf].c``: A core-scheduling example that always makes
|
||||
sibling CPU pairs execute tasks from the same CPU cgroup.
|
||||
|
||||
* ``scx_sdt[.bpf].c``: A variation of ``scx_simple`` demonstrating BPF
|
||||
arena memory management for per-task data.
|
||||
|
||||
* ``scx_userland[.bpf].c``: A minimal scheduler demonstrating user space
|
||||
scheduling. Tasks with CPU affinity are direct-dispatched in FIFO order;
|
||||
all others are scheduled in user space by a simple vruntime scheduler.
|
||||
|
||||
ABI Instability
|
||||
===============
|
||||
|
||||
The APIs provided by sched_ext to BPF schedulers programs have no stability
|
||||
guarantees. This includes the ops table callbacks and constants defined in
|
||||
``include/linux/sched/ext.h``, as well as the ``scx_bpf_`` kfuncs defined in
|
||||
``kernel/sched/ext.c``.
|
||||
``kernel/sched/ext.c`` and ``kernel/sched/ext_idle.c``.
|
||||
|
||||
While we will attempt to provide a relatively stable API surface when
|
||||
possible, they are subject to change without warning between kernel
|
||||
|
||||
+107
-99
@@ -8435,115 +8435,123 @@ KVM_CHECK_EXTENSION.
|
||||
|
||||
The valid bits in cap.args[0] are:
|
||||
|
||||
=================================== ============================================
|
||||
KVM_X86_QUIRK_LINT0_REENABLED By default, the reset value for the LVT
|
||||
LINT0 register is 0x700 (APIC_MODE_EXTINT).
|
||||
When this quirk is disabled, the reset value
|
||||
is 0x10000 (APIC_LVT_MASKED).
|
||||
======================================== ================================================
|
||||
KVM_X86_QUIRK_LINT0_REENABLED By default, the reset value for the LVT
|
||||
LINT0 register is 0x700 (APIC_MODE_EXTINT).
|
||||
When this quirk is disabled, the reset value
|
||||
is 0x10000 (APIC_LVT_MASKED).
|
||||
|
||||
KVM_X86_QUIRK_CD_NW_CLEARED By default, KVM clears CR0.CD and CR0.NW on
|
||||
AMD CPUs to workaround buggy guest firmware
|
||||
that runs in perpetuity with CR0.CD, i.e.
|
||||
with caches in "no fill" mode.
|
||||
KVM_X86_QUIRK_CD_NW_CLEARED By default, KVM clears CR0.CD and CR0.NW on
|
||||
AMD CPUs to workaround buggy guest firmware
|
||||
that runs in perpetuity with CR0.CD, i.e.
|
||||
with caches in "no fill" mode.
|
||||
|
||||
When this quirk is disabled, KVM does not
|
||||
change the value of CR0.CD and CR0.NW.
|
||||
When this quirk is disabled, KVM does not
|
||||
change the value of CR0.CD and CR0.NW.
|
||||
|
||||
KVM_X86_QUIRK_LAPIC_MMIO_HOLE By default, the MMIO LAPIC interface is
|
||||
available even when configured for x2APIC
|
||||
mode. When this quirk is disabled, KVM
|
||||
disables the MMIO LAPIC interface if the
|
||||
LAPIC is in x2APIC mode.
|
||||
KVM_X86_QUIRK_LAPIC_MMIO_HOLE By default, the MMIO LAPIC interface is
|
||||
available even when configured for x2APIC
|
||||
mode. When this quirk is disabled, KVM
|
||||
disables the MMIO LAPIC interface if the
|
||||
LAPIC is in x2APIC mode.
|
||||
|
||||
KVM_X86_QUIRK_OUT_7E_INC_RIP By default, KVM pre-increments %rip before
|
||||
exiting to userspace for an OUT instruction
|
||||
to port 0x7e. When this quirk is disabled,
|
||||
KVM does not pre-increment %rip before
|
||||
exiting to userspace.
|
||||
KVM_X86_QUIRK_OUT_7E_INC_RIP By default, KVM pre-increments %rip before
|
||||
exiting to userspace for an OUT instruction
|
||||
to port 0x7e. When this quirk is disabled,
|
||||
KVM does not pre-increment %rip before
|
||||
exiting to userspace.
|
||||
|
||||
KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT When this quirk is disabled, KVM sets
|
||||
CPUID.01H:ECX[bit 3] (MONITOR/MWAIT) if
|
||||
IA32_MISC_ENABLE[bit 18] (MWAIT) is set.
|
||||
Additionally, when this quirk is disabled,
|
||||
KVM clears CPUID.01H:ECX[bit 3] if
|
||||
IA32_MISC_ENABLE[bit 18] is cleared.
|
||||
KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT When this quirk is disabled, KVM sets
|
||||
CPUID.01H:ECX[bit 3] (MONITOR/MWAIT) if
|
||||
IA32_MISC_ENABLE[bit 18] (MWAIT) is set.
|
||||
Additionally, when this quirk is disabled,
|
||||
KVM clears CPUID.01H:ECX[bit 3] if
|
||||
IA32_MISC_ENABLE[bit 18] is cleared.
|
||||
|
||||
KVM_X86_QUIRK_FIX_HYPERCALL_INSN By default, KVM rewrites guest
|
||||
VMMCALL/VMCALL instructions to match the
|
||||
vendor's hypercall instruction for the
|
||||
system. When this quirk is disabled, KVM
|
||||
will no longer rewrite invalid guest
|
||||
hypercall instructions. Executing the
|
||||
incorrect hypercall instruction will
|
||||
generate a #UD within the guest.
|
||||
KVM_X86_QUIRK_FIX_HYPERCALL_INSN By default, KVM rewrites guest
|
||||
VMMCALL/VMCALL instructions to match the
|
||||
vendor's hypercall instruction for the
|
||||
system. When this quirk is disabled, KVM
|
||||
will no longer rewrite invalid guest
|
||||
hypercall instructions. Executing the
|
||||
incorrect hypercall instruction will
|
||||
generate a #UD within the guest.
|
||||
|
||||
KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS By default, KVM emulates MONITOR/MWAIT (if
|
||||
they are intercepted) as NOPs regardless of
|
||||
whether or not MONITOR/MWAIT are supported
|
||||
according to guest CPUID. When this quirk
|
||||
is disabled and KVM_X86_DISABLE_EXITS_MWAIT
|
||||
is not set (MONITOR/MWAIT are intercepted),
|
||||
KVM will inject a #UD on MONITOR/MWAIT if
|
||||
they're unsupported per guest CPUID. Note,
|
||||
KVM will modify MONITOR/MWAIT support in
|
||||
guest CPUID on writes to MISC_ENABLE if
|
||||
KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT is
|
||||
disabled.
|
||||
KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS By default, KVM emulates MONITOR/MWAIT (if
|
||||
they are intercepted) as NOPs regardless of
|
||||
whether or not MONITOR/MWAIT are supported
|
||||
according to guest CPUID. When this quirk
|
||||
is disabled and KVM_X86_DISABLE_EXITS_MWAIT
|
||||
is not set (MONITOR/MWAIT are intercepted),
|
||||
KVM will inject a #UD on MONITOR/MWAIT if
|
||||
they're unsupported per guest CPUID. Note,
|
||||
KVM will modify MONITOR/MWAIT support in
|
||||
guest CPUID on writes to MISC_ENABLE if
|
||||
KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT is
|
||||
disabled.
|
||||
|
||||
KVM_X86_QUIRK_SLOT_ZAP_ALL By default, for KVM_X86_DEFAULT_VM VMs, KVM
|
||||
invalidates all SPTEs in all memslots and
|
||||
address spaces when a memslot is deleted or
|
||||
moved. When this quirk is disabled (or the
|
||||
VM type isn't KVM_X86_DEFAULT_VM), KVM only
|
||||
ensures the backing memory of the deleted
|
||||
or moved memslot isn't reachable, i.e KVM
|
||||
_may_ invalidate only SPTEs related to the
|
||||
memslot.
|
||||
KVM_X86_QUIRK_SLOT_ZAP_ALL By default, for KVM_X86_DEFAULT_VM VMs, KVM
|
||||
invalidates all SPTEs in all memslots and
|
||||
address spaces when a memslot is deleted or
|
||||
moved. When this quirk is disabled (or the
|
||||
VM type isn't KVM_X86_DEFAULT_VM), KVM only
|
||||
ensures the backing memory of the deleted
|
||||
or moved memslot isn't reachable, i.e KVM
|
||||
_may_ invalidate only SPTEs related to the
|
||||
memslot.
|
||||
|
||||
KVM_X86_QUIRK_STUFF_FEATURE_MSRS By default, at vCPU creation, KVM sets the
|
||||
vCPU's MSR_IA32_PERF_CAPABILITIES (0x345),
|
||||
MSR_IA32_ARCH_CAPABILITIES (0x10a),
|
||||
MSR_PLATFORM_INFO (0xce), and all VMX MSRs
|
||||
(0x480..0x492) to the maximal capabilities
|
||||
supported by KVM. KVM also sets
|
||||
MSR_IA32_UCODE_REV (0x8b) to an arbitrary
|
||||
value (which is different for Intel vs.
|
||||
AMD). Lastly, when guest CPUID is set (by
|
||||
userspace), KVM modifies select VMX MSR
|
||||
fields to force consistency between guest
|
||||
CPUID and L2's effective ISA. When this
|
||||
quirk is disabled, KVM zeroes the vCPU's MSR
|
||||
values (with two exceptions, see below),
|
||||
i.e. treats the feature MSRs like CPUID
|
||||
leaves and gives userspace full control of
|
||||
the vCPU model definition. This quirk does
|
||||
not affect VMX MSRs CR0/CR4_FIXED1 (0x487
|
||||
and 0x489), as KVM does now allow them to
|
||||
be set by userspace (KVM sets them based on
|
||||
guest CPUID, for safety purposes).
|
||||
KVM_X86_QUIRK_STUFF_FEATURE_MSRS By default, at vCPU creation, KVM sets the
|
||||
vCPU's MSR_IA32_PERF_CAPABILITIES (0x345),
|
||||
MSR_IA32_ARCH_CAPABILITIES (0x10a),
|
||||
MSR_PLATFORM_INFO (0xce), and all VMX MSRs
|
||||
(0x480..0x492) to the maximal capabilities
|
||||
supported by KVM. KVM also sets
|
||||
MSR_IA32_UCODE_REV (0x8b) to an arbitrary
|
||||
value (which is different for Intel vs.
|
||||
AMD). Lastly, when guest CPUID is set (by
|
||||
userspace), KVM modifies select VMX MSR
|
||||
fields to force consistency between guest
|
||||
CPUID and L2's effective ISA. When this
|
||||
quirk is disabled, KVM zeroes the vCPU's MSR
|
||||
values (with two exceptions, see below),
|
||||
i.e. treats the feature MSRs like CPUID
|
||||
leaves and gives userspace full control of
|
||||
the vCPU model definition. This quirk does
|
||||
not affect VMX MSRs CR0/CR4_FIXED1 (0x487
|
||||
and 0x489), as KVM does now allow them to
|
||||
be set by userspace (KVM sets them based on
|
||||
guest CPUID, for safety purposes).
|
||||
|
||||
KVM_X86_QUIRK_IGNORE_GUEST_PAT By default, on Intel platforms, KVM ignores
|
||||
guest PAT and forces the effective memory
|
||||
type to WB in EPT. The quirk is not available
|
||||
on Intel platforms which are incapable of
|
||||
safely honoring guest PAT (i.e., without CPU
|
||||
self-snoop, KVM always ignores guest PAT and
|
||||
forces effective memory type to WB). It is
|
||||
also ignored on AMD platforms or, on Intel,
|
||||
when a VM has non-coherent DMA devices
|
||||
assigned; KVM always honors guest PAT in
|
||||
such case. The quirk is needed to avoid
|
||||
slowdowns on certain Intel Xeon platforms
|
||||
(e.g. ICX, SPR) where self-snoop feature is
|
||||
supported but UC is slow enough to cause
|
||||
issues with some older guests that use
|
||||
UC instead of WC to map the video RAM.
|
||||
Userspace can disable the quirk to honor
|
||||
guest PAT if it knows that there is no such
|
||||
guest software, for example if it does not
|
||||
expose a bochs graphics device (which is
|
||||
known to have had a buggy driver).
|
||||
=================================== ============================================
|
||||
KVM_X86_QUIRK_IGNORE_GUEST_PAT By default, on Intel platforms, KVM ignores
|
||||
guest PAT and forces the effective memory
|
||||
type to WB in EPT. The quirk is not available
|
||||
on Intel platforms which are incapable of
|
||||
safely honoring guest PAT (i.e., without CPU
|
||||
self-snoop, KVM always ignores guest PAT and
|
||||
forces effective memory type to WB). It is
|
||||
also ignored on AMD platforms or, on Intel,
|
||||
when a VM has non-coherent DMA devices
|
||||
assigned; KVM always honors guest PAT in
|
||||
such case. The quirk is needed to avoid
|
||||
slowdowns on certain Intel Xeon platforms
|
||||
(e.g. ICX, SPR) where self-snoop feature is
|
||||
supported but UC is slow enough to cause
|
||||
issues with some older guests that use
|
||||
UC instead of WC to map the video RAM.
|
||||
Userspace can disable the quirk to honor
|
||||
guest PAT if it knows that there is no such
|
||||
guest software, for example if it does not
|
||||
expose a bochs graphics device (which is
|
||||
known to have had a buggy driver).
|
||||
|
||||
KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM By default, KVM relaxes the consistency
|
||||
check for GUEST_IA32_DEBUGCTL in vmcs12
|
||||
to allow FREEZE_IN_SMM to be set. When
|
||||
this quirk is disabled, KVM requires this
|
||||
bit to be cleared. Note that the vmcs02
|
||||
bit is still completely controlled by the
|
||||
host, regardless of the quirk setting.
|
||||
======================================== ================================================
|
||||
|
||||
7.32 KVM_CAP_MAX_VCPU_ID
|
||||
------------------------
|
||||
|
||||
@@ -17,6 +17,8 @@ The acquisition orders for mutexes are as follows:
|
||||
|
||||
- kvm->lock is taken outside kvm->slots_lock and kvm->irq_lock
|
||||
|
||||
- vcpu->mutex is taken outside kvm->slots_lock and kvm->slots_arch_lock
|
||||
|
||||
- kvm->slots_lock is taken outside kvm->irq_lock, though acquiring
|
||||
them together is quite rare.
|
||||
|
||||
|
||||
+25
-15
@@ -8632,9 +8632,8 @@ F: drivers/gpu/drm/lima/
|
||||
F: include/uapi/drm/lima_drm.h
|
||||
|
||||
DRM DRIVERS FOR LOONGSON
|
||||
M: Sui Jingfeng <suijingfeng@loongson.cn>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Supported
|
||||
S: Orphan
|
||||
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
|
||||
F: drivers/gpu/drm/loongson/
|
||||
|
||||
@@ -16374,7 +16373,6 @@ F: net/dsa/tag_mtk.c
|
||||
|
||||
MEDIATEK T7XX 5G WWAN MODEM DRIVER
|
||||
M: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
|
||||
R: Chiranjeevi Rapolu <chiranjeevi.rapolu@linux.intel.com>
|
||||
R: Liu Haijun <haijun.liu@mediatek.com>
|
||||
R: Ricardo Martinez <ricardo.martinez@linux.intel.com>
|
||||
L: netdev@vger.kernel.org
|
||||
@@ -16659,7 +16657,7 @@ F: mm/balloon.c
|
||||
MEMORY MANAGEMENT - CORE
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Mike Rapoport <rppt@kernel.org>
|
||||
@@ -16789,7 +16787,7 @@ F: mm/workingset.c
|
||||
MEMORY MANAGEMENT - MISC
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Mike Rapoport <rppt@kernel.org>
|
||||
@@ -16880,7 +16878,7 @@ R: David Hildenbrand <david@kernel.org>
|
||||
R: Michal Hocko <mhocko@kernel.org>
|
||||
R: Qi Zheng <zhengqi.arch@bytedance.com>
|
||||
R: Shakeel Butt <shakeel.butt@linux.dev>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Lorenzo Stoakes <ljs@kernel.org>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/vmscan.c
|
||||
@@ -16889,7 +16887,7 @@ F: mm/workingset.c
|
||||
MEMORY MANAGEMENT - RMAP (REVERSE MAPPING)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Rik van Riel <riel@surriel.com>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
@@ -16934,7 +16932,7 @@ F: mm/swapfile.c
|
||||
MEMORY MANAGEMENT - THP (TRANSPARENT HUGE PAGE)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Zi Yan <ziy@nvidia.com>
|
||||
R: Baolin Wang <baolin.wang@linux.alibaba.com>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
@@ -16974,7 +16972,7 @@ F: tools/testing/selftests/mm/uffd-*.[ch]
|
||||
|
||||
MEMORY MANAGEMENT - RUST
|
||||
M: Alice Ryhl <aliceryhl@google.com>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
L: linux-mm@kvack.org
|
||||
L: rust-for-linux@vger.kernel.org
|
||||
@@ -16990,7 +16988,7 @@ F: rust/kernel/page.rs
|
||||
MEMORY MAPPING
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Jann Horn <jannh@google.com>
|
||||
R: Pedro Falcato <pfalcato@suse.de>
|
||||
@@ -17020,7 +17018,7 @@ MEMORY MAPPING - LOCKING
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Suren Baghdasaryan <surenb@google.com>
|
||||
M: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Shakeel Butt <shakeel.butt@linux.dev>
|
||||
L: linux-mm@kvack.org
|
||||
@@ -17035,7 +17033,7 @@ F: mm/mmap_lock.c
|
||||
MEMORY MAPPING - MADVISE (MEMORY ADVICE)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: Lorenzo Stoakes <ljs@kernel.org>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Jann Horn <jannh@google.com>
|
||||
@@ -21954,7 +21952,7 @@ F: drivers/media/radio/radio-tea5777.c
|
||||
|
||||
RADOS BLOCK DEVICE (RBD)
|
||||
M: Ilya Dryomov <idryomov@gmail.com>
|
||||
R: Dongsheng Yang <dongsheng.yang@easystack.cn>
|
||||
R: Dongsheng Yang <dongsheng.yang@linux.dev>
|
||||
L: ceph-devel@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ceph.com/
|
||||
@@ -22283,6 +22281,16 @@ L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
F: drivers/net/wireless/rsi/
|
||||
|
||||
RELAY
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Jens Axboe <axboe@kernel.dk>
|
||||
M: Jason Xing <kernelxing@tencent.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/filesystems/relay.rst
|
||||
F: include/linux/relay.h
|
||||
F: kernel/relay.c
|
||||
|
||||
REGISTER MAP ABSTRACTION
|
||||
M: Mark Brown <broonie@kernel.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
@@ -23173,7 +23181,7 @@ K: \b(?i:rust)\b
|
||||
|
||||
RUST [ALLOC]
|
||||
M: Danilo Krummrich <dakr@kernel.org>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Lorenzo Stoakes <ljs@kernel.org>
|
||||
R: Vlastimil Babka <vbabka@kernel.org>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Uladzislau Rezki <urezki@gmail.com>
|
||||
@@ -24350,11 +24358,12 @@ F: drivers/nvmem/layouts/sl28vpd.c
|
||||
|
||||
SLAB ALLOCATOR
|
||||
M: Vlastimil Babka <vbabka@kernel.org>
|
||||
M: Harry Yoo <harry.yoo@oracle.com>
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
R: Hao Li <hao.li@linux.dev>
|
||||
R: Christoph Lameter <cl@gentwo.org>
|
||||
R: David Rientjes <rientjes@google.com>
|
||||
R: Roman Gushchin <roman.gushchin@linux.dev>
|
||||
R: Harry Yoo <harry.yoo@oracle.com>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
|
||||
@@ -25765,6 +25774,7 @@ F: include/net/pkt_cls.h
|
||||
F: include/net/pkt_sched.h
|
||||
F: include/net/sch_priv.h
|
||||
F: include/net/tc_act/
|
||||
F: include/net/tc_wrapper.h
|
||||
F: include/uapi/linux/pkt_cls.h
|
||||
F: include/uapi/linux/pkt_sched.h
|
||||
F: include/uapi/linux/tc_act/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
VERSION = 7
|
||||
PATCHLEVEL = 0
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc3
|
||||
EXTRAVERSION = -rc4
|
||||
NAME = Baby Opossum Posse
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@@ -476,6 +476,7 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
|
||||
export rust_common_flags := --edition=2021 \
|
||||
-Zbinary_dep_depinfo=y \
|
||||
-Astable_features \
|
||||
-Aunused_features \
|
||||
-Dnon_ascii_idents \
|
||||
-Dunsafe_op_in_unsafe_fn \
|
||||
-Wmissing_docs \
|
||||
@@ -1113,6 +1114,9 @@ KBUILD_CFLAGS += -fno-builtin-wcslen
|
||||
# change __FILE__ to the relative path to the source directory
|
||||
ifdef building_out_of_srctree
|
||||
KBUILD_CPPFLAGS += -fmacro-prefix-map=$(srcroot)/=
|
||||
ifeq ($(call rustc-option-yn, --remap-path-scope=macro),y)
|
||||
KBUILD_RUSTFLAGS += --remap-path-prefix=$(srcroot)/= --remap-path-scope=macro
|
||||
endif
|
||||
endif
|
||||
|
||||
# include additional Makefiles when needed
|
||||
|
||||
@@ -784,6 +784,9 @@ struct kvm_host_data {
|
||||
/* Number of debug breakpoints/watchpoints for this CPU (minus 1) */
|
||||
unsigned int debug_brps;
|
||||
unsigned int debug_wrps;
|
||||
|
||||
/* Last vgic_irq part of the AP list recorded in an LR */
|
||||
struct vgic_irq *last_lr_irq;
|
||||
};
|
||||
|
||||
struct kvm_host_psci_config {
|
||||
|
||||
@@ -2345,6 +2345,15 @@ static bool can_trap_icv_dir_el1(const struct arm64_cpu_capabilities *entry,
|
||||
!is_midr_in_range_list(has_vgic_v3))
|
||||
return false;
|
||||
|
||||
/*
|
||||
* pKVM prevents late onlining of CPUs. This means that whatever
|
||||
* state the capability is in after deprivilege cannot be affected
|
||||
* by a new CPU booting -- this is garanteed to be a CPU we have
|
||||
* already seen, and the cap is therefore unchanged.
|
||||
*/
|
||||
if (system_capabilities_finalized() && is_protected_kvm_enabled())
|
||||
return cpus_have_final_cap(ARM64_HAS_ICH_HCR_EL2_TDIR);
|
||||
|
||||
if (is_kernel_in_hyp_mode())
|
||||
res.a1 = read_sysreg_s(SYS_ICH_VTR_EL2);
|
||||
else
|
||||
|
||||
@@ -1504,8 +1504,6 @@ int __kvm_at_s1e2(struct kvm_vcpu *vcpu, u32 op, u64 vaddr)
|
||||
fail = true;
|
||||
}
|
||||
|
||||
isb();
|
||||
|
||||
if (!fail)
|
||||
par = read_sysreg_par();
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include "trace.h"
|
||||
|
||||
const struct _kvm_stats_desc kvm_vm_stats_desc[] = {
|
||||
const struct kvm_stats_desc kvm_vm_stats_desc[] = {
|
||||
KVM_GENERIC_VM_STATS()
|
||||
};
|
||||
|
||||
@@ -42,7 +42,7 @@ const struct kvm_stats_header kvm_vm_stats_header = {
|
||||
sizeof(kvm_vm_stats_desc),
|
||||
};
|
||||
|
||||
const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
|
||||
const struct kvm_stats_desc kvm_vcpu_stats_desc[] = {
|
||||
KVM_GENERIC_VCPU_STATS(),
|
||||
STATS_DESC_COUNTER(VCPU, hvc_exit_stat),
|
||||
STATS_DESC_COUNTER(VCPU, wfe_exit_stat),
|
||||
|
||||
@@ -518,7 +518,7 @@ static int host_stage2_adjust_range(u64 addr, struct kvm_mem_range *range)
|
||||
granule = kvm_granule_size(level);
|
||||
cur.start = ALIGN_DOWN(addr, granule);
|
||||
cur.end = cur.start + granule;
|
||||
if (!range_included(&cur, range))
|
||||
if (!range_included(&cur, range) && level < KVM_PGTABLE_LAST_LEVEL)
|
||||
continue;
|
||||
*range = cur;
|
||||
return 0;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user