<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/Documentation/virt/kvm/api.rst, branch linux-6.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-04-04T10:32:17Z</updated>
<entry>
<title>Documentation: kvm: remove KVM_CAP_MIPS_TE</title>
<updated>2025-04-04T10:32:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-04-01T13:04:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=269a2c3663c6d19526347e7c537b36e74e4df3e6'/>
<id>urn:sha1:269a2c3663c6d19526347e7c537b36e74e4df3e6</id>
<content type='text'>
Trap and emulate virtualization is not available anymore for MIPS.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Documentation: kvm: organize capabilities in the right section</title>
<updated>2025-04-04T10:32:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-04-01T12:57:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af339282e203fb3fa99790c6c48ced3c27cc7bd9'/>
<id>urn:sha1:af339282e203fb3fa99790c6c48ced3c27cc7bd9</id>
<content type='text'>
Categorize the capabilities correctly.  Section 6 is for enabled vCPU
capabilities; section 7 is for enabled VM capabilities; section 8 is
for informational ones.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Documentation: kvm: fix some definition lists</title>
<updated>2025-04-04T10:32:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-04-01T12:54:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ed7974fd592bc0d3649a42725f5e0b13ea466010'/>
<id>urn:sha1:ed7974fd592bc0d3649a42725f5e0b13ea466010</id>
<content type='text'>
Ensure that they have a ":" in front of the defined item.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Documentation: kvm: drop "Capability" heading from capabilities</title>
<updated>2025-04-04T10:32:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-04-01T12:50:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f313018de0fce3f97f6cd49925c8c0cb1a37c67'/>
<id>urn:sha1:2f313018de0fce3f97f6cd49925c8c0cb1a37c67</id>
<content type='text'>
It is redundant, and sometimes wrong.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Documentation: kvm: give correct name for KVM_CAP_SPAPR_MULTITCE</title>
<updated>2025-04-04T10:32:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-04-01T12:50:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26cb30f22f9cb9d964f7ae4b3233c0b9d2cddb2f'/>
<id>urn:sha1:26cb30f22f9cb9d964f7ae4b3233c0b9d2cddb2f</id>
<content type='text'>
The capability is incorrectly called KVM_CAP_PPC_MULTITCE in the documentation.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Documentation: KVM: KVM_GET_SUPPORTED_CPUID now exposes TSC_DEADLINE</title>
<updated>2025-04-04T10:24:05Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-03-31T15:05:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3e555ba45da361f5286b35921c7ca8afbef6384'/>
<id>urn:sha1:f3e555ba45da361f5286b35921c7ca8afbef6384</id>
<content type='text'>
TSC_DEADLINE is now advertised unconditionally by KVM_GET_SUPPORTED_CPUID,
since commit 9be4ec35d668 ("KVM: x86: Advertise TSC_DEADLINE_TIMER in
KVM_GET_SUPPORTED_CPUID", 2024-12-18).  Adjust the documentation to
reflect the new behavior.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Reviewed-by: Sean Christopherson &lt;seanjc@google.com&gt;
Message-ID: &lt;20250331150550.510320-1-pbonzini@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'kvmarm-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD</title>
<updated>2025-03-20T16:54:12Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2025-03-20T16:54:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0afd104fb352f2133bbefcaf9761d28bd9dbc961'/>
<id>urn:sha1:0afd104fb352f2133bbefcaf9761d28bd9dbc961</id>
<content type='text'>
KVM/arm64 updates for 6.15

 - Nested virtualization support for VGICv3, giving the nested
   hypervisor control of the VGIC hardware when running an L2 VM

 - Removal of 'late' nested virtualization feature register masking,
   making the supported feature set directly visible to userspace

 - Support for emulating FEAT_PMUv3 on Apple silicon, taking advantage
   of an IMPLEMENTATION DEFINED trap that covers all PMUv3 registers

 - Paravirtual interface for discovering the set of CPU implementations
   where a VM may run, addressing a longstanding issue of guest CPU
   errata awareness in big-little systems and cross-implementation VM
   migration

 - Userspace control of the registers responsible for identifying a
   particular CPU implementation (MIDR_EL1, REVIDR_EL1, AIDR_EL1),
   allowing VMs to be migrated cross-implementation

 - pKVM updates, including support for tracking stage-2 page table
   allocations in the protected hypervisor in the 'SecPageTable' stat

 - Fixes to vPMU, ensuring that userspace updates to the vPMU after
   KVM_RUN are reflected into the backing perf events
</content>
</entry>
<entry>
<title>KVM: arm64: Fix documentation for KVM_CAP_ARM_WRITABLE_IMP_ID_REGS</title>
<updated>2025-03-06T00:56:58Z</updated>
<author>
<name>Oliver Upton</name>
</author>
<published>2025-03-05T23:08:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5980a693701229c02f19fec051ae0845309413c6'/>
<id>urn:sha1:5980a693701229c02f19fec051ae0845309413c6</id>
<content type='text'>
The capability actually fails with EINVAL if vCPUs have already been
created.

Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Link: https://lore.kernel.org/r/20250305230825.484091-4-oliver.upton@linux.dev
Signed-off-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Allow userspace to change the implementation ID registers</title>
<updated>2025-02-26T09:32:16Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2025-02-25T00:54:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3adaee78306148da5df5d3d655e9a90bf18e9513'/>
<id>urn:sha1:3adaee78306148da5df5d3d655e9a90bf18e9513</id>
<content type='text'>
KVM's treatment of the ID registers that describe the implementation
(MIDR, REVIDR, and AIDR) is interesting, to say the least. On the
userspace-facing end of it, KVM presents the values of the boot CPU on
all vCPUs and treats them as invariant. On the guest side of things KVM
presents the hardware values of the local CPU, which can change during
CPU migration in a big-little system.

While one may call this fragile, there is at least some degree of
predictability around it. For example, if a VMM wanted to present
big-little to a guest, it could affine vCPUs accordingly to the correct
clusters.

All of this makes a giant mess out of adding support for making these
implementation ID registers writable. Avoid breaking the rather subtle
ABI around the old way of doing things by requiring opt-in from
userspace to make the registers writable.

When the cap is enabled, allow userspace to set MIDR, REVIDR, and AIDR
to any non-reserved value and present those values consistently across
all vCPUs.

Signed-off-by: Sebastian Ott &lt;sebott@redhat.com&gt;
[oliver: changelog, capability]
Link: https://lore.kernel.org/r/20250225005401.679536-5-oliver.upton@linux.dev
Signed-off-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
</content>
</entry>
<entry>
<title>KVM: x86/xen: Restrict hypercall MSR to unofficial synthetic range</title>
<updated>2025-02-24T16:59:55Z</updated>
<author>
<name>Sean Christopherson</name>
</author>
<published>2025-02-15T01:14:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c17848134ab1ffb97c4a17a6e25b41390478152'/>
<id>urn:sha1:5c17848134ab1ffb97c4a17a6e25b41390478152</id>
<content type='text'>
Reject userspace attempts to set the Xen hypercall page MSR to an index
outside of the "standard" virtualization range [0x40000000, 0x4fffffff],
as KVM is not equipped to handle collisions with real MSRs, e.g. KVM
doesn't update MSR interception, conflicts with VMCS/VMCB fields, special
case writes in KVM, etc.

While the MSR index isn't strictly ABI, i.e. can theoretically float to
any value, in practice no known VMM sets the MSR index to anything other
than 0x40000000 or 0x40000200.

Cc: Joao Martins &lt;joao.m.martins@oracle.com&gt;
Reviewed-by: David Woodhouse &lt;dwmw@amazon.co.uk&gt;
Reviewed-by: Paul Durrant &lt;paul@xen.org&gt;
Link: https://lore.kernel.org/r/20250215011437.1203084-2-seanjc@google.com
Signed-off-by: Sean Christopherson &lt;seanjc@google.com&gt;
</content>
</entry>
</feed>
