2017-08-18 12:12:55 |
Colin Ian King |
description |
stress-ng run as root, --dev stressor, accessing /dev/hvc1:
[ 2096.476610] hvc_open: request_irq failed with rc -16.
[ 2096.476634] Unable to handle kernel paging request for data at address 0x000000a8
[ 2096.476641] Faulting instruction address: 0xc000000000b0d8a4
[ 2096.476647] Oops: Kernel access of bad area, sig: 11 [#1]
[ 2096.476650] SMP NR_CPUS=2048 NUMA PowerNV
[ 2096.476657] Modules linked in: kvm_hv kvm_pr kvm cuse userio hci_vhci bluetooth uhid hid vhost_net vhost macvtap macvlan snd_seq snd_seq_device snd_timer snd soundcore ipmi_powernv ipmi_msghandler vmx_crypto leds_powernv uio_pdrv_genirq uio powernv_rng ibmpowernv ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear dm_round_robin ses enclosure ipr scsi_dh_emc scsi_dh_rdac scsi_dh_alua dm_multipath
[ 2096.476718] CPU: 74 PID: 23074 Comm: stress-ng-dev Not tainted 4.4.0-92-generic #115-Ubuntu
[ 2096.476724] task: c000000fe8499030 ti: c000000f0fa0c000 task.ti: c000000f0fa0c000
[ 2096.476728] NIP: c000000000b0d8a4 LR: c00000000069648c CTR: c000000000696450
[ 2096.476732] REGS: c000000f0fa0f6b0 TRAP: 0300 Not tainted (4.4.0-92-generic)
[ 2096.476736] MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE> CR: 24444248 XER: 00000000
[ 2096.476749] CFAR: c000000000008468 DAR: 00000000000000a8 DSISR: 40000000 SOFTE: 0
GPR00: c00000000069648c c000000f0fa0f930 c0000000015f8000 00000000000000a8
GPR04: c000000ff0082400 0000000000000002 0000001ffe7d0000 0000000000000036
GPR08: c000000003236b90 0000000000000000 000000008000004a c000001e4e568880
GPR12: c000000000696450 c00000000fb6bf00 000000000000000f 0000010023d22660
GPR16: 00003fff9ca50000 0000000000800000 c000001e43dde100 c000000fe459c800
GPR20: 0000000000000000 0000000000000001 000000000e500001 0000000000010004
GPR24: 0000000000010800 ffffffffffffffff fffffffffffff000 c000000001892448
GPR28: c000000fef98da28 c000000fe459c800 0000000000000001 00000000000000a8
[ 2096.476805] NIP [c000000000b0d8a4] _raw_spin_lock_irqsave+0x44/0x130
[ 2096.476812] LR [c00000000069648c] hvc_open+0x3c/0x1a0
[ 2096.476815] Call Trace:
[ 2096.476818] [c000000f0fa0f930] [c000000f0fa0f970] 0xc000000f0fa0f970 (unreliable)
[ 2096.476824] [c000000f0fa0f970] [c00000000069648c] hvc_open+0x3c/0x1a0
[ 2096.476829] [c000000f0fa0f9f0] [c00000000066c514] tty_open+0x194/0x7c0
[ 2096.476836] [c000000f0fa0fa90] [c0000000002ec234] chrdev_open+0x114/0x270
[ 2096.476841] [c000000f0fa0faf0] [c0000000002e1480] do_dentry_open+0x2c0/0x460
[ 2096.476846] [c000000f0fa0fb50] [c0000000002f9aa8] do_last+0x178/0xff0
[ 2096.476851] [c000000f0fa0fc10] [c0000000002fab3c] path_openat+0xcc/0x3c0
[ 2096.476857] [c000000f0fa0fc90] [c0000000002fca5c] do_filp_open+0xfc/0x170
[ 2096.476861] [c000000f0fa0fdb0] [c0000000002e3270] do_sys_open+0x1c0/0x3b0
[ 2096.476867] [c000000f0fa0fe30] [c000000000009204] system_call+0x38/0xb4
[ 2096.476870] Instruction dump:
[ 2096.476873] fbe1fff8 f8010010 f821ffc1 7c7f1b78 60000000 60000000 39200000 8bcd02ca
[ 2096.476881] 992d02ca 39400000 994d02cc 814d0008 <7d20f829> 2c090000 40c20010 7d40f92d
[ 2096.476893] ---[ end trace c902066e4cc54f9e ]--- |
[SRU REQUEST][XENIAL]
When running stress-ng --dev stressor accessing /dev/hvc1 causes the stressor to lock up and never terminal.
[FIX]
Upstream commmit:From bbc3dfe8805de86874b1a1b1429a002e8670043e Mon Sep 17 00:00:00 2001
From: Sam Mendoza-Jonas <sam@mendozajonas.com>
Date: Mon, 11 Jul 2016 13:38:57 +1000
Subject: [PATCH] tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
[TESTING]
Without the fix, stress-ng --dev run as root hangs, and one gets an irq failed error and an oops:
[ 2096.476610] hvc_open: request_irq failed with rc -16.
[ 2096.476634] Unable to handle kernel paging request for data at address 0x000000a8
[ 2096.476641] Faulting instruction address: 0xc000000000b0d8a4
[ 2096.476647] Oops: Kernel access of bad area, sig: 11 [#1]
[ 2096.476650] SMP NR_CPUS=2048 NUMA PowerNV
With the fix, the stressor runs w/o any issues
[REGRESSION POTENTIAL]
This is specific to one driver for ppc64el, so the risk potential is limited. The fix has limited regression potential as it essentially marks a flag to allow interrupt to be shared and fundamentally this is a very minor change to the interrupt handling functionality in the driver.
-------------------------------
stress-ng run as root, --dev stressor, accessing /dev/hvc1:
[ 2096.476610] hvc_open: request_irq failed with rc -16.
[ 2096.476634] Unable to handle kernel paging request for data at address 0x000000a8
[ 2096.476641] Faulting instruction address: 0xc000000000b0d8a4
[ 2096.476647] Oops: Kernel access of bad area, sig: 11 [#1]
[ 2096.476650] SMP NR_CPUS=2048 NUMA PowerNV
[ 2096.476657] Modules linked in: kvm_hv kvm_pr kvm cuse userio hci_vhci bluetooth uhid hid vhost_net vhost macvtap macvlan snd_seq snd_seq_device snd_timer snd soundcore ipmi_powernv ipmi_msghandler vmx_crypto leds_powernv uio_pdrv_genirq uio powernv_rng ibmpowernv ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear dm_round_robin ses enclosure ipr scsi_dh_emc scsi_dh_rdac scsi_dh_alua dm_multipath
[ 2096.476718] CPU: 74 PID: 23074 Comm: stress-ng-dev Not tainted 4.4.0-92-generic #115-Ubuntu
[ 2096.476724] task: c000000fe8499030 ti: c000000f0fa0c000 task.ti: c000000f0fa0c000
[ 2096.476728] NIP: c000000000b0d8a4 LR: c00000000069648c CTR: c000000000696450
[ 2096.476732] REGS: c000000f0fa0f6b0 TRAP: 0300 Not tainted (4.4.0-92-generic)
[ 2096.476736] MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE> CR: 24444248 XER: 00000000
[ 2096.476749] CFAR: c000000000008468 DAR: 00000000000000a8 DSISR: 40000000 SOFTE: 0
GPR00: c00000000069648c c000000f0fa0f930 c0000000015f8000 00000000000000a8
GPR04: c000000ff0082400 0000000000000002 0000001ffe7d0000 0000000000000036
GPR08: c000000003236b90 0000000000000000 000000008000004a c000001e4e568880
GPR12: c000000000696450 c00000000fb6bf00 000000000000000f 0000010023d22660
GPR16: 00003fff9ca50000 0000000000800000 c000001e43dde100 c000000fe459c800
GPR20: 0000000000000000 0000000000000001 000000000e500001 0000000000010004
GPR24: 0000000000010800 ffffffffffffffff fffffffffffff000 c000000001892448
GPR28: c000000fef98da28 c000000fe459c800 0000000000000001 00000000000000a8
[ 2096.476805] NIP [c000000000b0d8a4] _raw_spin_lock_irqsave+0x44/0x130
[ 2096.476812] LR [c00000000069648c] hvc_open+0x3c/0x1a0
[ 2096.476815] Call Trace:
[ 2096.476818] [c000000f0fa0f930] [c000000f0fa0f970] 0xc000000f0fa0f970 (unreliable)
[ 2096.476824] [c000000f0fa0f970] [c00000000069648c] hvc_open+0x3c/0x1a0
[ 2096.476829] [c000000f0fa0f9f0] [c00000000066c514] tty_open+0x194/0x7c0
[ 2096.476836] [c000000f0fa0fa90] [c0000000002ec234] chrdev_open+0x114/0x270
[ 2096.476841] [c000000f0fa0faf0] [c0000000002e1480] do_dentry_open+0x2c0/0x460
[ 2096.476846] [c000000f0fa0fb50] [c0000000002f9aa8] do_last+0x178/0xff0
[ 2096.476851] [c000000f0fa0fc10] [c0000000002fab3c] path_openat+0xcc/0x3c0
[ 2096.476857] [c000000f0fa0fc90] [c0000000002fca5c] do_filp_open+0xfc/0x170
[ 2096.476861] [c000000f0fa0fdb0] [c0000000002e3270] do_sys_open+0x1c0/0x3b0
[ 2096.476867] [c000000f0fa0fe30] [c000000000009204] system_call+0x38/0xb4
[ 2096.476870] Instruction dump:
[ 2096.476873] fbe1fff8 f8010010 f821ffc1 7c7f1b78 60000000 60000000 39200000 8bcd02ca
[ 2096.476881] 992d02ca 39400000 994d02cc 814d0008 <7d20f829> 2c090000 40c20010 7d40f92d
[ 2096.476893] ---[ end trace c902066e4cc54f9e ]--- |
|