Convert FNAME(fetch) to receive single argument, struct kvm_page_fault
instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/paging_tmpl.h | 36 +++---
1 file changed, 16 insertions(+), 20 deletions(-)
diff
Convert kvm_tdp_mmu_map() to receive single argument, struct kvm_page_fault
instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/mmu.c | 8 +---
arch/x86/kvm/mmu/tdp_mmu.c | 21 +++--
arch/x86/kvm/mmu/tdp_mmu.h
Convert __direct_map() to receive single argument, struct kvm_page_fault
instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/mmu.c | 27 ---
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/arch
Convert fast_page_fault() to receive single argument, struct kvm_page_fault
instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/mmu.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kvm/mmu/mmu.c b
Convert handle_abnormal_pfn() to receive single argument,
struct kvm_page_fault, instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/mmu.c | 14 --
arch/x86/kvm/mmu/paging_tmpl.h | 2 +-
2 files changed, 9
Convert page_fault_handle_page_trace() to receive single argument,
struct kvm_page_fault, instead of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu/mmu.c | 9 +
arch/x86/kvm/mmu/paging_tmpl.h | 4 ++--
2 files changed, 7
Convert try_async_pf() to receive single struct kvm_page_fault instead of
many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu.h | 9 +++
arch/x86/kvm/mmu/mmu.c | 45 +-
arch/x86/kvm/mmu
Convert kvm_mmu:page_fault callback to receive struct kvm_page_fault
instead of many arguments.
The following functions are converted by this patch.
kvm_tdp_page_fault(), nonpaging_page_fault() and, FNAME(page_fault).
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86
Convert direct_page_fault() to receive struct kvm_page_fault instead of
many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
---
arch/x86/kvm/mmu.h | 10 ++
arch/x86/kvm/mmu/mmu.c | 32
2 files changed, 30 insertions
Introduce struct kvm_page_fault handler and its initialization function.
Make the caller of kvm page fault handler allocate/initialize
struct kvm_page_fault, and pass it to kvm_mmu_do_page_fault() instead
of many arguments.
No functional change is intended.
Signed-off-by: Isaku Yamahata
()
. __direct_map()
. kvm_tdp_mmu_map()
. FNAME(fetch)
Probably more functions should be converted. or some should not converted.
Only code refactoring and no functional change is intended.
Isaku Yamahata (10):
KVM: x86/mmu: make kvm_mmu_do_page_fault() receive single argument
KVM: x86/mmu: make
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 8249d17d3194eac064a8ca5bc5ca0abc86feecde
Gitweb:
https://git.kernel.org/tip/8249d17d3194eac064a8ca5bc5ca0abc86feecde
Author:Isaku Yamahata
AuthorDate:Thu, 18 Mar 2021 13:26:57 -07:00
boot")
Reviewed-by: Kirill A. Shutemov
Signed-off-by: Isaku Yamahata
---
arch/x86/mm/mem_encrypt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 4b01f7dbaf30..ae78cef79980 100644
--- a/arch/x86/mm/mem_encrypt.c
From: Isaku Yamahata
Add a flag for TDX to flag RO memory as unsupported and propagate it to
KVM_MEM_READONLY to allow reporting RO memory as unsupported on a per-VM
basis. TDX1 doesn't expose permission bits to the VMM in the SEPT
tables, i.e. doesn't support read-only private memory.
Signed
From: Sean Christopherson
Add 'guest_state_protected' to mark a VM's state as being protected by
hardware/firmware, e.g. SEV-ES or TDX-SEAM. Use the flag to disallow
ioctls() and/or flows that attempt to access protected state.
Return an error if userspace attempts to get/set register state
From: Sean Christopherson
Return true for kvm_vcpu_has_events() if the vCPU has a pending APICv
interrupt to support TDX's usage of APICv. Unlike VMX, TDX doesn't have
access to vmcs.GUEST_INTR_STATUS and so can't emulate posted interrupts,
i.e. needs to generate a posted interrupt and more
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
virt/kvm/kvm_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 2541a17ff1c4..65e1737c4354 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -4288,6 +4288,7 @@
From: Sean Christopherson
By necessity, TDX will use a different register ABI for hypercalls.
Break out the core functionality so that it may be reused for TDX.
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/kvm_host.h | 4 +++
arch/x86/kvm/x86.c | 49
From: Sean Christopherson
Let userspace, or in the case of TDX, KVM itself, enable X2APIC even if
X2APIC is not reported as supported in the guest's CPU model. KVM
generally does not force specific ordering between ioctls(), e.g. this
forces userspace to configure CPUID before MSRs. And for
From: Sean Christopherson
Export kvm_make_all_cpus_request() and hoist the request helper
declarations of request up to the KVM_REQ_* definitions in preparation
for adding a "VM bugged" framework. The framework will add KVM_BUG()
and KVM_BUG_ON() as alternatives to full BUG()/BUG_ON() for cases
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
include/linux/kvm_host.h | 27 +++
virt/kvm/kvm_main.c | 10 +-
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index
From: Sean Christopherson
Add a capability to effectively allow userspace to query what VM types
are supported by KVM.
Co-developed-by: Xiaoyao Li
Signed-off-by: Xiaoyao Li
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/kvm_host.h | 2 ++
arch/x86/include/uapi/asm/kvm.h
From: Sean Christopherson
Explicitly check that kvm_x86_ops.tlb_remote_flush() points at Hyper-V's
implementation for PV flushing instead of assuming that a non-NULL
implemenation means running on Hyper-V. Wrap the related logic in
ifdeffery as hv_remote_flush_tlb() is defined iff
From: Isaku Yamahata
TDX doesn't support SMM, whereas VMX conditionally support SMM. Rework
kvm_x86_ops.has_emulated_msr() to take a struct kvm so that TDX can
reject SMM by way of the MSR_IA32_SMBASE check.
This pair with a QEMU change to query SMM support using a VM ioctl().
Signed-off
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/mmu/mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 3c7e43e12513..bebd2b6ebcad 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++
From: Sean Christopherson
Move the kvm_dirty_regs vs. KVM_SYNC_X86_VALID_FIELDS check out of
sync_regs() and into its sole caller, kvm_arch_vcpu_ioctl_run(). This
allows a future patch to allow synchronizing select state for protected
VMs.
Signed-off-by: Sean Christopherson
---
From: Kai Huang
Add a flag to let TDX disallow the in-kernel I/O APIC, level triggered
routes for a userspace I/O APIC, and anything else that relies on being
able to intercept EOIs. TDX-SEAM does not allow intercepting EOI.
Note, technically KVM could partially emulate the I/O APIC by
From: Sean Christopherson
Add a flag to disallow MCE injection and reject KVM_X86_SETUP_MCE with
-EINVAL when set. TDX doesn't support injecting exceptions, including
(virtual) #MCs.
Signed-off-by: Kai Huang
Co-developed-by: Sean Christopherson
Signed-off-by: Sean Christopherson
---
From: Zhang Chen
Move get_builtin_firmware() to common.c so that it can be used to get
non-ucode firmware, e.g. Intel's SEAM modules, even if MICROCODE=n.
Require the consumers to select FW_LOADER, which is already true for
MICROCODE, instead of having dead code that returns false at runtime.
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/svm/svm.c | 2 +-
arch/x86/kvm/vmx/vmx.c | 23 ++-
arch/x86/kvm/x86.c | 4
3 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/arch/x86/kvm/svm/svm.c
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/x86.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0f67f762717a..1d999b57f21a 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -11237,6 +11237,7 @@ int
From: Isaku Yamahata
* What's TDX?
TDX stands for Trust Domain Extensions which isolates VMs from
the virtual-machine manager (VMM)/hypervisor and any other software on
the platform. [1]
For details, the specifications, [2], [3], [4], [5], [6], [7], are
available.
* The goal of this RFC patch
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/arm64/include/asm/kvm_host.h | 3 ---
arch/arm64/kvm/arm.c | 7 ++-
arch/arm64/kvm/vgic/vgic-init.c | 6 +++---
include/linux/kvm_host.h | 1 +
virt/kvm/kvm_main.c | 3 ++-
5 files
From: Sean Christopherson
Pass intr_info to the NMI and INTR handlers instead of pulling it from
vcpu_vmx in preparation for sharing the bulk of the handlers with TDX.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/vmx.c | 16 ++--
1 file changed, 6 insertions(+), 10
From: Sean Christopherson
When adding pages prior to boot, TDX will need the resulting host pfn so
that it can be passed to TDADDPAGE (TDX-SEAM always works with physical
addresses as it has its own page tables). Start plumbing pfn back up
the page fault stack.
Signed-off-by: Sean
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/common.h | 29 +
arch/x86/kvm/vmx/vmx.c| 32 +---
2 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/arch/x86/kvm/vmx/common.h
From: Sean Christopherson
Co-developed-by: Kai Huang
Signed-off-by: Kai Huang
Co-developed-by: Xiaoyao Li
Signed-off-by: Xiaoyao Li
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/tdx_ops.h | 531 +
1 file changed, 531 insertions(+)
create mode
From: Sean Christopherson
TDX will use kvm_is_reserved_pfn() to prevent installing a reserved PFN
int SEPT. Or rather, to prevent such an attempt, as reserved PFNs are
not covered by TDMRs.
Signed-off-by: Sean Christopherson
---
virt/kvm/kvm_main.c | 1 +
1 file changed, 1 insertion(+)
diff
From: Sean Christopherson
Employ a 'continue' to reduce the indentation for linking a new shadow
page during __direct_map() in preparation for linking private pages.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/mmu/mmu.c | 19 +--
1 file changed, 9 insertions(+), 10
From: Kai Huang
Add a comment to explain that TDX also depends on booting logical CPUs
at least once.
TDSYSINITLP must be run on all CPUs, even software disabled CPUs in the
-nosmt case. Fortunately, current SMT handling for #MC already supports
booting all CPUs once; the to-be-disabled
From: Sean Christopherson
Add a flag, KVM_DEBUGREG_AUTO_SWITCHED, to skip saving/restoring DRs
irrespective of any other flags. TDX-SEAM unconditionally saves and
restores host DRs, ergo there is nothing to do.
Opportunistically convert the KVM_DEBUGREG_* definitions to use BIT().
From: Sean Christopherson
Stub in kvm_tdx, vcpu_tdx, their various accessors, and VMCS helpers.
The VMCS helpers, which rely on the stubs, will be used by preparatory
patches to move VMX functions for accessing VMCS state to common code.
Signed-off-by: Sean Christopherson
---
From: Rick Edgecombe
Add support in KVM's MMU for aliasing multiple GPAs (from a hardware
perspective) to a single GPA (from a memslot perspective). GPA alising
will be used to repurpose GPA bits as attribute bits, e.g. to expose an
execute-only permission bit to the guest. To keep the
From: Sean Christopherson
TDX is not supported on platforms with non-coherent IOMMUs, freak out if
one is encountered, and because SEPT doesn't allow the memtype control
that's needed to support non-coherent DMA.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/x86.c | 1 +
1 file changed,
From: Kai Huang
Two new MSRs IA32_SEAMRR_PHYS_BASE and IA32_SEAMRR_PHYS_MASK are added
in SPR for TDX. Add macro definition for both of them.
Signed-off-by: Kai Huang
---
arch/x86/include/asm/msr-index.h | 8
1 file changed, 8 insertions(+)
diff --git
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/main.c | 6 --
arch/x86/kvm/vmx/vmx.c | 12
2 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/arch/x86/kvm/vmx/main.c b/arch/x86/kvm/vmx/main.c
index 30b1815fd5a7..53e1ea8df861
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/kvm_host.h | 2 ++
arch/x86/kvm/mmu.h | 4 +++-
arch/x86/kvm/mmu/mmu.c | 24 +++-
arch/x86/kvm/mmu/spte.c | 26 ++
From: Sean Christopherson
Add a per-vcpu placeholder for the support XSS of the guest so that the
TDX configuration code doesn't need to hack in manual computation of the
supported XSS. KVM XSS enabling is currently being upstreamed, i.e.
guest_supported_xss will no longer be a placeholder by
From: Sean Christopherson
Co-developed-by: Kai Huang
Signed-off-by: Kai Huang
Co-developed-by: Xiaoyao Li
Signed-off-by: Xiaoyao Li
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/tdx_arch.h | 230
1 file changed, 230 insertions(+)
create mode
From: Sean Christopherson
Return the old SPTE when clearing a SPTE and push the "old SPTE present"
check to the caller. Private shadow page support will use the old SPTE
in rmap_remove() to determine whether or not there is a linked private
shadow page.
Signed-off-by: Sean Christopherson
---
From: Sean Christopherson
Wrap the VMX kvm_x86_ops hooks in preparation of adding TDX, which can
coexist with VMX, i.e. KVM can run both VMs and TDs. Use 'vt' for the
naming scheme as a nod to VT-x and as a concatenation of VmxTdx.
Co-developed-by: Xiaoyao Li
Signed-off-by: Xiaoyao Li
From: Sean Christopherson
Add kvm_x86_ops hooks to set/clear private SPTEs, i.e. SEPT entries, and
to link/free private shadow pages, i.e. non-leaf SEPT pages.
Because SEAMCALLs are bloody expensive, and because KVM's MMU is already
complex enough, TDX's SEPT will mirror KVM's shadow pages
From: Sean Christopherson
Move the AR_BYTES helpers to common.h so that future patches can reuse
them to decode/encode AR for TDX.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/common.h | 41 ++
arch/x86/kvm/vmx/vmx.c| 46
From: Sean Christopherson
Explicity check for an MMIO spte in the fast page fault flow. TDX will
use a not-present entry for MMIO sptes, which can be mistaken for an
access-tracked spte since both have SPTE_SPECIAL_MASK set.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/mmu/mmu.c | 2
From: Sean Christopherson
Add a second kvm_x86_ops hook in kvm_arch_vm_destroy() to support TDX's
destruction path, which needs to first put the VM into a teardown state,
then free per-vCPU resource, and finally free per-VM resources.
Note, this knowingly creates a discrepancy in nomenclature
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/common.h | 54 +++
arch/x86/kvm/vmx/vmx.c| 42 +-
2 files changed, 60 insertions(+), 36 deletions(-)
create mode 100644
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/common.h | 14 ++
arch/x86/kvm/vmx/vmx.c| 10 +-
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/arch/x86/kvm/vmx/common.h b/arch/x86/kvm/vmx/common.h
index
From: Isaku Yamahata
---
arch/x86/kvm/vmx/tdx.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index adcb866861b7..d2c1766416f2 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -331,9 +331,6 @@ static int tdx_vm_init
From: Sean Christopherson
Add an option to skip the IRR check in kvm_wait_lapic_expire(). This
will be used by TDX to wait if there is an outstanding notification for
a TD, i.e. a virtual interrupt is being triggered via posted interrupt
processing. KVM TDX doesn't emulate PI processing, i.e.
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/kvm_host.h | 2 ++
arch/x86/kvm/x86.c | 12
2 files changed, 14 insertions(+)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index
From: Sean Christopherson
Ignore bits 63 and 62 when checking for present SPTEs to allow setting
said bits in not-present SPTEs. TDX will set bit 63 in "zero" SPTEs to
suppress #VEs (TDX-SEAM unconditionally enables EPT Violation #VE), and
will use bit 62 to track zapped private SPTEs.
From: Sean Christopherson
Add a macro framework to hide VMX vs. TDX details of VMREAD and VMWRITE
so the VMX and TDX can shared common flows, e.g. accessing DTs.
Note, the TDX paths are dead code at this time. There is no great way
to deal with the chicken-and-egg scenario of having things in
From: Sean Christopherson
Move the guts of vmx_cache_reg() to vt_cache_reg() in preparation for
reusing the bulk of the code for TDX, which can access guest state for
debug TDs.
Use kvm_x86_ops.cache_reg() in ept_update_paging_mode_cr0() rather than
trying to expose vt_cache_reg() to vmx.c,
From: Sean Christopherson
Add a flag to disable IRQ injection, which is not supported by TDX.
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/x86.c | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git
From: Sean Christopherson
TDX-SEAM uses bits 31:0 to return more information, so these error codes
will only exactly match RAX[63:32].
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/tdx_errno.h | 91
1 file changed, 91 insertions(+)
create mode
From: Sean Christopherson
TDX will run with EPT violation #VEs enabled, which means KVM needs to
set the "suppress #VE" bit in unused PTEs to avoid unintentionally
reflecting not-present EPT violations into the guest.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/mmu.h | 1 +
From: Sean Christopherson
Define the TDCALL exit reason, which is carved out from the VMX exit
reason namespace as the TDCALL exit from TDX guest to TDX-SEAM is really
just a VM-Exit.
Co-developed-by: Xiaoyao Li
Signed-off-by: Xiaoyao Li
Signed-off-by: Sean Christopherson
---
-developed-by: Isaku Yamahata
Signed-off-by: Isaku Yamahata
Signed-off-by: Sean Christopherson
---
arch/x86/include/uapi/asm/kvm.h | 51 +
arch/x86/kvm/trace.h | 57 +
arch/x86/kvm/vmx/common.h |1 +
arch/x86/kvm/vmx/main.c | 384 -
arch/x86
From: Sean Christopherson
Define MSR_IA32_MKTME_KEYID_PART, used by TDX to enumerate the TDX KeyID
space, which is carved out from the regular MKTME KeyIDs.
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/msr-index.h | 2 ++
1 file changed, 2 insertions(+)
diff --git
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/vmx/main.c | 17 +
arch/x86/kvm/vmx/vmx.c | 13 -
2 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/arch/x86/kvm/vmx/main.c b/arch/x86/kvm/vmx/main.c
index
From: Sean Christopherson
Swap the order of hardware_enable_all() and kvm_arch_init_vm() to
accommodate Intel's TDX, which needs VMX to be enabled during VM init in
order to make SEAMCALLs.
This also provides consistent ordering between kvm_create_vm() and
kvm_destroy_vm() with respect to
From: Sean Christopherson
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/cpufeatures.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/include/asm/cpufeatures.h
b/arch/x86/include/asm/cpufeatures.h
index dad350d42ecf..1bd2a414dcc0 100644
---
From: Sean Christopherson
Add a flag for TDX to mark dirty logging as unsupported.
Suggested-by: Kai Huang
Signed-off-by: Sean Christopherson
---
include/linux/kvm_host.h | 1 +
virt/kvm/kvm_main.c | 5 -
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git
From: Sean Christopherson
Introduce a helper to directly (pun intented) fault-in a TDP page
without having to go through the full page fault path. This allows
TDX to get the resulting pfn and also allows the RET_PF_* enums to
stay in mmu.c where they belong.
Signed-off-by: Sean Christopherson
From: Sean Christopherson
The TSC for TDX1 guests is fixed at TD creation time. Add tsc_immutable
to reflect that the TSC of the guest cannot be changed in any way, and
use it to short circuit all paths that lead to one of the myriad TSC
adjustment flows.
Suggested-by: Kai Huang
From: Sean Christopherson
Add the VMCS field encoding for the shared EPTP, which will be used by
TDX to have separate EPT walks for private GPAs (existing EPTP) versus
shared GPAs (new shared EPTP).
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/vmx.h | 2 ++
1 file changed, 2
From: Sean Christopherson
Add hooks to cache and flush GPRs and invoke them from KVM_GET_REGS and
KVM_SET_REGS respecitively. TDX will use the hooks to read/write GPRs
from TDX-SEAM on-demand (for debug TDs).
Cc: Tom Lendacky
Signed-off-by: Sean Christopherson
---
From: Isaku Yamahata
This patch is not for review, but to make build success.
Add dummy empty file for TDX-SEAM module as
linux/lib/firmware/intel-seam/libtdx.so.
TDX-SEAM module isn't published. Its specification is at [1].
[1] Intel TDX Module 1.0 EAS
https://software.intel.com/content/dam
From: Sean Christopherson
Zap only leaf SPTEs when deleting/moving a memslot by default, and add a
module param to allow reverting to the old behavior of zapping all SPTEs
at all levels and memslots when any memslot is updated.
Signed-off-by: Sean Christopherson
---
arch/x86/kvm/mmu/mmu.c |
From: Sean Christopherson
Define the EPT Violation #VE control bit, #VE info VMCS fields, and the
suppress #VE bit for EPT entries.
Signed-off-by: Sean Christopherson
---
arch/x86/include/asm/vmx.h | 4
arch/x86/include/asm/vmxfeatures.h | 2 +-
2 files changed, 5 insertions(+),
From: Sean Christopherson
Add a hook into the early boot flow to load TDX-SEAM and do BSP-only
init of TDX-SEAM.
Perform TDSYSINIT, TDSYSINITLP sequence to initialize TDX during kernel
boot. Call TDSYSINIT on BSP for platform level initialization, and call
TDSYSINITLP for all cpus for per-cpu
On Fri, Aug 09, 2019 at 07:51:17PM +,
"Kani, Toshi" wrote:
> On Fri, 2019-08-09 at 09:06 +0200, Borislav Petkov wrote:
> > On Thu, Aug 08, 2019 at 08:54:17PM -0700, Isaku Yamahata wrote:
> > > Make PAT(Page Attribute Table) independent from
> > > MTRR(Me
h 3 is an essential patch which makes PAT independent from MTRR.
Isaku Yamahata (3):
x86/mtrr: split common funcs from mtrr.c
x86/mtrr: split common funcs from generic.c
x86/mtrr, pat: make PAT independent from MTRR
arch/x86/Kconfig | 1 -
arch/x86/include/asm/mtr
prefix rename and movement, no logic change.
Signed-off-by: Isaku Yamahata
---
arch/x86/include/asm/mtrr.h | 4 +
arch/x86/kernel/cpu/mtrr/generic.c| 111 ++
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
arch/x86/kernel/cpu/mtrr/mtrr.h | 3 +-
arch
technologies don't support MTRR, but only PAT.
This patch make PAT available on such environments without MTRR.
Signed-off-by: Isaku Yamahata
---
arch/x86/Kconfig | 1 -
arch/x86/include/asm/mtrr.h | 32 +
arch/x86/include/asm/pat.h| 2 +
arch/x86
and movement, no logic change.
Signed-off-by: Isaku Yamahata
---
arch/x86/include/asm/mtrr.h | 25 +--
arch/x86/kernel/cpu/common.c | 2 +-
arch/x86/kernel/cpu/mtrr/Makefile | 2 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 201 ++-
arch/x86/kernel/cpu/mtrr
On Mon, May 06, 2013 at 09:56:57PM +0200, Andrea Arcangeli wrote:
> Hello everyone,
>
> this is a patchset to implement two new kernel features:
> MADV_USERFAULT and remap_anon_pages.
>
> The combination of the two features are what I would propose to
> implement postcopy live migration, and in
On Mon, May 06, 2013 at 09:56:57PM +0200, Andrea Arcangeli wrote:
Hello everyone,
this is a patchset to implement two new kernel features:
MADV_USERFAULT and remap_anon_pages.
The combination of the two features are what I would propose to
implement postcopy live migration, and in general
This is a character device to hook page access.
The page fault in the area is propagated to another user process by
this chardriver. Then, the process fills the page contents and
resolves the page fault.
Cc: Andrea Arcangeli
Cc: Avi Kivity
Cc: Paolo Bonzini
Signed-off-by: Isaku Yamahata
- make ioctl structures padded to align
- un-KVM
KVM_VMEM -> UMEM
- dropped some ioctl commands as Avi requested
Isaku Yamahata (2):
export necessary symbols
umem: chardevice for kvm postcopy
Documentation/misc-devices/uvmem.txt | 292
drivers/char/Kconfig | 10
Cc: Andrea Arcangeli
Cc: Avi Kivity
Cc: Paolo Bonzini
Signed-off-by: Isaku Yamahata
---
mm/memcontrol.c |1 +
mm/mempolicy.c |1 +
mm/shmem.c |1 +
3 files changed, 3 insertions(+)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 7acf43b..bc9fd53 100644
--- a/mm
Cc: Andrea Arcangeli aarca...@redhat.com
Cc: Avi Kivity a...@redhat.com
Cc: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp
---
mm/memcontrol.c |1 +
mm/mempolicy.c |1 +
mm/shmem.c |1 +
3 files changed, 3 insertions(+)
diff --git a/mm
padded to align
- un-KVM
KVM_VMEM - UMEM
- dropped some ioctl commands as Avi requested
Isaku Yamahata (2):
export necessary symbols
umem: chardevice for kvm postcopy
Documentation/misc-devices/uvmem.txt | 292
drivers/char/Kconfig | 10 +
drivers/char/Makefile
pbonz...@redhat.com
Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp
---
Changes v4 - v5:
- rename umem to uvmem to avoid name conflict
Changes v3 - v4:
- simplified umem_init: kill {a,}sync_req_max
- make fault handler killable even when core-dumping
- documentation
Changes v2 - v3:
- made
split out x86 specific part from grant-table.c
Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>
---
arch/x86/xen/Makefile |2 +-
arch/x86/xen/grant-table.c | 91
drivers/xen/grant-table.c | 35 +---
include/xen/grant_t
Those definitions in include/asm/xen/page.h are arch specific.
ia64/xen wants to define its own version. So move them to arch specific
directory and keep include/xen/page.h in order not to break compilation.
Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>
---
include/{ => asm-x86}/x
On xen/ia64 and xen/powerpc hypercall arguments are passed by pseudo
physical address (guest physical address) so that it's necessary to
convert from virtual address into pseudo physical address. The frame
work is called xencomm.
Import arch generic part of xencomm.
Signed-off-by: Isaku Yamahata
Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>
---
include/xen/interface/callback.h | 119 ++
1 files changed, 119 insertions(+), 0 deletions(-)
create mode 100644 include/xen/interface/callback.h
diff --git a/include/xen/interface/callback.h b/i
allocate vm area
contradictory to those names.
Now vanilla Linux already has its definitions so that it's impossible
to have IA64 definitions of allocate_vm_area()/free_vm_area().
Instead introduce xen_allocate_vm_area()/xen_free_vm_area() and use them.
Signed-off-by: Isaku Yamahata <[EM
ia64/xen also uses events.c. clean it up so that ia64/xen can use.
make ipi_to_irq globly visible. ia64/xen nees to reference it from other file.
introduce resend_irq_on_evtchn() which ia64 needs.
introduce xen_do_IRQ() to split out arch specific code.
Signed-off-by: Isaku Yamahata <[EM
1 - 100 of 120 matches
Mail list logo