From: kbuild test robot <lkp@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, cavery@redhat.com, vkuznets@redhat.com,
jan.kiszka@siemens.com, wei.huang2@amd.com
Subject: Re: [PATCH 3/4] KVM: nSVM: implement check_nested_events for interrupts
Date: Sat, 7 Mar 2020 09:18:22 +0800 [thread overview]
Message-ID: <202003070954.akHT8HEM%lkp@intel.com> (raw)
In-Reply-To: <1583403227-11432-4-git-send-email-pbonzini@redhat.com>
Hi Paolo,
I love your patch! Perhaps something to improve:
[auto build test WARNING on kvm/linux-next]
[also build test WARNING on linus/master v5.6-rc4 next-20200306]
[cannot apply to linux/master vhost/linux-next]
[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/Paolo-Bonzini/KVM-nSVM-first-step-towards-fixing-event-injection/20200306-015933
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-174-g094d5a94-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kvm/svm.c:7538:32: sparse: sparse: incorrect type in initializer (different argument counts)
>> arch/x86/kvm/svm.c:7538:32: sparse: expected int ( *check_nested_events )( ... )
>> arch/x86/kvm/svm.c:7538:32: sparse: got int ( * )( ... )
arch/x86/include/asm/paravirt.h:200:9: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
arch/x86/include/asm/paravirt.h:200:9: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
arch/x86/kvm/svm.c:6920:60: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6920:60: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6943:14: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6949:59: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6949:59: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6963:14: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6988:70: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6988:70: sparse: sparse: dereference of noderef expression
vim +7538 arch/x86/kvm/svm.c
7396
7397 static struct kvm_x86_ops svm_x86_ops __ro_after_init = {
7398 .cpu_has_kvm_support = has_svm,
7399 .disabled_by_bios = is_disabled,
7400 .hardware_setup = svm_hardware_setup,
7401 .hardware_unsetup = svm_hardware_teardown,
7402 .check_processor_compatibility = svm_check_processor_compat,
7403 .hardware_enable = svm_hardware_enable,
7404 .hardware_disable = svm_hardware_disable,
7405 .cpu_has_accelerated_tpr = svm_cpu_has_accelerated_tpr,
7406 .has_emulated_msr = svm_has_emulated_msr,
7407
7408 .vcpu_create = svm_create_vcpu,
7409 .vcpu_free = svm_free_vcpu,
7410 .vcpu_reset = svm_vcpu_reset,
7411
7412 .vm_alloc = svm_vm_alloc,
7413 .vm_free = svm_vm_free,
7414 .vm_init = svm_vm_init,
7415 .vm_destroy = svm_vm_destroy,
7416
7417 .prepare_guest_switch = svm_prepare_guest_switch,
7418 .vcpu_load = svm_vcpu_load,
7419 .vcpu_put = svm_vcpu_put,
7420 .vcpu_blocking = svm_vcpu_blocking,
7421 .vcpu_unblocking = svm_vcpu_unblocking,
7422
7423 .update_bp_intercept = update_bp_intercept,
7424 .get_msr_feature = svm_get_msr_feature,
7425 .get_msr = svm_get_msr,
7426 .set_msr = svm_set_msr,
7427 .get_segment_base = svm_get_segment_base,
7428 .get_segment = svm_get_segment,
7429 .set_segment = svm_set_segment,
7430 .get_cpl = svm_get_cpl,
7431 .get_cs_db_l_bits = kvm_get_cs_db_l_bits,
7432 .decache_cr0_guest_bits = svm_decache_cr0_guest_bits,
7433 .decache_cr4_guest_bits = svm_decache_cr4_guest_bits,
7434 .set_cr0 = svm_set_cr0,
7435 .set_cr3 = svm_set_cr3,
7436 .set_cr4 = svm_set_cr4,
7437 .set_efer = svm_set_efer,
7438 .get_idt = svm_get_idt,
7439 .set_idt = svm_set_idt,
7440 .get_gdt = svm_get_gdt,
7441 .set_gdt = svm_set_gdt,
7442 .get_dr6 = svm_get_dr6,
7443 .set_dr6 = svm_set_dr6,
7444 .set_dr7 = svm_set_dr7,
7445 .sync_dirty_debug_regs = svm_sync_dirty_debug_regs,
7446 .cache_reg = svm_cache_reg,
7447 .get_rflags = svm_get_rflags,
7448 .set_rflags = svm_set_rflags,
7449
7450 .tlb_flush = svm_flush_tlb,
7451 .tlb_flush_gva = svm_flush_tlb_gva,
7452
7453 .run = svm_vcpu_run,
7454 .handle_exit = handle_exit,
7455 .skip_emulated_instruction = skip_emulated_instruction,
7456 .update_emulated_instruction = NULL,
7457 .set_interrupt_shadow = svm_set_interrupt_shadow,
7458 .get_interrupt_shadow = svm_get_interrupt_shadow,
7459 .patch_hypercall = svm_patch_hypercall,
7460 .set_irq = svm_set_irq,
7461 .set_nmi = svm_inject_nmi,
7462 .queue_exception = svm_queue_exception,
7463 .cancel_injection = svm_cancel_injection,
7464 .interrupt_allowed = svm_interrupt_allowed,
7465 .nmi_allowed = svm_nmi_allowed,
7466 .get_nmi_mask = svm_get_nmi_mask,
7467 .set_nmi_mask = svm_set_nmi_mask,
7468 .enable_nmi_window = enable_nmi_window,
7469 .enable_irq_window = enable_irq_window,
7470 .update_cr8_intercept = update_cr8_intercept,
7471 .set_virtual_apic_mode = svm_set_virtual_apic_mode,
7472 .refresh_apicv_exec_ctrl = svm_refresh_apicv_exec_ctrl,
7473 .check_apicv_inhibit_reasons = svm_check_apicv_inhibit_reasons,
7474 .pre_update_apicv_exec_ctrl = svm_pre_update_apicv_exec_ctrl,
7475 .load_eoi_exitmap = svm_load_eoi_exitmap,
7476 .hwapic_irr_update = svm_hwapic_irr_update,
7477 .hwapic_isr_update = svm_hwapic_isr_update,
7478 .sync_pir_to_irr = kvm_lapic_find_highest_irr,
7479 .apicv_post_state_restore = avic_post_state_restore,
7480
7481 .set_tss_addr = svm_set_tss_addr,
7482 .set_identity_map_addr = svm_set_identity_map_addr,
7483 .get_tdp_level = get_npt_level,
7484 .get_mt_mask = svm_get_mt_mask,
7485
7486 .get_exit_info = svm_get_exit_info,
7487
7488 .get_lpage_level = svm_get_lpage_level,
7489
7490 .cpuid_update = svm_cpuid_update,
7491
7492 .rdtscp_supported = svm_rdtscp_supported,
7493 .invpcid_supported = svm_invpcid_supported,
7494 .mpx_supported = svm_mpx_supported,
7495 .xsaves_supported = svm_xsaves_supported,
7496 .umip_emulated = svm_umip_emulated,
7497 .pt_supported = svm_pt_supported,
7498 .pku_supported = svm_pku_supported,
7499
7500 .set_supported_cpuid = svm_set_supported_cpuid,
7501
7502 .has_wbinvd_exit = svm_has_wbinvd_exit,
7503
7504 .read_l1_tsc_offset = svm_read_l1_tsc_offset,
7505 .write_l1_tsc_offset = svm_write_l1_tsc_offset,
7506
7507 .set_tdp_cr3 = set_tdp_cr3,
7508
7509 .check_intercept = svm_check_intercept,
7510 .handle_exit_irqoff = svm_handle_exit_irqoff,
7511
7512 .request_immediate_exit = __kvm_request_immediate_exit,
7513
7514 .sched_in = svm_sched_in,
7515
7516 .pmu_ops = &amd_pmu_ops,
7517 .deliver_posted_interrupt = svm_deliver_avic_intr,
7518 .dy_apicv_has_pending_interrupt = svm_dy_apicv_has_pending_interrupt,
7519 .update_pi_irte = svm_update_pi_irte,
7520 .setup_mce = svm_setup_mce,
7521
7522 .smi_allowed = svm_smi_allowed,
7523 .pre_enter_smm = svm_pre_enter_smm,
7524 .pre_leave_smm = svm_pre_leave_smm,
7525 .enable_smi_window = enable_smi_window,
7526
7527 .mem_enc_op = svm_mem_enc_op,
7528 .mem_enc_reg_region = svm_register_enc_region,
7529 .mem_enc_unreg_region = svm_unregister_enc_region,
7530
7531 .nested_enable_evmcs = NULL,
7532 .nested_get_evmcs_version = NULL,
7533
7534 .need_emulation_on_page_fault = svm_need_emulation_on_page_fault,
7535
7536 .apic_init_signal_blocked = svm_apic_init_signal_blocked,
7537
> 7538 .check_nested_events = svm_check_nested_events,
7539 };
7540
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 3/4] KVM: nSVM: implement check_nested_events for interrupts
Date: Sat, 07 Mar 2020 09:18:22 +0800 [thread overview]
Message-ID: <202003070954.akHT8HEM%lkp@intel.com> (raw)
In-Reply-To: <1583403227-11432-4-git-send-email-pbonzini@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 8226 bytes --]
Hi Paolo,
I love your patch! Perhaps something to improve:
[auto build test WARNING on kvm/linux-next]
[also build test WARNING on linus/master v5.6-rc4 next-20200306]
[cannot apply to linux/master vhost/linux-next]
[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/Paolo-Bonzini/KVM-nSVM-first-step-towards-fixing-event-injection/20200306-015933
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-174-g094d5a94-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kvm/svm.c:7538:32: sparse: sparse: incorrect type in initializer (different argument counts)
>> arch/x86/kvm/svm.c:7538:32: sparse: expected int ( *check_nested_events )( ... )
>> arch/x86/kvm/svm.c:7538:32: sparse: got int ( * )( ... )
arch/x86/include/asm/paravirt.h:200:9: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
arch/x86/include/asm/paravirt.h:200:9: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
arch/x86/kvm/svm.c:6920:60: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6920:60: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6943:14: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6949:59: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6949:59: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6963:14: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6988:70: sparse: sparse: dereference of noderef expression
arch/x86/kvm/svm.c:6988:70: sparse: sparse: dereference of noderef expression
vim +7538 arch/x86/kvm/svm.c
7396
7397 static struct kvm_x86_ops svm_x86_ops __ro_after_init = {
7398 .cpu_has_kvm_support = has_svm,
7399 .disabled_by_bios = is_disabled,
7400 .hardware_setup = svm_hardware_setup,
7401 .hardware_unsetup = svm_hardware_teardown,
7402 .check_processor_compatibility = svm_check_processor_compat,
7403 .hardware_enable = svm_hardware_enable,
7404 .hardware_disable = svm_hardware_disable,
7405 .cpu_has_accelerated_tpr = svm_cpu_has_accelerated_tpr,
7406 .has_emulated_msr = svm_has_emulated_msr,
7407
7408 .vcpu_create = svm_create_vcpu,
7409 .vcpu_free = svm_free_vcpu,
7410 .vcpu_reset = svm_vcpu_reset,
7411
7412 .vm_alloc = svm_vm_alloc,
7413 .vm_free = svm_vm_free,
7414 .vm_init = svm_vm_init,
7415 .vm_destroy = svm_vm_destroy,
7416
7417 .prepare_guest_switch = svm_prepare_guest_switch,
7418 .vcpu_load = svm_vcpu_load,
7419 .vcpu_put = svm_vcpu_put,
7420 .vcpu_blocking = svm_vcpu_blocking,
7421 .vcpu_unblocking = svm_vcpu_unblocking,
7422
7423 .update_bp_intercept = update_bp_intercept,
7424 .get_msr_feature = svm_get_msr_feature,
7425 .get_msr = svm_get_msr,
7426 .set_msr = svm_set_msr,
7427 .get_segment_base = svm_get_segment_base,
7428 .get_segment = svm_get_segment,
7429 .set_segment = svm_set_segment,
7430 .get_cpl = svm_get_cpl,
7431 .get_cs_db_l_bits = kvm_get_cs_db_l_bits,
7432 .decache_cr0_guest_bits = svm_decache_cr0_guest_bits,
7433 .decache_cr4_guest_bits = svm_decache_cr4_guest_bits,
7434 .set_cr0 = svm_set_cr0,
7435 .set_cr3 = svm_set_cr3,
7436 .set_cr4 = svm_set_cr4,
7437 .set_efer = svm_set_efer,
7438 .get_idt = svm_get_idt,
7439 .set_idt = svm_set_idt,
7440 .get_gdt = svm_get_gdt,
7441 .set_gdt = svm_set_gdt,
7442 .get_dr6 = svm_get_dr6,
7443 .set_dr6 = svm_set_dr6,
7444 .set_dr7 = svm_set_dr7,
7445 .sync_dirty_debug_regs = svm_sync_dirty_debug_regs,
7446 .cache_reg = svm_cache_reg,
7447 .get_rflags = svm_get_rflags,
7448 .set_rflags = svm_set_rflags,
7449
7450 .tlb_flush = svm_flush_tlb,
7451 .tlb_flush_gva = svm_flush_tlb_gva,
7452
7453 .run = svm_vcpu_run,
7454 .handle_exit = handle_exit,
7455 .skip_emulated_instruction = skip_emulated_instruction,
7456 .update_emulated_instruction = NULL,
7457 .set_interrupt_shadow = svm_set_interrupt_shadow,
7458 .get_interrupt_shadow = svm_get_interrupt_shadow,
7459 .patch_hypercall = svm_patch_hypercall,
7460 .set_irq = svm_set_irq,
7461 .set_nmi = svm_inject_nmi,
7462 .queue_exception = svm_queue_exception,
7463 .cancel_injection = svm_cancel_injection,
7464 .interrupt_allowed = svm_interrupt_allowed,
7465 .nmi_allowed = svm_nmi_allowed,
7466 .get_nmi_mask = svm_get_nmi_mask,
7467 .set_nmi_mask = svm_set_nmi_mask,
7468 .enable_nmi_window = enable_nmi_window,
7469 .enable_irq_window = enable_irq_window,
7470 .update_cr8_intercept = update_cr8_intercept,
7471 .set_virtual_apic_mode = svm_set_virtual_apic_mode,
7472 .refresh_apicv_exec_ctrl = svm_refresh_apicv_exec_ctrl,
7473 .check_apicv_inhibit_reasons = svm_check_apicv_inhibit_reasons,
7474 .pre_update_apicv_exec_ctrl = svm_pre_update_apicv_exec_ctrl,
7475 .load_eoi_exitmap = svm_load_eoi_exitmap,
7476 .hwapic_irr_update = svm_hwapic_irr_update,
7477 .hwapic_isr_update = svm_hwapic_isr_update,
7478 .sync_pir_to_irr = kvm_lapic_find_highest_irr,
7479 .apicv_post_state_restore = avic_post_state_restore,
7480
7481 .set_tss_addr = svm_set_tss_addr,
7482 .set_identity_map_addr = svm_set_identity_map_addr,
7483 .get_tdp_level = get_npt_level,
7484 .get_mt_mask = svm_get_mt_mask,
7485
7486 .get_exit_info = svm_get_exit_info,
7487
7488 .get_lpage_level = svm_get_lpage_level,
7489
7490 .cpuid_update = svm_cpuid_update,
7491
7492 .rdtscp_supported = svm_rdtscp_supported,
7493 .invpcid_supported = svm_invpcid_supported,
7494 .mpx_supported = svm_mpx_supported,
7495 .xsaves_supported = svm_xsaves_supported,
7496 .umip_emulated = svm_umip_emulated,
7497 .pt_supported = svm_pt_supported,
7498 .pku_supported = svm_pku_supported,
7499
7500 .set_supported_cpuid = svm_set_supported_cpuid,
7501
7502 .has_wbinvd_exit = svm_has_wbinvd_exit,
7503
7504 .read_l1_tsc_offset = svm_read_l1_tsc_offset,
7505 .write_l1_tsc_offset = svm_write_l1_tsc_offset,
7506
7507 .set_tdp_cr3 = set_tdp_cr3,
7508
7509 .check_intercept = svm_check_intercept,
7510 .handle_exit_irqoff = svm_handle_exit_irqoff,
7511
7512 .request_immediate_exit = __kvm_request_immediate_exit,
7513
7514 .sched_in = svm_sched_in,
7515
7516 .pmu_ops = &amd_pmu_ops,
7517 .deliver_posted_interrupt = svm_deliver_avic_intr,
7518 .dy_apicv_has_pending_interrupt = svm_dy_apicv_has_pending_interrupt,
7519 .update_pi_irte = svm_update_pi_irte,
7520 .setup_mce = svm_setup_mce,
7521
7522 .smi_allowed = svm_smi_allowed,
7523 .pre_enter_smm = svm_pre_enter_smm,
7524 .pre_leave_smm = svm_pre_leave_smm,
7525 .enable_smi_window = enable_smi_window,
7526
7527 .mem_enc_op = svm_mem_enc_op,
7528 .mem_enc_reg_region = svm_register_enc_region,
7529 .mem_enc_unreg_region = svm_unregister_enc_region,
7530
7531 .nested_enable_evmcs = NULL,
7532 .nested_get_evmcs_version = NULL,
7533
7534 .need_emulation_on_page_fault = svm_need_emulation_on_page_fault,
7535
7536 .apic_init_signal_blocked = svm_apic_init_signal_blocked,
7537
> 7538 .check_nested_events = svm_check_nested_events,
7539 };
7540
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2020-03-07 1:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-05 10:13 [PATCH 0/4] KVM: nSVM: first step towards fixing event injection Paolo Bonzini
2020-03-05 10:13 ` [PATCH 1/4] KVM: nSVM: do not change host intercepts while nested VM is running Paolo Bonzini
2020-03-06 14:42 ` Vitaly Kuznetsov
2020-03-05 10:13 ` [PATCH 2/4] KVM: nSVM: ignore L1 interrupt window while running L2 with V_INTR_MASKING=1 Paolo Bonzini
2020-03-05 10:13 ` [PATCH 3/4] KVM: nSVM: implement check_nested_events for interrupts Paolo Bonzini
2020-03-05 23:51 ` kbuild test robot
2020-03-05 23:51 ` kbuild test robot
2020-03-07 1:18 ` kbuild test robot [this message]
2020-03-07 1:18 ` kbuild test robot
2020-03-05 10:13 ` [PATCH 4/4] KVM: nSVM: avoid loss of pending IRQ/NMI before entering L2 Paolo Bonzini
2020-03-05 10:46 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202003070954.akHT8HEM%lkp@intel.com \
--to=lkp@intel.com \
--cc=cavery@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kbuild-all@lists.01.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=vkuznets@redhat.com \
--cc=wei.huang2@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.