* Re: [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature.
@ 2020-05-01 13:39 kbuild test robot
0 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2020-05-01 13:39 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 5314 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <42947fc3dc7a01c73677560c84dfd87498d381e0.1588234824.git.ashish.kalra@amd.com>
References: <42947fc3dc7a01c73677560c84dfd87498d381e0.1588234824.git.ashish.kalra@amd.com>
TO: Ashish Kalra <Ashish.Kalra@amd.com>
TO: pbonzini(a)redhat.com
CC: tglx(a)linutronix.de
CC: mingo(a)redhat.com
CC: hpa(a)zytor.com
CC: joro(a)8bytes.org
CC: bp(a)suse.de
CC: thomas.lendacky(a)amd.com
CC: x86(a)kernel.org
CC: kvm(a)vger.kernel.org
CC: linux-kernel(a)vger.kernel.org
Hi Ashish,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on v5.7-rc3]
[cannot apply to kvm/linux-next tip/x86/mm tip/x86/core next-20200501]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Ashish-Kalra/Add-AMD-SEV-guest-live-migration-support/20200430-202702
base: 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-191-gc51a0382-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
:::::: branch date: 25 hours ago
:::::: commit date: 25 hours ago
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kernel/kvm.c:410:56: sparse: sparse: invalid initializer
arch/x86/kernel/kvm.c:795:6: sparse: sparse: symbol 'kvm_sev_migration_hcall' was not declared. Should it be static?
# https://github.com/0day-ci/linux/commit/ec31b001157e1122024857a2b8ffcb9c730e165d
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout ec31b001157e1122024857a2b8ffcb9c730e165d
vim +410 arch/x86/kernel/kvm.c
4716276184ec67 Brijesh Singh 2017-10-20 406
ec31b001157e11 Ashish Kalra 2020-04-30 407 #ifdef CONFIG_EFI
ec31b001157e11 Ashish Kalra 2020-04-30 408 static bool setup_kvm_sev_migration(void)
ec31b001157e11 Ashish Kalra 2020-04-30 409 {
ec31b001157e11 Ashish Kalra 2020-04-30 @410 efi_char16_t efi_Sev_Live_Mig_support_name[] = L"SevLiveMigrationEnabled";
ec31b001157e11 Ashish Kalra 2020-04-30 411 efi_guid_t efi_variable_guid = MEM_ENCRYPT_GUID;
ec31b001157e11 Ashish Kalra 2020-04-30 412 efi_status_t status;
ec31b001157e11 Ashish Kalra 2020-04-30 413 unsigned long size;
ec31b001157e11 Ashish Kalra 2020-04-30 414 bool enabled;
ec31b001157e11 Ashish Kalra 2020-04-30 415
ec31b001157e11 Ashish Kalra 2020-04-30 416 if (!sev_live_migration_enabled())
ec31b001157e11 Ashish Kalra 2020-04-30 417 return false;
ec31b001157e11 Ashish Kalra 2020-04-30 418
ec31b001157e11 Ashish Kalra 2020-04-30 419 size = sizeof(enabled);
ec31b001157e11 Ashish Kalra 2020-04-30 420
ec31b001157e11 Ashish Kalra 2020-04-30 421 if (!efi_enabled(EFI_RUNTIME_SERVICES)) {
ec31b001157e11 Ashish Kalra 2020-04-30 422 pr_info("setup_kvm_sev_migration: no efi\n");
ec31b001157e11 Ashish Kalra 2020-04-30 423 return false;
ec31b001157e11 Ashish Kalra 2020-04-30 424 }
ec31b001157e11 Ashish Kalra 2020-04-30 425
ec31b001157e11 Ashish Kalra 2020-04-30 426 /* Get variable contents into buffer */
ec31b001157e11 Ashish Kalra 2020-04-30 427 status = efi.get_variable(efi_Sev_Live_Mig_support_name,
ec31b001157e11 Ashish Kalra 2020-04-30 428 &efi_variable_guid, NULL, &size, &enabled);
ec31b001157e11 Ashish Kalra 2020-04-30 429
ec31b001157e11 Ashish Kalra 2020-04-30 430 if (status == EFI_NOT_FOUND) {
ec31b001157e11 Ashish Kalra 2020-04-30 431 pr_info("setup_kvm_sev_migration: variable not found\n");
ec31b001157e11 Ashish Kalra 2020-04-30 432 return false;
ec31b001157e11 Ashish Kalra 2020-04-30 433 }
ec31b001157e11 Ashish Kalra 2020-04-30 434
ec31b001157e11 Ashish Kalra 2020-04-30 435 if (status != EFI_SUCCESS) {
ec31b001157e11 Ashish Kalra 2020-04-30 436 pr_info("setup_kvm_sev_migration: get_variable fail\n");
ec31b001157e11 Ashish Kalra 2020-04-30 437 return false;
ec31b001157e11 Ashish Kalra 2020-04-30 438 }
ec31b001157e11 Ashish Kalra 2020-04-30 439
ec31b001157e11 Ashish Kalra 2020-04-30 440 if (enabled == 0) {
ec31b001157e11 Ashish Kalra 2020-04-30 441 pr_info("setup_kvm_sev_migration: live migration disabled in OVMF\n");
ec31b001157e11 Ashish Kalra 2020-04-30 442 return false;
ec31b001157e11 Ashish Kalra 2020-04-30 443 }
ec31b001157e11 Ashish Kalra 2020-04-30 444
ec31b001157e11 Ashish Kalra 2020-04-30 445 pr_info("setup_kvm_sev_migration: live migration enabled in OVMF\n");
ec31b001157e11 Ashish Kalra 2020-04-30 446 wrmsrl(MSR_KVM_SEV_LIVE_MIG_EN, KVM_SEV_LIVE_MIGRATION_ENABLED);
ec31b001157e11 Ashish Kalra 2020-04-30 447
ec31b001157e11 Ashish Kalra 2020-04-30 448 return true;
ec31b001157e11 Ashish Kalra 2020-04-30 449 }
ec31b001157e11 Ashish Kalra 2020-04-30 450
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v7 00/18] Add AMD SEV guest live migration support
@ 2020-04-30 8:39 Ashish Kalra
2020-04-30 8:46 ` [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature Ashish Kalra
0 siblings, 1 reply; 4+ messages in thread
From: Ashish Kalra @ 2020-04-30 8:39 UTC (permalink / raw)
To: pbonzini
Cc: tglx, mingo, hpa, joro, bp, thomas.lendacky, x86, kvm,
linux-kernel, srutherford, rientjes, venu.busireddy,
brijesh.singh
From: Ashish Kalra <ashish.kalra@amd.com>
The series add support for AMD SEV guest live migration commands. To protect the
confidentiality of an SEV protected guest memory while in transit we need to
use the SEV commands defined in SEV API spec [1].
SEV guest VMs have the concept of private and shared memory. Private memory
is encrypted with the guest-specific key, while shared memory may be encrypted
with hypervisor key. The commands provided by the SEV FW are meant to be used
for the private memory only. The patch series introduces a new hypercall.
The guest OS can use this hypercall to notify the page encryption status.
If the page is encrypted with guest specific-key then we use SEV command during
the migration. If page is not encrypted then fallback to default.
The patch adds new ioctls KVM_{SET,GET}_PAGE_ENC_BITMAP. The ioctl can be used
by the qemu to get the page encrypted bitmap. Qemu can consult this bitmap
during the migration to know whether the page is encrypted.
[1] https://developer.amd.com/wp-content/resources/55766.PDF
Changes since v6:
- Rebasing to mainline and refactoring to the new split SVM
infrastructre.
- Move to static allocation of the unified Page Encryption bitmap
instead of the dynamic resizing of the bitmap, the static allocation
is done implicitly by extending kvm_arch_commit_memory_region() callack
to add svm specific x86_ops which can read the userspace provided memory
region/memslots and calculate the amount of guest RAM managed by the KVM
and grow the bitmap.
- Fixed KVM_SET_PAGE_ENC_BITMAP ioctl to set the whole bitmap instead
of simply clearing specific bits.
- Removed KVM_PAGE_ENC_BITMAP_RESET ioctl, which is now performed using
KVM_SET_PAGE_ENC_BITMAP.
- Extended guest support for enabling Live Migration feature by adding a
check for UEFI environment variable indicating OVMF support for Live
Migration feature and additionally checking for KVM capability for the
same feature. If not booted under EFI, then we simply check for KVM
capability.
- Add hypervisor specific hypercall for SEV live migration by adding
a new paravirt callback as part of x86_hyper_runtime.
(x86 hypervisor specific runtime callbacks)
- Moving MSR handling for MSR_KVM_SEV_LIVE_MIG_EN into svm/sev code
and adding check for SEV live migration enabled by guest in the
KVM_GET_PAGE_ENC_BITMAP ioctl.
- Instead of the complete __bss_decrypted section, only specific variables
such as hv_clock_boot and wall_clock are marked as decrypted in the
page encryption bitmap
Changes since v5:
- Fix build errors as
Reported-by: kbuild test robot <lkp@intel.com>
Changes since v4:
- Host support has been added to extend KVM capabilities/feature bits to
include a new KVM_FEATURE_SEV_LIVE_MIGRATION, which the guest can
query for host-side support for SEV live migration and a new custom MSR
MSR_KVM_SEV_LIVE_MIG_EN is added for guest to enable the SEV live
migration feature.
- Ensure that _bss_decrypted section is marked as decrypted in the
page encryption bitmap.
- Fixing KVM_GET_PAGE_ENC_BITMAP ioctl to return the correct bitmap
as per the number of pages being requested by the user. Ensure that
we only copy bmap->num_pages bytes in the userspace buffer, if
bmap->num_pages is not byte aligned we read the trailing bits
from the userspace and copy those bits as is. This fixes guest
page(s) corruption issues observed after migration completion.
- Add kexec support for SEV Live Migration to reset the host's
page encryption bitmap related to kernel specific page encryption
status settings before we load a new kernel by kexec. We cannot
reset the complete page encryption bitmap here as we need to
retain the UEFI/OVMF firmware specific settings.
Changes since v3:
- Rebasing to mainline and testing.
- Adding a new KVM_PAGE_ENC_BITMAP_RESET ioctl, which resets the
page encryption bitmap on a guest reboot event.
- Adding a more reliable sanity check for GPA range being passed to
the hypercall to ensure that guest MMIO ranges are also marked
in the page encryption bitmap.
Changes since v2:
- reset the page encryption bitmap on vcpu reboot
Changes since v1:
- Add support to share the page encryption between the source and target
machine.
- Fix review feedbacks from Tom Lendacky.
- Add check to limit the session blob length.
- Update KVM_GET_PAGE_ENC_BITMAP icotl to use the base_gfn instead of
the memory slot when querying the bitmap.
Ashish Kalra (7):
x86/paravirt: Add hypervisor specific hypercall for SEV live
migration.
KVM: SVM: Add support for static allocation of unified Page Encryption
Bitmap.
KVM: x86: Introduce new KVM_FEATURE_SEV_LIVE_MIGRATION feature &
Custom MSR.
EFI: Introduce the new AMD Memory Encryption GUID.
KVM: x86: Add guest support for detecting and enabling SEV Live
Migration feature.
KVM: x86: Mark _bss_decrypted section variables as decrypted in page
encryption bitmap.
KVM: x86: Add kexec support for SEV Live Migration.
Brijesh Singh (11):
KVM: SVM: Add KVM_SEV SEND_START command
KVM: SVM: Add KVM_SEND_UPDATE_DATA command
KVM: SVM: Add KVM_SEV_SEND_FINISH command
KVM: SVM: Add support for KVM_SEV_RECEIVE_START command
KVM: SVM: Add KVM_SEV_RECEIVE_UPDATE_DATA command
KVM: SVM: Add KVM_SEV_RECEIVE_FINISH command
KVM: x86: Add AMD SEV specific Hypercall3
KVM: X86: Introduce KVM_HC_PAGE_ENC_STATUS hypercall
KVM: x86: Introduce KVM_GET_PAGE_ENC_BITMAP ioctl
mm: x86: Invoke hypercall when page encryption status is changed
KVM: x86: Introduce KVM_SET_PAGE_ENC_BITMAP ioctl
.../virt/kvm/amd-memory-encryption.rst | 120 +++
Documentation/virt/kvm/api.rst | 71 ++
Documentation/virt/kvm/cpuid.rst | 5 +
Documentation/virt/kvm/hypercalls.rst | 15 +
Documentation/virt/kvm/msr.rst | 10 +
arch/x86/include/asm/kvm_host.h | 7 +
arch/x86/include/asm/kvm_para.h | 12 +
arch/x86/include/asm/mem_encrypt.h | 11 +
arch/x86/include/asm/paravirt.h | 10 +
arch/x86/include/asm/paravirt_types.h | 2 +
arch/x86/include/asm/x86_init.h | 10 +-
arch/x86/include/uapi/asm/kvm_para.h | 5 +
arch/x86/kernel/kvm.c | 102 +++
arch/x86/kernel/kvmclock.c | 12 +
arch/x86/kernel/paravirt.c | 1 +
arch/x86/kvm/svm/sev.c | 723 +++++++++++++++++-
arch/x86/kvm/svm/svm.c | 21 +
arch/x86/kvm/svm/svm.h | 9 +
arch/x86/kvm/vmx/vmx.c | 1 +
arch/x86/kvm/x86.c | 35 +
arch/x86/mm/mem_encrypt.c | 69 +-
arch/x86/mm/pat/set_memory.c | 7 +
include/linux/efi.h | 1 +
include/linux/psp-sev.h | 8 +-
include/uapi/linux/kvm.h | 52 ++
include/uapi/linux/kvm_para.h | 1 +
26 files changed, 1310 insertions(+), 10 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature. 2020-04-30 8:39 [PATCH v7 00/18] Add AMD SEV guest live migration support Ashish Kalra @ 2020-04-30 8:46 ` Ashish Kalra 2020-04-30 16:42 ` kbuild test robot 0 siblings, 1 reply; 4+ messages in thread From: Ashish Kalra @ 2020-04-30 8:46 UTC (permalink / raw) To: pbonzini Cc: tglx, mingo, hpa, joro, bp, thomas.lendacky, x86, kvm, linux-kernel, srutherford, rientjes, venu.busireddy, brijesh.singh From: Ashish Kalra <ashish.kalra@amd.com> The guest support for detecting and enabling SEV Live migration feature uses the following logic : - kvm_init_plaform() checks if its booted under the EFI - If not EFI, i) check for the KVM_FEATURE_CPUID ii) if CPUID reports that migration is support then issue wrmsrl to enable the SEV migration support - If EFI, i) Check the KVM_FEATURE_CPUID. ii) If CPUID reports that migration is supported, then reads the UEFI enviroment variable which indicates OVMF support for live migration. iii) If variable is set then wrmsr to enable the SEV migration support. The EFI live migration check is done using a late_initcall() callback. Signed-off-by: Ashish Kalra <ashish.kalra@amd.com> --- arch/x86/include/asm/mem_encrypt.h | 11 ++++++ arch/x86/kernel/kvm.c | 62 ++++++++++++++++++++++++++++++ arch/x86/mm/mem_encrypt.c | 11 ++++++ 3 files changed, 84 insertions(+) diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h index 848ce43b9040..d10e92ae5ca1 100644 --- a/arch/x86/include/asm/mem_encrypt.h +++ b/arch/x86/include/asm/mem_encrypt.h @@ -20,6 +20,7 @@ extern u64 sme_me_mask; extern bool sev_enabled; +extern bool sev_live_mig_enabled; void sme_encrypt_execute(unsigned long encrypted_kernel_vaddr, unsigned long decrypted_kernel_vaddr, @@ -42,6 +43,8 @@ void __init sme_enable(struct boot_params *bp); int __init early_set_memory_decrypted(unsigned long vaddr, unsigned long size); int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size); +void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, + bool enc); /* Architecture __weak replacement functions */ void __init mem_encrypt_init(void); @@ -55,6 +58,7 @@ bool sev_active(void); #else /* !CONFIG_AMD_MEM_ENCRYPT */ #define sme_me_mask 0ULL +#define sev_live_mig_enabled false static inline void __init sme_early_encrypt(resource_size_t paddr, unsigned long size) { } @@ -76,6 +80,8 @@ static inline int __init early_set_memory_decrypted(unsigned long vaddr, unsigned long size) { return 0; } static inline int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; } +static inline void __init +early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, bool enc) {} #define __bss_decrypted @@ -102,6 +108,11 @@ static inline u64 sme_get_me_mask(void) return sme_me_mask; } +static inline bool sev_live_migration_enabled(void) +{ + return sev_live_mig_enabled; +} + #endif /* __ASSEMBLY__ */ #endif /* __X86_MEM_ENCRYPT_H__ */ diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 928ddb8a8cfc..8b8cc87a3461 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -24,6 +24,7 @@ #include <linux/debugfs.h> #include <linux/nmi.h> #include <linux/swait.h> +#include <linux/efi.h> #include <asm/timer.h> #include <asm/cpu.h> #include <asm/traps.h> @@ -403,6 +404,53 @@ static inline void __set_percpu_decrypted(void *ptr, unsigned long size) early_set_memory_decrypted((unsigned long) ptr, size); } +#ifdef CONFIG_EFI +static bool setup_kvm_sev_migration(void) +{ + efi_char16_t efi_Sev_Live_Mig_support_name[] = L"SevLiveMigrationEnabled"; + efi_guid_t efi_variable_guid = MEM_ENCRYPT_GUID; + efi_status_t status; + unsigned long size; + bool enabled; + + if (!sev_live_migration_enabled()) + return false; + + size = sizeof(enabled); + + if (!efi_enabled(EFI_RUNTIME_SERVICES)) { + pr_info("setup_kvm_sev_migration: no efi\n"); + return false; + } + + /* Get variable contents into buffer */ + status = efi.get_variable(efi_Sev_Live_Mig_support_name, + &efi_variable_guid, NULL, &size, &enabled); + + if (status == EFI_NOT_FOUND) { + pr_info("setup_kvm_sev_migration: variable not found\n"); + return false; + } + + if (status != EFI_SUCCESS) { + pr_info("setup_kvm_sev_migration: get_variable fail\n"); + return false; + } + + if (enabled == 0) { + pr_info("setup_kvm_sev_migration: live migration disabled in OVMF\n"); + return false; + } + + pr_info("setup_kvm_sev_migration: live migration enabled in OVMF\n"); + wrmsrl(MSR_KVM_SEV_LIVE_MIG_EN, KVM_SEV_LIVE_MIGRATION_ENABLED); + + return true; +} + +late_initcall(setup_kvm_sev_migration); +#endif + /* * Iterate through all possible CPUs and map the memory region pointed * by apf_reason, steal_time and kvm_apic_eoi as decrypted at once. @@ -725,6 +773,20 @@ static void __init kvm_apic_init(void) static void __init kvm_init_platform(void) { + if (sev_active() && + kvm_para_has_feature(KVM_FEATURE_SEV_LIVE_MIGRATION)) { + + printk(KERN_INFO "KVM enable live migration\n"); + sev_live_mig_enabled = true; + /* + * If not booted using EFI, enable Live migration support. + */ + if (!efi_enabled(EFI_BOOT)) + wrmsrl(MSR_KVM_SEV_LIVE_MIG_EN, + KVM_SEV_LIVE_MIGRATION_ENABLED); + } else + printk(KERN_INFO "KVM enable live migration feature unsupported\n"); + kvmclock_init(); x86_platform.apic_post_init = kvm_apic_init; } diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c index 603f5abf8a78..3964f5de058c 100644 --- a/arch/x86/mm/mem_encrypt.c +++ b/arch/x86/mm/mem_encrypt.c @@ -46,6 +46,8 @@ EXPORT_SYMBOL_GPL(sev_enable_key); bool sev_enabled __section(.data); +bool sev_live_mig_enabled __section(.data); + /* Buffer used for early in-place encryption by BSP, no locking needed */ static char sme_early_buffer[PAGE_SIZE] __initdata __aligned(PAGE_SIZE); @@ -204,6 +206,9 @@ static void set_memory_enc_dec_hypercall(unsigned long vaddr, int npages, unsigned long sz = npages << PAGE_SHIFT; unsigned long vaddr_end, vaddr_next; + if (!sev_live_migration_enabled()) + return; + vaddr_end = vaddr + sz; for (; vaddr < vaddr_end; vaddr = vaddr_next) { @@ -375,6 +380,12 @@ int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size) return early_set_memory_enc_dec(vaddr, size, true); } +void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, + bool enc) +{ + set_memory_enc_dec_hypercall(vaddr, npages, enc); +} + /* * SME and SEV are very similar but they are not the same, so there are * times that the kernel will need to distinguish between SME and SEV. The -- 2.17.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature. 2020-04-30 8:46 ` [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature Ashish Kalra @ 2020-04-30 16:42 ` kbuild test robot 0 siblings, 0 replies; 4+ messages in thread From: kbuild test robot @ 2020-04-30 16:42 UTC (permalink / raw) To: Ashish Kalra, pbonzini Cc: kbuild-all, tglx, mingo, hpa, joro, bp, thomas.lendacky, x86, kvm, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1977 bytes --] Hi Ashish, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.7-rc3] [cannot apply to kvm/linux-next tip/x86/mm tip/x86/core next-20200430] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Ashish-Kalra/Add-AMD-SEV-guest-live-migration-support/20200430-202702 base: 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c config: i386-randconfig-a003-20200430 (attached as .config) compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): arch/x86/kernel/kvm.c: In function 'kvm_init_platform': >> arch/x86/kernel/kvm.c:780:24: error: lvalue required as left operand of assignment sev_live_mig_enabled = true; ^ vim +780 arch/x86/kernel/kvm.c 773 774 static void __init kvm_init_platform(void) 775 { 776 if (sev_active() && 777 kvm_para_has_feature(KVM_FEATURE_SEV_LIVE_MIGRATION)) { 778 779 printk(KERN_INFO "KVM enable live migration\n"); > 780 sev_live_mig_enabled = true; 781 /* 782 * If not booted using EFI, enable Live migration support. 783 */ 784 if (!efi_enabled(EFI_BOOT)) 785 wrmsrl(MSR_KVM_SEV_LIVE_MIG_EN, 786 KVM_SEV_LIVE_MIGRATION_ENABLED); 787 } else 788 printk(KERN_INFO "KVM enable live migration feature unsupported\n"); 789 790 kvmclock_init(); 791 x86_platform.apic_post_init = kvm_apic_init; 792 } 793 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 36738 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature. @ 2020-04-30 16:42 ` kbuild test robot 0 siblings, 0 replies; 4+ messages in thread From: kbuild test robot @ 2020-04-30 16:42 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 2034 bytes --] Hi Ashish, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.7-rc3] [cannot apply to kvm/linux-next tip/x86/mm tip/x86/core next-20200430] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Ashish-Kalra/Add-AMD-SEV-guest-live-migration-support/20200430-202702 base: 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c config: i386-randconfig-a003-20200430 (attached as .config) compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): arch/x86/kernel/kvm.c: In function 'kvm_init_platform': >> arch/x86/kernel/kvm.c:780:24: error: lvalue required as left operand of assignment sev_live_mig_enabled = true; ^ vim +780 arch/x86/kernel/kvm.c 773 774 static void __init kvm_init_platform(void) 775 { 776 if (sev_active() && 777 kvm_para_has_feature(KVM_FEATURE_SEV_LIVE_MIGRATION)) { 778 779 printk(KERN_INFO "KVM enable live migration\n"); > 780 sev_live_mig_enabled = true; 781 /* 782 * If not booted using EFI, enable Live migration support. 783 */ 784 if (!efi_enabled(EFI_BOOT)) 785 wrmsrl(MSR_KVM_SEV_LIVE_MIG_EN, 786 KVM_SEV_LIVE_MIGRATION_ENABLED); 787 } else 788 printk(KERN_INFO "KVM enable live migration feature unsupported\n"); 789 790 kvmclock_init(); 791 x86_platform.apic_post_init = kvm_apic_init; 792 } 793 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 36738 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-05-01 13:39 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-05-01 13:39 [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature kbuild test robot -- strict thread matches above, loose matches on Subject: below -- 2020-04-30 8:39 [PATCH v7 00/18] Add AMD SEV guest live migration support Ashish Kalra 2020-04-30 8:46 ` [PATCH v7 16/18] KVM: x86: Add guest support for detecting and enabling SEV Live Migration feature Ashish Kalra 2020-04-30 16:42 ` kbuild test robot 2020-04-30 16:42 ` kbuild test robot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.