mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
* Clean up vCPU targets, always returning generic v8 as the preferred target
* Trap forwarding infrastructure for nested virtualization (used for traps
that are taken from an L2 guest and are needed by the L1 hypervisor)
* FEAT_TLBIRANGE support to only invalidate specific ranges of addresses
when collapsing a table PTE to a block PTE. This avoids that the guest
refills the TLBs again for addresses that aren't covered by the table PTE.
* Fix vPMU issues related to handling of PMUver.
* Don't unnecessary align non-stack allocations in the EL2 VA space
* Drop HCR_VIRT_EXCP_MASK, which was never used...
* Don't use smp_processor_id() in kvm_arch_vcpu_load(),
but the cpu parameter instead
* Drop redundant call to kvm_set_pfn_accessed() in user_mem_abort()
* Remove prototypes without implementations
RISC-V:
* Zba, Zbs, Zicntr, Zicsr, Zifencei, and Zihpm support for guest
* Added ONE_REG interface for SATP mode
* Added ONE_REG interface to enable/disable multiple ISA extensions
* Improved error codes returned by ONE_REG interfaces
* Added KVM_GET_REG_LIST ioctl() implementation for KVM RISC-V
* Added get-reg-list selftest for KVM RISC-V
s390:
* PV crypto passthrough enablement (Tony, Steffen, Viktor, Janosch)
Allows a PV guest to use crypto cards. Card access is governed by
the firmware and once a crypto queue is "bound" to a PV VM every
other entity (PV or not) looses access until it is not bound
anymore. Enablement is done via flags when creating the PV VM.
* Guest debug fixes (Ilya)
x86:
* Clean up KVM's handling of Intel architectural events
* Intel bugfixes
* Add support for SEV-ES DebugSwap, allowing SEV-ES guests to use debug
registers and generate/handle #DBs
* Clean up LBR virtualization code
* Fix a bug where KVM fails to set the target pCPU during an IRTE update
* Fix fatal bugs in SEV-ES intrahost migration
* Fix a bug where the recent (architecturally correct) change to reinject
#BP and skip INT3 broke SEV guests (can't decode INT3 to skip it)
* Retry APIC map recalculation if a vCPU is added/enabled
* Overhaul emergency reboot code to bring SVM up to par with VMX, tie the
"emergency disabling" behavior to KVM actually being loaded, and move all of
the logic within KVM
* Fix user triggerable WARNs in SVM where KVM incorrectly assumes the TSC
ratio MSR cannot diverge from the default when TSC scaling is disabled
up related code
* Add a framework to allow "caching" feature flags so that KVM can check if
the guest can use a feature without needing to search guest CPUID
* Rip out the ancient MMU_DEBUG crud and replace the useful bits with
CONFIG_KVM_PROVE_MMU
* Fix KVM's handling of !visible guest roots to avoid premature triple fault
injection
* Overhaul KVM's page-track APIs, and KVMGT's usage, to reduce the API surface
that is needed by external users (currently only KVMGT), and fix a variety
of issues in the process
This last item had a silly one-character bug in the topic branch that
was sent to me. Because it caused pretty bad selftest failures in
some configurations, I decided to squash in the fix. So, while the
exact commit ids haven't been in linux-next, the code has (from the
kvm-x86 tree).
Generic:
* Wrap kvm_{gfn,hva}_range.pte in a union to allow mmu_notifier events to pass
action specific data without needing to constantly update the main handlers.
* Drop unused function declarations
Selftests:
* Add testcases to x86's sync_regs_test for detecting KVM TOCTOU bugs
* Add support for printf() in guest code and covert all guest asserts to use
printf-based reporting
* Clean up the PMU event filter test and add new testcases
* Include x86 selftests in the KVM x86 MAINTAINERS entry
-----BEGIN PGP SIGNATURE-----
iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmT1m0kUHHBib256aW5p
QHJlZGhhdC5jb20ACgkQv/vSX3jHroMNgggAiN7nz6UC423FznuI+yO3TLm8tkx1
CpKh5onqQogVtchH+vrngi97cfOzZb1/AtifY90OWQi31KEWhehkeofcx7G6ERhj
5a9NFADY1xGBsX4exca/VHDxhnzsbDWaWYPXw5vWFWI6erft9Mvy3tp1LwTvOzqM
v8X4aWz+g5bmo/DWJf4Wu32tEU6mnxzkrjKU14JmyqQTBawVmJ3RYvHVJ/Agpw+n
hRtPAy7FU6XTdkmq/uCT+KUHuJEIK0E/l1js47HFAqSzwdW70UDg14GGo1o4ETxu
RjZQmVNvL57yVgi6QU38/A0FWIsWQm5IlaX1Ug6x8pjZPnUKNbo9BY4T1g==
=W+4p
-----END PGP SIGNATURE-----
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm updates from Paolo Bonzini:
"ARM:
- Clean up vCPU targets, always returning generic v8 as the preferred
target
- Trap forwarding infrastructure for nested virtualization (used for
traps that are taken from an L2 guest and are needed by the L1
hypervisor)
- FEAT_TLBIRANGE support to only invalidate specific ranges of
addresses when collapsing a table PTE to a block PTE. This avoids
that the guest refills the TLBs again for addresses that aren't
covered by the table PTE.
- Fix vPMU issues related to handling of PMUver.
- Don't unnecessary align non-stack allocations in the EL2 VA space
- Drop HCR_VIRT_EXCP_MASK, which was never used...
- Don't use smp_processor_id() in kvm_arch_vcpu_load(), but the cpu
parameter instead
- Drop redundant call to kvm_set_pfn_accessed() in user_mem_abort()
- Remove prototypes without implementations
RISC-V:
- Zba, Zbs, Zicntr, Zicsr, Zifencei, and Zihpm support for guest
- Added ONE_REG interface for SATP mode
- Added ONE_REG interface to enable/disable multiple ISA extensions
- Improved error codes returned by ONE_REG interfaces
- Added KVM_GET_REG_LIST ioctl() implementation for KVM RISC-V
- Added get-reg-list selftest for KVM RISC-V
s390:
- PV crypto passthrough enablement (Tony, Steffen, Viktor, Janosch)
Allows a PV guest to use crypto cards. Card access is governed by
the firmware and once a crypto queue is "bound" to a PV VM every
other entity (PV or not) looses access until it is not bound
anymore. Enablement is done via flags when creating the PV VM.
- Guest debug fixes (Ilya)
x86:
- Clean up KVM's handling of Intel architectural events
- Intel bugfixes
- Add support for SEV-ES DebugSwap, allowing SEV-ES guests to use
debug registers and generate/handle #DBs
- Clean up LBR virtualization code
- Fix a bug where KVM fails to set the target pCPU during an IRTE
update
- Fix fatal bugs in SEV-ES intrahost migration
- Fix a bug where the recent (architecturally correct) change to
reinject #BP and skip INT3 broke SEV guests (can't decode INT3 to
skip it)
- Retry APIC map recalculation if a vCPU is added/enabled
- Overhaul emergency reboot code to bring SVM up to par with VMX, tie
the "emergency disabling" behavior to KVM actually being loaded,
and move all of the logic within KVM
- Fix user triggerable WARNs in SVM where KVM incorrectly assumes the
TSC ratio MSR cannot diverge from the default when TSC scaling is
disabled up related code
- Add a framework to allow "caching" feature flags so that KVM can
check if the guest can use a feature without needing to search
guest CPUID
- Rip out the ancient MMU_DEBUG crud and replace the useful bits with
CONFIG_KVM_PROVE_MMU
- Fix KVM's handling of !visible guest roots to avoid premature
triple fault injection
- Overhaul KVM's page-track APIs, and KVMGT's usage, to reduce the
API surface that is needed by external users (currently only
KVMGT), and fix a variety of issues in the process
Generic:
- Wrap kvm_{gfn,hva}_range.pte in a union to allow mmu_notifier
events to pass action specific data without needing to constantly
update the main handlers.
- Drop unused function declarations
Selftests:
- Add testcases to x86's sync_regs_test for detecting KVM TOCTOU bugs
- Add support for printf() in guest code and covert all guest asserts
to use printf-based reporting
- Clean up the PMU event filter test and add new testcases
- Include x86 selftests in the KVM x86 MAINTAINERS entry"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (279 commits)
KVM: x86/mmu: Include mmu.h in spte.h
KVM: x86/mmu: Use dummy root, backed by zero page, for !visible guest roots
KVM: x86/mmu: Disallow guest from using !visible slots for page tables
KVM: x86/mmu: Harden TDP MMU iteration against root w/o shadow page
KVM: x86/mmu: Harden new PGD against roots without shadow pages
KVM: x86/mmu: Add helper to convert root hpa to shadow page
drm/i915/gvt: Drop final dependencies on KVM internal details
KVM: x86/mmu: Handle KVM bookkeeping in page-track APIs, not callers
KVM: x86/mmu: Drop @slot param from exported/external page-track APIs
KVM: x86/mmu: Bug the VM if write-tracking is used but not enabled
KVM: x86/mmu: Assert that correct locks are held for page write-tracking
KVM: x86/mmu: Rename page-track APIs to reflect the new reality
KVM: x86/mmu: Drop infrastructure for multiple page-track modes
KVM: x86/mmu: Use page-track notifiers iff there are external users
KVM: x86/mmu: Move KVM-only page-track declarations to internal header
KVM: x86: Remove the unused page-track hook track_flush_slot()
drm/i915/gvt: switch from ->track_flush_slot() to ->track_remove_region()
KVM: x86: Add a new page-track hook to handle memslot deletion
drm/i915/gvt: Don't bother removing write-protection on to-be-deleted slot
KVM: x86: Reject memslot MOVE operations if KVMGT is attached
...
|
||
|---|---|---|
| .. | ||
| dec | ||
| fw | ||
| ip32 | ||
| mach-ar7 | ||
| mach-ath25 | ||
| mach-ath79 | ||
| mach-au1x00 | ||
| mach-bcm47xx | ||
| mach-bcm63xx | ||
| mach-bmips | ||
| mach-cavium-octeon | ||
| mach-cobalt | ||
| mach-db1x00 | ||
| mach-dec | ||
| mach-generic | ||
| mach-ingenic | ||
| mach-ip22 | ||
| mach-ip27 | ||
| mach-ip28 | ||
| mach-ip30 | ||
| mach-ip32 | ||
| mach-jazz | ||
| mach-lantiq | ||
| mach-loongson2ef | ||
| mach-loongson32 | ||
| mach-loongson64 | ||
| mach-malta | ||
| mach-n64 | ||
| mach-pic32 | ||
| mach-ralink | ||
| mach-rc32434 | ||
| mach-rm | ||
| mach-sibyte | ||
| mach-tx49xx | ||
| mips-boards | ||
| octeon | ||
| pci | ||
| sgi | ||
| sibyte | ||
| sn | ||
| txx9 | ||
| vdso | ||
| xtalk | ||
| abi.h | ||
| addrspace.h | ||
| amon.h | ||
| arch_hweight.h | ||
| asm-eva.h | ||
| asm-offsets.h | ||
| asm-prototypes.h | ||
| asm.h | ||
| asmmacro-32.h | ||
| asmmacro-64.h | ||
| asmmacro.h | ||
| atomic.h | ||
| barrier.h | ||
| bcache.h | ||
| bitops.h | ||
| bitrev.h | ||
| bmips-spaces.h | ||
| bmips.h | ||
| bootinfo.h | ||
| branch.h | ||
| break.h | ||
| bug.h | ||
| bugs.h | ||
| cache.h | ||
| cacheflush.h | ||
| cacheops.h | ||
| cdmm.h | ||
| cevt-r4k.h | ||
| checksum.h | ||
| clocksource.h | ||
| cmp.h | ||
| cmpxchg.h | ||
| compat-signal.h | ||
| compat.h | ||
| compiler.h | ||
| cop2.h | ||
| cpu-features.h | ||
| cpu-info.h | ||
| cpu-type.h | ||
| cpu.h | ||
| cpufeature.h | ||
| debug.h | ||
| delay.h | ||
| div64.h | ||
| dma-direct.h | ||
| dma-mapping.h | ||
| dma.h | ||
| dmi.h | ||
| ds1287.h | ||
| dsemul.h | ||
| dsp.h | ||
| edac.h | ||
| elf.h | ||
| elfcore-compat.h | ||
| errno.h | ||
| eva.h | ||
| exec.h | ||
| extable.h | ||
| fb.h | ||
| fixmap.h | ||
| floppy.h | ||
| fpregdef.h | ||
| fpu_emulator.h | ||
| fpu.h | ||
| ftrace.h | ||
| futex.h | ||
| ginvt.h | ||
| gio_device.h | ||
| gt64120.h | ||
| hardirq.h | ||
| hazards.h | ||
| highmem.h | ||
| hpet.h | ||
| hugetlb.h | ||
| hw_irq.h | ||
| i8259.h | ||
| idle.h | ||
| inst.h | ||
| io.h | ||
| irq_cpu.h | ||
| irq_gt641xx.h | ||
| irq_regs.h | ||
| irq.h | ||
| irqflags.h | ||
| isa-rev.h | ||
| isadep.h | ||
| jazz.h | ||
| jazzdma.h | ||
| jump_label.h | ||
| Kbuild | ||
| kdebug.h | ||
| kexec.h | ||
| kgdb.h | ||
| kprobes.h | ||
| kvm_host.h | ||
| kvm_types.h | ||
| linkage.h | ||
| local.h | ||
| maar.h | ||
| machine.h | ||
| mc146818-time.h | ||
| mc146818rtc.h | ||
| mips_mt.h | ||
| mips-cm.h | ||
| mips-cpc.h | ||
| mips-cps.h | ||
| mips-gic.h | ||
| mips-r2-to-r6-emul.h | ||
| mipsmtregs.h | ||
| mipsprom.h | ||
| mipsregs.h | ||
| mmiowb.h | ||
| mmu_context.h | ||
| mmu.h | ||
| mmzone.h | ||
| module.h | ||
| msa.h | ||
| msc01_ic.h | ||
| paccess.h | ||
| page.h | ||
| pci.h | ||
| perf_event.h | ||
| pgalloc.h | ||
| pgtable-32.h | ||
| pgtable-64.h | ||
| pgtable-bits.h | ||
| pgtable.h | ||
| pm-cps.h | ||
| pm.h | ||
| prefetch.h | ||
| processor.h | ||
| prom.h | ||
| ptrace.h | ||
| r4k-timer.h | ||
| r4kcache.h | ||
| reboot.h | ||
| reg.h | ||
| regdef.h | ||
| rtlx.h | ||
| seccomp.h | ||
| setup.h | ||
| sgialib.h | ||
| sgiarcs.h | ||
| shmparam.h | ||
| sigcontext.h | ||
| signal.h | ||
| sim.h | ||
| smp-cps.h | ||
| smp-ops.h | ||
| smp.h | ||
| sni.h | ||
| socket.h | ||
| sparsemem.h | ||
| spinlock_types.h | ||
| spinlock.h | ||
| spram.h | ||
| stackframe.h | ||
| stackprotector.h | ||
| stacktrace.h | ||
| string.h | ||
| switch_to.h | ||
| sync.h | ||
| syscall.h | ||
| thread_info.h | ||
| time.h | ||
| timex.h | ||
| tlb.h | ||
| tlbdebug.h | ||
| tlbex.h | ||
| tlbflush.h | ||
| tlbmisc.h | ||
| topology.h | ||
| traps.h | ||
| txx9irq.h | ||
| txx9pio.h | ||
| txx9tmr.h | ||
| types.h | ||
| uaccess.h | ||
| uasm.h | ||
| unaligned-emul.h | ||
| unistd.h | ||
| unroll.h | ||
| uprobes.h | ||
| vdso.h | ||
| vermagic.h | ||
| vga.h | ||
| vmalloc.h | ||
| vpe.h | ||
| watch.h | ||
| wbflush.h | ||
| yamon-dt.h | ||