linux/Documentation
Paolo Bonzini fd02aa45bd Merge branch 'kvm-tdx-initial' into HEAD
This large commit contains the initial support for TDX in KVM.  All x86
parts enable the host-side hypercalls that KVM uses to talk to the TDX
module, a software component that runs in a special CPU mode called SEAM
(Secure Arbitration Mode).

The series is in turn split into multiple sub-series, each with a separate
merge commit:

- Initialization: basic setup for using the TDX module from KVM, plus
  ioctls to create TDX VMs and vCPUs.

- MMU: in TDX, private and shared halves of the address space are mapped by
  different EPT roots, and the private half is managed by the TDX module.
  Using the support that was added to the generic MMU code in 6.14,
  add support for TDX's secure page tables to the Intel side of KVM.
  Generic KVM code takes care of maintaining a mirror of the secure page
  tables so that they can be queried efficiently, and ensuring that changes
  are applied to both the mirror and the secure EPT.

- vCPU enter/exit: implement the callbacks that handle the entry of a TDX
  vCPU (via the SEAMCALL TDH.VP.ENTER) and the corresponding save/restore
  of host state.

- Userspace exits: introduce support for guest TDVMCALLs that KVM forwards to
  userspace.  These correspond to the usual KVM_EXIT_* "heavyweight vmexits"
  but are triggered through a different mechanism, similar to VMGEXIT for
  SEV-ES and SEV-SNP.

- Interrupt handling: support for virtual interrupt injection as well as
  handling VM-Exits that are caused by vectored events.  Exclusive to
  TDX are machine-check SMIs, which the kernel already knows how to
  handle through the kernel machine check handler (commit 7911f145de,
  "x86/mce: Implement recovery for errors in TDX/SEAM non-root mode")

- Loose ends: handling of the remaining exits from the TDX module, including
  EPT violation/misconfig and several TDVMCALL leaves that are handled in
  the kernel (CPUID, HLT, RDMSR/WRMSR, GetTdVmCallInfo); plus returning
  an error or ignoring operations that are not supported by TDX guests

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-04-07 07:36:33 -04:00
..
ABI cxl for v6.15 2025-04-02 20:04:43 -07:00
accel
accounting
admin-guide more s390 updates for 6.15 merge window 2025-04-04 16:58:34 -07:00
arch RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
block Documentation: ublk: remove dead footnote 2025-03-31 07:06:22 -06:00
bpf bpf, docs: Fix broken link to renamed bpf_iter_task_vmas.c 2025-03-15 11:48:56 -07:00
cdrom
core-api - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
cpu-freq
crypto crypto: remove obsolete 'comp' compression API 2025-03-21 17:39:06 +08:00
dev-tools Kbuild updates for v6.15 2025-04-05 15:46:50 -07:00
devicetree Input updates for v6.15-rc0 2025-04-05 09:20:39 -07:00
doc-guide
driver-api cxl for v6.15 2025-04-02 20:04:43 -07:00
edac EDAC: Add a memory repair control feature 2025-02-26 11:13:23 +01:00
fault-injection
fb
features mseal sysmap: add arch-support txt 2025-04-01 15:17:17 -07:00
filesystems 9p update for 6.15-rc1 2025-04-03 15:35:46 -07:00
firmware_class
firmware-guide
fpga
gpu Core Changes: 2025-03-14 17:02:11 +10:00
hid
hwmon hwmon: add driver for HTU31 2025-03-18 08:03:40 -07:00
i2c
iio Char/Misc/IIO driver updates for 6.15-rc1 2025-04-01 11:26:08 -07:00
images
infiniband docs: infiniband: document the UCAP API 2025-03-09 13:13:02 -04:00
input Documentation: input: Add section pertaining to polled input devices 2025-02-21 13:29:53 -07:00
isdn
kbuild kbuild: make all file references relative to source root 2025-03-22 23:50:58 +09:00
kernel-hacking
leds
litmus-tests
livepatch docs: livepatch: move text out of code block 2025-03-04 16:01:29 +01:00
locking hwspinlock: Remove unused hwspin_lock_get_id() 2025-03-21 17:12:04 -05:00
maintainer
mhi
misc-devices
mm - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
netlabel
netlink netlink: specs: rt_route: pull the ifa- prefix out of the names 2025-04-04 07:36:06 -07:00
networking docs: net: document netdev notifier expectations 2025-04-03 15:32:08 -07:00
nvdimm
nvme Documentation: typo fixes 2025-02-18 14:01:22 -07:00
PCI PCI: endpoint: Remove unused devm_pci_epc_destroy() 2025-03-08 14:47:31 +00:00
pcmcia
peci
power
process Devicetree for v6.15: 2025-03-29 11:23:16 -07:00
RCU - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
rust ARM and clkdev updates for 6.15-rc1 2025-04-03 12:21:44 -07:00
scheduler Scheduler updates for v6.15: 2025-03-24 21:28:12 -07:00
scsi
security Hi, 2025-03-28 12:42:53 -07:00
sound sound updates for 6.15-rc1 2025-03-26 09:41:55 -07:00
sphinx docs: automarkup: drop legacy support 2025-02-18 13:42:46 -07:00
sphinx-static
spi
staging
sunrpc/xdr
target
tee
timers
tools Documentation/rv: Add sched pages to the indices 2025-03-27 12:02:38 -04:00
trace tracing/timers: Rename the hrtimer_init event to hrtimer_setup 2025-04-05 10:30:17 +02:00
translations - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
usb USB/Thunderbolt update for 6.15-rc1 2025-04-02 18:23:31 -07:00
userspace-api - The 2 patch series "mm: fixes for fallouts from mem_init() cleanup" 2025-04-03 11:10:00 -07:00
virt Merge branch 'kvm-tdx-initial' into HEAD 2025-04-07 07:36:33 -04:00
w1
watchdog
wmi platform/x86: wmi: Update documentation regarding the GUID-based API 2025-02-24 13:30:58 +02:00
.gitignore
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py docs: changes: update Sphinx minimal version to 3.4.3 2025-02-13 11:33:32 -07:00
docutils.conf
index.rst
Kconfig
Makefile docs: Makefile: use the new script to check for bad ABI references 2025-02-13 09:44:30 -07:00
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst Documentation/EDAC: Fix warning document isn't included in any toctree 2025-04-01 22:26:47 +02:00