From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: Problem with UBSAN warning Date: Tue, 27 Sep 2016 05:37:21 -0400 (EDT) Message-ID: <307529089.3036096.1474969041837.JavaMail.zimbra@redhat.com> References: <8E78D212B8C25246BE4CE7EA0E645FE545022E@SZXEMI504-MBS.china.huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, guangrong xiao To: "Xulei (Stone)" Return-path: Received: from mx4-phx2.redhat.com ([209.132.183.25]:59094 "EHLO mx4-phx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932390AbcI0Jh0 (ORCPT ); Tue, 27 Sep 2016 05:37:26 -0400 In-Reply-To: <8E78D212B8C25246BE4CE7EA0E645FE545022E@SZXEMI504-MBS.china.huawei.com> Sender: kvm-owner@vger.kernel.org List-ID: > Hi, > Kmod 4.4.11 got a warning when checked by UBSAN. > Does anybody know what is going on? Or any commit can fix this? It's fixed by this commit: commit b2740d3533a3f4aeb9553e872ce471ff73200a7f Author: Paolo Bonzini Date: Tue Feb 23 15:36:01 2016 +0100 KVM: ensure __gfn_to_pfn_memslot initializes *writable For the kvm_is_error_hva, ubsan complains if the uninitialized writable is passed to __direct_map, even though the value itself is not used (__direct_map goes to mmu_set_spte->set_spte->set_mmio_spte but never looks at that argument). Ensuring that __gfn_to_pfn_memslot initializes *writable is cheap and avoids this kind of issue. Signed-off-by: Paolo Bonzini See also commit 0a47cd85833e56574a926cad309726f4f7859544 for another ubsan fix. Paolo > [ 9410.857177] > ================================================================================ > [ 9410.865994] UBSAN: Undefined behaviour in > /home/abuild/rpmbuild/BUILD/kvm-4.4.11/source/x86/mmu.c:3573:6 > [ 9410.875822] load of value 161 is not a valid value for type '_Bool' > [ 9410.882275] CPU: 19 PID: 21927 Comm: CPU 0/KVM Tainted: G B OE > ---- ------- 3.10.0-327.28.3_debug.30.x86_64 #1 > [ 9410.893573] Hardware name: Huawei CH121 V3/IT11SGCA1, BIOS 3.18 04/05/2016 > [ 9410.900590] ffffffffa1dd0790 0000000032e6cc9b ffff880c0787f488 > ffffffff81ee314c > [ 9410.908456] ffff880c0787f4a0 ffffffff81ee3209 ffffffffa1dd0780 > ffff880c0787f590 > [ 9410.916319] ffffffff81ee3c2c 0000000041b58ab3 ffffffff8240c6a8 > ffffffff81ee3b14 > [ 9410.924191] Call Trace: > [ 9410.926852] [] dump_stack+0x1e/0x20 > [ 9410.932177] [] ubsan_epilogue+0x12/0x55 > [ 9410.937851] [] > __ubsan_handle_load_invalid_value+0x118/0x162 > [ 9410.945520] [] ? val_to_string.constprop.12+0x114/0x114 > [ 9410.952628] [] ? make_mmu_pages_available+0x1e6/0x290 > [kvm] > [ 9410.960248] [] ? kvm_mmu_prepare_zap_page+0x990/0x990 > [kvm] > [ 9410.967867] [] ? handle_abnormal_pfn+0x5d/0x1f0 [kvm] > [ 9410.974790] [] tdp_page_fault+0x69f/0x790 [kvm] > [ 9410.981198] [] ? nonpaging_page_fault+0x6a0/0x6a0 [kvm] > [ 9410.988297] [] ? picdev_eclr_write+0x40/0x40 [kvm] > [ 9410.994956] [] ? kvm_io_bus_write+0xe9/0x170 [kvm] > [ 9411.001579] [] ? __kvm_io_bus_write+0x280/0x280 [kvm] > [ 9411.008501] [] kvm_mmu_page_fault+0x50/0x320 [kvm] > [ 9411.015110] [] handle_ept_violation+0xd9/0x2a0 > [kvm_intel] > [ 9411.022438] [] ? clear_atomic_switch_msr+0x400/0x400 > [kvm_intel] > [ 9411.030400] [] vmx_handle_exit+0x7b2/0x1fc0 [kvm_intel] > [ 9411.037461] [] ? copy_shadow_to_vmcs12+0x430/0x430 > [kvm_intel] > [ 9411.045319] [] ? handle_invvpid+0x660/0x660 [kvm_intel] > [ 9411.052419] [] ? kvm_lapic_sync_to_vapic+0x10d/0x6a0 > [kvm] > [ 9411.059755] [] ? vmx_save_host_state+0xa8/0x4a0 > [kvm_intel] > [ 9411.067347] [] ? move_msr_up+0x160/0x160 [kvm_intel] > [ 9411.074148] [] ? __srcu_read_lock+0xc9/0x140 > [ 9411.080292] [] vcpu_enter_guest+0x1916/0x2da0 [kvm] > [ 9411.087008] [] ? kvm_load_guest_fpu+0x1b0/0x1b0 [kvm] > [ 9411.093900] [] ? signal_setup_done+0x110/0x110 > [ 9411.100222] [] ? > kvm_check_async_pf_completion+0x11b/0x150 [kvm] > [ 9411.108288] [] kvm_arch_vcpu_ioctl_run+0x58f/0xb10 > [kvm] > [ 9411.115443] [] ? fix_rmode_seg+0x350/0x350 [kvm_intel] > [ 9411.122452] [] ? kvm_arch_vcpu_runnable+0x340/0x340 > [kvm] > [ 9411.129726] [] ? kvm_arch_vcpu_load+0x1a1/0x490 [kvm] > [ 9411.136649] [] kvm_vcpu_ioctl+0x54a/0xae0 [kvm] > [ 9411.143047] [] ? vcpu_put+0x30/0x30 [kvm] > [ 9411.148899] [] ? get_futex_key_refs+0xb0/0xb0 > [ 9411.155095] [] ? poll_select_copy_remaining+0x380/0x380 > [ 9411.162156] [] ? futex_wake+0x113/0x380 > [ 9411.167827] [] ? wake_futex+0xf0/0xf0 > [ 9411.177137] [] ? eventfd_write+0x216/0x6f0 > [ 9411.183069] [] ? do_futex+0x19b/0xb60 > [ 9411.188567] [] ? vcpu_put+0x30/0x30 [kvm] > [ 9411.194418] [] do_vfs_ioctl+0x741/0xb40 > [ 9411.200092] [] ? ioctl_preallocate+0x230/0x230 > [ 9411.206378] [] ? wake_up_state+0x20/0x20 > [ 9411.212138] [] ? __fsnotify_parent+0x53/0x210 > [ 9411.218335] [] ? cap_file_ioctl+0xe/0x20 > [ 9411.224093] [] SyS_ioctl+0x132/0x170 > [ 9411.229506] [] ? do_vfs_ioctl+0xb40/0xb40 > [ 9411.235355] [] ? do_page_fault+0x44/0xa0 > [ 9411.241118] [] system_call_fastpath+0x16/0x1b > [ 9411.247303] > ================================================================================ > >