Re: Re: [LKP] [lkp] [x86 tsc] 19fa5e7364: WARNING: CPU: 0 PID: 0 at arch/x86/mm/extable.c:50 ex_handler_rdmsr_unsafe+0x72/0x80

From: Wanpeng Li
Date: Tue Jun 21 2016 - 02:09:08 EST


Cc KVM ML, Paolo, Radim,
> Hi,
>
> On Mon, Jun 20, 2016 at 3:31 PM, kernel test robot
> <xiaolong.ye@xxxxxxxxx> wrote:
>>
>> FYI, we noticed the following commit:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git x86
>> commit 19fa5e73647fde1e6a7038a8f05cddf4c43f08d3 ("x86 tsc: enumerate SKL cpu_khz and tsc_khz via CPUID")
>>
>>
>> on test machine: vm-kbuild-yocto-x86_64: 1 threads qemu-system-x86_64 -enable-kvm -cpu SandyBridge with 320M memory
>>
>> caused below changes:
>>
>>
>> +------------------------------------------------------------------+------------+------------+
>> | | cc50dc7f73 | 19fa5e7364 |
>> +------------------------------------------------------------------+------------+------------+
>> | boot_successes | 0 | 0 |
>> | boot_failures | 10 | 12 |
>> | invoked_oom-killer:gfp_mask=0x | 10 | 10 |
>> | Mem-Info | 10 | 10 |
>> | Kernel_panic-not_syncing:Out_of_memory_and_no_killable_processes | 10 | 10 |
>> | backtrace:btrfs_test_extent_io | 10 | 10 |
>> | backtrace:init_btrfs_fs | 10 | 10 |
>> | backtrace:kernel_init_freeable | 10 | 10 |
>> | WARNING:at_arch/x86/mm/extable.c:#ex_handler_rdmsr_unsafe | 0 | 10 |
>> | backtrace:native_calibrate_cpu | 0 | 10 |
>> | backtrace:tsc_init | 0 | 10 |
>> | backtrace:x86_late_time_init | 0 | 10 |
>> +------------------------------------------------------------------+------------+------------+
>>
>>
>>
>> [ 0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
>> [ 0.000000] hpet clockevent registered
>> [ 0.000000] ------------[ cut here ]------------
>> [ 0.000000] WARNING: CPU: 0 PID: 0 at arch/x86/mm/extable.c:50 ex_handler_rdmsr_unsafe+0x72/0x80
>> [ 0.000000] unchecked MSR access error: RDMSR from 0xce
>> [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.7.0-rc3-00009-g19fa5e7 #1
>> [ 0.000000] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Debian-1.8.2-1 04/01/2014
>> [ 0.000000] 0000000000000000 ffffffff83203c38 ffffffff816da89d ffffffff83203c88
>> [ 0.000000] 0000000000000000 ffffffff82e71808 ffffffff8104e8c2 ffffffff83203c78
>> [ 0.000000] ffffffff810b796b 000000328453b4a0 ffffffff82e71808 0000000000000032
>> [ 0.000000] Call Trace:
>> [ 0.000000] [<ffffffff816da89d>] dump_stack+0x83/0xb6
>> [ 0.000000] [<ffffffff8104e8c2>] ? ex_handler_rdmsr_unsafe+0x72/0x80
>> [ 0.000000] [<ffffffff810b796b>] __warn+0x10b/0x130
>> [ 0.000000] [<ffffffff810b79f3>] warn_slowpath_fmt+0x63/0x70
>> [ 0.000000] [<ffffffff8104e8c2>] ex_handler_rdmsr_unsafe+0x72/0x80
>> [ 0.000000] [<ffffffff8104ea26>] fixup_exception+0x46/0x60
>> [ 0.000000] [<ffffffff81020fdb>] do_general_protection+0x7b/0x150
>> [ 0.000000] [<ffffffff828101d8>] general_protection+0x28/0x30
>> [ 0.000000] [<ffffffff810496d6>] ? native_read_msr+0x6/0x20
>> [ 0.000000] [<ffffffff810281e1>] cpu_khz_from_msr+0xf1/0x150
>> [ 0.000000] [<ffffffff8341b16b>] ? trap_init+0x22e/0x22e
>> [ 0.000000] [<ffffffff81027935>] native_calibrate_cpu+0x85/0x5b0
>> [ 0.000000] [<ffffffff81049826>] ? native_restore_fl+0x6/0x10
>> [ 0.000000] [<ffffffff81112556>] ? __setup_irq+0x196/0x750
>> [ 0.000000] [<ffffffff8341b16b>] ? trap_init+0x22e/0x22e
>> [ 0.000000] [<ffffffff8341ec3f>] tsc_init+0x42/0x3c3
>> [ 0.000000] [<ffffffff81112c5f>] ? setup_irq+0x6f/0xc0
>> [ 0.000000] [<ffffffff8341b16b>] ? trap_init+0x22e/0x22e
>> [ 0.000000] [<ffffffff8341b16b>] ? trap_init+0x22e/0x22e
>> [ 0.000000] [<ffffffff8341b17a>] x86_late_time_init+0xf/0x11
>> [ 0.000000] [<ffffffff8341b17a>] ? x86_late_time_init+0xf/0x11
>> [ 0.000000] [<ffffffff83414173>] start_kernel+0x3f3/0x4b1
>> [ 0.000000] [<ffffffff83413120>] ? early_idt_handler_array+0x120/0x120
>> [ 0.000000] [<ffffffff8341329e>] x86_64_start_reservations+0x2f/0x31
>> [ 0.000000] [<ffffffff83413386>] x86_64_start_kernel+0xe6/0xf3
>> [ 0.000000] ---[ end trace 7c0d92684f22f4ac ]---
>> [ 0.000000] tsc: Fast TSC calibration using PIT
>>
>>
>> FYI, raw QEMU command line is:
>>
>> qemu-system-x86_64 -enable-kvm -cpu SandyBridge -kernel /pkg/linux/x86_64-randconfig-w0-06180628/gcc-6/19fa5e73647fde1e6a7038a8f05cddf4c43f08d3/vmlinuz-4.7.0-rc3-00009-g19fa5e7 -append 'root=/dev/ram0 user=lkp job=/lkp/scheduled/vm-kbuild-yocto-x86_64-32/bisect_boot-1-yocto-minimal-x86_64.cgz-x86_64-randconfig-w0-06180628-19fa5e73647fde1e6a7038a8f05cddf4c43f08d3-20160618-25535-h82bax-0.yaml~ ARCH=x86_64 kconfig=x86_64-randconfig-w0-06180628 branch=internal-eywa/master commit=19fa5e73647fde1e6a7038a8f05cddf4c43f08d3 BOOT_IMAGE=/pkg/linux/x86_64-randconfig-w0-06180628/gcc-6/19fa5e73647fde1e6a7038a8f05cddf4c43f08d3/vmlinuz-4.7.0-rc3-00009-g19fa5e7 max_uptime=600 RESULT_ROOT=/result/boot/1/vm-kbuild-yocto-x86_64/yocto-minimal-x86_64.cgz/x86_64-randconfig-w0-06180628/gcc-6/19fa5e73647fde1e6a7038a8f05cddf4c43f08d3/0 LKP_SERVER=inn earlyprintk=ttyS0,115200 systemd.log_level=err debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 console=ttyS0,115200 console=tty0 vga=normal rw ip=::::vm-kbuild-yocto-x86_64-32::dhcp drbd.minor_count=8' -initrd /fs/sdh1/initrd-vm-kbuild-yocto-x86_64-32 -m 320 -smp 1 -device e1000,netdev=net0 -netdev user,id=net0 -boot order=nc -no-reboot -watchdog i6300esb -rtc base=localtime -drive file=/fs/sdh1/disk0-vm-kbuild-yocto-x86_64-32,media=disk,if=virtio -pidfile /dev/shm/kboot/pid-vm-kbuild-yocto-x86_64-32 -serial file:/dev/shm/kboot/serial-vm-kbuild-yocto-x86_64-32 -daemonize -display none -monitor null
>>
> This problem was caused due to kvm does not support MSR_PLATFORM_INFO(0xce),
> according to Wanpeng's feedback.
>
> Hi Wanpeng, is it possible for kvm to simulate this MSR, otherwise we
> might have to use
> rdmsr_safe instead.

There is a thread discussed this before
https://patchwork.kernel.org/patch/8833021/, MSR_PLATFORM_INFO can't
be simple emulation.

Ping Paolo, Radim. :)

Regards,
Wanpeng Li