------- Comment From mdr...@us.ibm.com 2017-11-10 12:18 EDT------- So far I've only been able to reproduce this 2 ways: a) booting up a Debian Jessie guest (kernel 3.16). generally the crash happens some time after boot, but on some situations it needs some "help", like running "useradd <newuser>". b) bootup up an Ubuntu 16.04 guest, which doesn't seem to ever trigger the issue itself, but then chrooting into that same Debian Jessie image (attaching as a 2nd virtio disk), and then running that same "useradd <newuser>".
Using these test cases, the crash appears to be during the first instance of compound_head(page) within mm/gup.c:gup_pte_range() https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/gup.c?h=v4.13#n1312 The compound_head(page) call results in a pointer dereference of a struct *page, via page->compound_page, and that generates a page fault which leads to the crash. The address of *page in one instance of the crash was 0xf00000000783af20: [95667.639406] Unable to handle kernel paging request for data at address 0xf00000000783af20 [95667.639518] Faulting instruction address: 0xc000000000309714 90:mon> t [c000001e3c4db900] c00000000030a3d0 get_user_pages_fast+0x110/0x160 [c000001e3c4db950] d0000000181be21c kvmppc_book3s_hv_page_fault+0x384/0xc60 [kvm_hv] [c000001e3c4dba40] d0000000181ba94c kvmppc_vcpu_run_hv+0x314/0x790 [kvm_hv] [c000001e3c4dbb10] d0000000181059ec kvmppc_vcpu_run+0x34/0x48 [kvm] [c000001e3c4dbb30] d000000018101aa0 kvm_arch_vcpu_ioctl_run+0x108/0x320 [kvm] [c000001e3c4dbbd0] d0000000180f5018 kvm_vcpu_ioctl+0x400/0x7c8 [kvm] [c000001e3c4dbd40] c0000000003bd6e4 do_vfs_ioctl+0xd4/0xa00 [c000001e3c4dbde0] c0000000003be0d4 SyS_ioctl+0xc4/0x130 [c000001e3c4dbe30] c00000000000b184 system_call+0x58/0x6c --- Exception: c01 (System Call) at 000079d53a595550 SP (79d5354ede40) is in userspace The 0xf address corresponds to the vmemmap area, where page structs are allocated sequentially for all PFNs in the system, so it isn't obviously a bad address. Some of our kernel folks took a look at this and worked out that that with a 64 byte sizeof(struct page), 0xf00000000783af20 corresponds to 0x783af20 / 64 = 1969852th PFN. For a 64K page size this corresponds to 1969852*64K, an address somewhere at around 120GB, which is in the range of physical memory on the system (0-128GB in this case) Since the *page address appeared valid, it was suggested that the issue was with the vmemmap area being "unbolted" by KVM, leading to a page fault for an address that should always be pinned/bolted within the host, and the following fix was suggested: commit 67f8a8c1151c9ef3d1285905d1e66ebb769ecdf7 Author: Paul Mackerras <pau...@ozlabs.org> Date: Tue Sep 12 13:47:23 2017 +1000 KVM: PPC: Book3S HV: Fix bug causing host SLB to be restored incorrectly I've tested this patch against kernel 4.13.0-16-generic, and at least for test cases a) and b) above, this does appear to resolve the issue. So it looks like we need kernel commit 67f8a8c115 pulled into 17.10 to resolve this bug. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1725350 Title: KVM on 17.10 crashes the machine Status in The Ubuntu-power-systems project: Incomplete Status in linux package in Ubuntu: In Progress Status in linux source package in Artful: In Progress Bug description: When you start qemu on a 17.10 machine, the whole machine goes down and crashes: [ 90.689627] Unable to handle kernel paging request for data at address 0xf000000002d3bda0 [ 90.689705] Faulting instruction address: 0xc000000000361224 [ 90.689840] Oops: Kernel access of bad area, sig: 11 [#1] [ 90.689911] SMP NR_CPUS=2048 [ 90.689912] NUMA [ 90.690053] PowerNV [ 90.690092] Modules linked in: xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat xt_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp bridge stp llc kvm_hv kvm_pr kvm ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter openvswitch nf_conntrack_ipv6 nf_nat_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_defrag_ipv6 nf_nat nf_conntrack_netlink nf_conntrack nfnetlink idt_89hpesx snd_hda_codec_hdmi xfs joydev input_leds mac_hid snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore ofpart opal_prd cmdlinepart powernv_flash mtd at24 ipmi_powernv ipmi_devintf ipmi_msghandler powernv_rng uio_pdrv_genirq vmx_crypto ibmpowernv uio ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi sunrpc ip_tables x_tables [ 90.690724] autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor hid_generic usbhid hid raid6_pq libcrc32c raid1 raid0 multipath linear uas usb_storage ast crct10dif_vpmsum i2c_algo_bit crc32c_vpmsum ttm drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm tg3 ahci libahci [ 90.690937] CPU: 48 PID: 3986 Comm: qemu-system-ppc Not tainted 4.13.0-12-generic #13-Ubuntu [ 90.691001] task: c000000b122d8700 task.stack: c000000b431cc000 [ 90.691167] NIP: c000000000361224 LR: c000000000998960 CTR: c0000000009a19b0 [ 90.691223] REGS: c000000bff61b800 TRAP: 0300 Not tainted (4.13.0-12-generic) [ 90.691277] MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE> [ 90.691282] CR: 88002844 XER: 00000000 [ 90.691347] CFAR: c00000000099895c DAR: f000000002d3bda0 DSISR: 40000000 SOFTE: 0 [ 90.691347] GPR00: c000000000998960 c000000bff61ba80 c0000000015e3000 c000000b4ef61f20 [ 90.691347] GPR04: c000000b44c61680 0000000000000000 000000000000001f 000000000000001f [ 90.691347] GPR08: 000000000000001f 0000000002d3bd80 c00000000178e8e8 c000000b5a0c26f0 [ 90.691347] GPR12: 0000000028002842 c00000000fadf800 c000000b52d07880 c000000b44c61680 [ 90.691347] GPR16: 0000000000000000 000000000000001f 000000000000001f c00000000553a560 [ 90.691347] GPR20: 0000000000000001 0000000000000002 080000000553a560 c000000b5c62a228 [ 90.691347] GPR24: c000000005531110 c000000b5c632238 0000000000000210 0000000000000000 [ 90.691347] GPR28: c000000000998960 c000000bff61bc20 c000000b4ef61f20 f000000002d3bd80 [ 90.692089] NIP [c000000000361224] kfree+0x54/0x270 [ 90.692133] LR [c000000000998960] xhci_urb_free_priv+0x20/0x40 [ 90.692325] Call Trace: [ 90.692345] [c000000bff61ba80] [c000000bff61bad0] 0xc000000bff61bad0 (unreliable) [ 90.692402] [c000000bff61bac0] [c000000000998960] xhci_urb_free_priv+0x20/0x40 [ 90.692459] [c000000bff61bae0] [c00000000099bfc8] xhci_giveback_urb_in_irq.isra.22+0x78/0x190 [ 90.692645] [c000000bff61bb40] [c00000000099c350] xhci_td_cleanup+0x130/0x200 [ 90.692702] [c000000bff61bbc0] [c0000000009a175c] handle_tx_event+0x74c/0x1380 [ 90.692759] [c000000bff61bcc0] [c0000000009a2894] xhci_irq+0x504/0xf20 [ 90.692808] [c000000bff61bde0] [c00000000017b110] __handle_irq_event_percpu+0x90/0x300 [ 90.692977] [c000000bff61bea0] [c00000000017b3b8] handle_irq_event_percpu+0x38/0x90 [ 90.693038] [c000000bff61bee0] [c00000000017b474] handle_irq_event+0x64/0xb0 [ 90.693094] [c000000bff61bf10] [c000000000180da0] handle_fasteoi_irq+0xc0/0x230 [ 90.693155] [c000000bff61bf40] [c00000000017972c] generic_handle_irq+0x4c/0x70 [ 90.693332] [c000000bff61bf60] [c00000000001767c] __do_irq+0x7c/0x1c0 [ 90.693383] [c000000bff61bf90] [c00000000002ab70] call_do_irq+0x14/0x24 [ 90.693431] [c000000b431cf9d0] [c00000000001785c] do_IRQ+0x9c/0x130 [ 90.693478] [c000000b431cfa20] [c000000000008ac4] hardware_interrupt_common+0x114/0x120 [ 90.693663] --- interrupt: 501 at __copy_tofrom_user_power7+0x1f4/0x7cc [ 90.693663] LR = _copy_to_user+0x3c/0x60 [ 90.693736] [c000000b431cfd10] [c000000b431cfdc0] 0xc000000b431cfdc0 (unreliable) [ 90.693797] [c000000b431cfd30] [c0000000003bfa90] poll_select_copy_remaining+0x180/0x1b0 [ 90.693853] [c000000b431cfda0] [c0000000003c1934] SyS_ppoll+0x104/0x1e0 [ 90.694018] [c000000b431cfe30] [c00000000000b184] system_call+0x58/0x6c [ 90.694064] Instruction dump: [ 90.694094] Unable to handle kernel paging request for data at address 0xf000000002ffd860 [ 90.694153] Faulting instruction address: 0xc000000000399624 [ 90.694198] Oops: Kernel access of bad area, sig: 11 [#2] [ 90.694351] SMP NR_CPUS=2048 [ 90.694351] NUMA [ 90.694381] PowerNV I am using the latest kernel at the moment version 4.13-12 I just reproduced it with a different stack this time: [ 2764.725547] Severe Machine check interrupt [Recovered] [ 2764.725676] NIP [c000000000089268]: __copy_tofrom_user_power7+0x1f4/0x7cc [ 2764.725743] Initiator: CPU [ 2764.725764] Error type: SLB [Multihit] [ 2764.725786] Effective address: 00007fffd16e82c8 [ 2796.015384] Severe Machine check interrupt [Recovered] [ 2796.015509] NIP [c000000000089268]: __copy_tofrom_user_power7+0x1f4/0x7cc [ 2796.015586] Initiator: CPU [ 2796.015701] Error type: SLB [Parity] [ 2796.015723] Effective address: 00007fffddabe278 [ 2796.073775] Unable to handle kernel paging request for data at address 0xf000000002378020 [ 2796.073949] Faulting instruction address: 0xc000000000309a18 [ 2796.074075] Oops: Kernel access of bad area, sig: 11 [#1] [ 2796.074104] SMP NR_CPUS=2048 [ 2796.074104] NUMA [ 2796.074126] PowerNV [ 2796.074156] Modules linked in: xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat xt_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp bridge stp llc kvm_hv kvm_pr kvm ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter openvswitch nf_conntrack_ipv6 nf_nat_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_defrag_ipv6 nf_nat nf_conntrack_netlink nf_conntrack nfnetlink xfs idt_89hpesx snd_hda_codec_hdmi joydev input_leds mac_hid snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore ipmi_powernv at24 uio_pdrv_genirq ofpart cmdlinepart powernv_flash ipmi_devintf powernv_rng mtd ipmi_msghandler opal_prd uio ibmpowernv vmx_crypto sunrpc ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables [ 2796.074643] autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx hid_generic usbhid hid xor raid6_pq libcrc32c raid1 raid0 multipath linear uas usb_storage ast i2c_algo_bit crct10dif_vpmsum ttm crc32c_vpmsum drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm tg3 ahci libahci [ 2796.074902] CPU: 40 PID: 21964 Comm: CPU 0/KVM Tainted: G M 4.13.0-15-generic #16-Ubuntu [ 2796.074955] task: c000000a0b255900 task.stack: c000000a0bf9c000 [ 2796.074990] NIP: c000000000309a18 LR: c000000000309a14 CTR: c00000000030a280 [ 2796.075031] REGS: c000000a0bf9f560 TRAP: 0300 Tainted: G M (4.13.0-15-generic) [ 2796.075080] MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE> [ 2796.075083] CR: 48024244 XER: 20000000 [ 2796.075133] CFAR: c00000000006c508 DAR: f000000002378020 DSISR: 40000000 SOFTE: 0 [ 2796.075133] GPR00: c000000000309a14 c000000a0bf9f7e0 c0000000015f3400 f000000002378000 [ 2796.075133] GPR04: 00000000d9458000 0000000000000012 00000000834c0000 0000000000000008 [ 2796.075133] GPR08: f000000000000000 0000000000000001 0000000002378000 c00000000179e958 [ 2796.075133] GPR12: 0000000028004248 c00000000fada400 000072882e440000 000072882e440000 [ 2796.075133] GPR16: 0000000000010000 000074882e430000 c000000ad9458000 0000000000000001 [ 2796.075133] GPR20: 4000000000002000 c00000000179e968 000072882e43ffff 000072882e440000 [ 2796.075133] GPR24: c000000a0bf9f988 0008000000000040 07000000000000c0 0000000000000001 [ 2796.075133] GPR28: c0800008de002386 862300de080080c0 c0000009834c0170 0000000000000004 [ 2796.075513] NIP [c000000000309a18] __get_user_pages_fast+0x798/0xfd0 [ 2796.075549] LR [c000000000309a14] __get_user_pages_fast+0x794/0xfd0 [ 2796.075652] Call Trace: [ 2796.075699] [c000000a0bf9f7e0] [d0000000070f89e4] kvmppc_run_core+0xeec/0x1370 [kvm_hv] (unreliable) [ 2796.075749] [c000000a0bf9f900] [c00000000030a390] get_user_pages_fast+0x110/0x160 [ 2796.075793] [c000000a0bf9f950] [d0000000070fe21c] kvmppc_book3s_hv_page_fault+0x384/0xc60 [kvm_hv] [ 2796.075844] [c000000a0bf9fa40] [d0000000070fa94c] kvmppc_vcpu_run_hv+0x314/0x790 [kvm_hv] [ 2796.075891] [c000000a0bf9fb10] [d000000006f759ec] kvmppc_vcpu_run+0x34/0x48 [kvm] [ 2796.075941] [c000000a0bf9fb30] [d000000006f71aa0] kvm_arch_vcpu_ioctl_run+0x108/0x320 [kvm] [ 2796.076100] [c000000a0bf9fbd0] [d000000006f65018] kvm_vcpu_ioctl+0x400/0x7c8 [kvm] [ 2796.076144] [c000000a0bf9fd40] [c0000000003bd6a4] do_vfs_ioctl+0xd4/0xa00 [ 2796.076181] [c000000a0bf9fde0] [c0000000003be094] SyS_ioctl+0xc4/0x130 [ 2796.076217] [c000000a0bf9fe30] [c00000000000b184] system_call+0x58/0x6c [ 2796.076252] Instruction dump: [ 2796.076275] Unable to handle kernel paging request for data at address 0xf00000000282fe60 [ 2796.076339] Faulting instruction address: 0xc0000000003995c4 [ 2796.076444] Oops: Kernel access of bad area, sig: 11 [#2] [ 2796.076473] SMP NR_CPUS=2048 [ 2796.076473] NUMA [ 2796.076494] PowerNV [ 2796.076523] Modules linked in: xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat xt_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp bridge stp llc kvm_hv kvm_pr kvm ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter openvswitch nf_conntrack_ipv6 nf_nat_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_defrag_ipv6 nf_nat nf_conntrack_netlink nf_conntrack nfnetlink xfs idt_89hpesx snd_hda_codec_hdmi joydev input_leds mac_hid snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore ipmi_powernv at24 uio_pdrv_genirq ofpart cmdlinepart powernv_flash ipmi_devintf powernv_rng mtd ipmi_msghandler opal_prd uio ibmpowernv vmx_crypto sunrpc ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables [ 2796.078461] autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx hid_generic usbhid hid xor raid6_pq libcrc32c raid1 raid0 multipath linear uas usb_storage ast i2c_algo_bit crct10dif_vpmsum ttm crc32c_vpmsum drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm tg3 ahci libahci [ 2796.080130] CPU: 40 PID: 21964 Comm: CPU 0/KVM Tainted: G M 4.13.0-15-generic #16-Ubuntu [ 2796.080797] task: c000000a0b255900 task.stack: c000000a0bf9c000 [ 2796.081128] NIP: c0000000003995c4 LR: c0000000002bf778 CTR: 00000000300303f0 [ 2796.081474] REGS: c000000a0bf9efc0 TRAP: 0300 Tainted: G M (4.13.0-15-generic) [ 2796.081819] MSR: 9000000000001033 <SF,HV,ME,IR,DR,RI,LE> [ 2796.081822] CR: 48024228 XER: 20000000 [ 2796.082458] CFAR: c0000000002bf774 DAR: f00000000282fe60 DSISR: 40000000 SOFTE: 0 [ 2796.082458] GPR00: c0000000002bf778 c000000a0bf9f240 c0000000015f3400 c000000a0bf9f360 [ 2796.082458] GPR04: 0000000000000004 f00000000282fe40 9000000000001033 0000000000000060 [ 2796.082458] GPR08: 000000000000a0b0 000000000282fe40 c00000000179e8e8 9000000000001003 [ 2796.082458] GPR12: 0000000000004400 c00000000fada400 000072882e440000 000072882e440000 [ 2796.082458] GPR16: 0000000000010000 000074882e430000 c000000ad9458000 0000000000000001 [ 2796.082458] GPR20: 4000000000002000 c00000000179e968 000072882e43ffff 000072882e440000 [ 2796.082458] GPR24: c000000a0bf9f988 c000000000e98308 c000000000e98318 c000000a0bf9f560 [ 2796.082458] GPR28: c000000a0bf9f364 0000000000000000 0000000000000004 c000000a0bf9f360 [ 2796.088348] NIP [c0000000003995c4] __check_object_size+0xc4/0x250 [ 2796.088427] LR [c0000000002bf778] __probe_kernel_read+0x68/0xd0 [ 2796.088750] Call Trace: [ 2796.089060] [c000000a0bf9f240] [c000000a0bf9f2c0] 0xc000000a0bf9f2c0 (unreliable) [ 2796.089405] [c000000a0bf9f2c0] [c0000000002bf778] __probe_kernel_read+0x68/0xd0 [ 2796.090048] [c000000a0bf9f300] [c00000000001e010] show_regs+0x300/0x430 [ 2796.090394] [c000000a0bf9f3c0] [c00000000002647c] __die+0xec/0x130 [ 2796.090732] [c000000a0bf9f440] [c000000000026524] die+0x64/0xe0 [ 2796.091091] [c000000a0bf9f480] [c000000000069fb0] bad_page_fault+0xe0/0x14c [ 2796.091404] [c000000a0bf9f4f0] [c00000000000a4b8] handle_page_fault+0x34/0x38 [ 2796.091745] --- interrupt: 300 at __get_user_pages_fast+0x798/0xfd0 [ 2796.091745] LR = __get_user_pages_fast+0x794/0xfd0 [ 2796.092403] [c000000a0bf9f7e0] [d0000000070f89e4] kvmppc_run_core+0xeec/0x1370 [kvm_hv] (unreliable) [ 2796.093083] [c000000a0bf9f900] [c00000000030a390] get_user_pages_fast+0x110/0x160 [ 2796.093418] [c000000a0bf9f950] [d0000000070fe21c] kvmppc_book3s_hv_page_fault+0x384/0xc60 [kvm_hv] [ 2796.094073] [c000000a0bf9fa40] [d0000000070fa94c] kvmppc_vcpu_run_hv+0x314/0x790 [kvm_hv] [ 2796.094423] [c000000a0bf9fb10] [d000000006f759ec] kvmppc_vcpu_run+0x34/0x48 [kvm] [ 2796.094777] [c000000a0bf9fb30] [d000000006f71aa0] kvm_arch_vcpu_ioctl_run+0x108/0x320 [kvm] [ 2796.096433] [c000000a0bf9fbd0] [d000000006f65018] kvm_vcpu_ioctl+0x400/0x7c8 [kvm] [ 2796.096785] [c000000a0bf9fd40] [c0000000003bd6a4] do_vfs_ioctl+0xd4/0xa00 [ 2796.097121] [c000000a0bf9fde0] [c0000000003be094] SyS_ioctl+0xc4/0x130 [ 2796.097467] [c000000a0bf9fe30] [c00000000000b184] system_call+0x58/0x6c [ 2796.098127] Instruction dump: ... It repeats the above. Breno got some information the problem is mostly like to be related to SBL multi-hit. Mirroring to Launchpad to advise Canonical of this KVM issue... To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-systems/+bug/1725350/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp