[PATCH v5] conversion to blk-mq

Keith Busch keith.busch at intel.com
Tue Jun 3 15:27:14 PDT 2014


> On Tue, 3 Jun 2014, Matias Bjorling wrote:
>> 
>> Keith, will you take the nvmemq_wip_v6 branch for a spin? Thanks!

BTW, if you want to test this out yourself, it's pretty simple to
recreate. I just run a simple user admin program sending nvme passthrough
commands in a tight loop, then run:

  # echo 1 > /sys/bus/pci/devices/<bdf>/remove

> Still fails as before:
>
> [   88.933881] BUG: unable to handle kernel NULL pointer dereference at 
> 0000000000000014
> [   88.942900] IP: [<ffffffff811c51b8>] blk_mq_map_queue+0xf/0x1e
> [   88.949605] PGD 427be0067 PUD 425495067 PMD 0
> [   88.954915] Oops: 0000 [#1] SMP
> [   88.958787] Modules linked in: nvme parport_pc ppdev lp parport dlm sctp 
> libcrc32c configfs nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache 
> sunrpc md4 hmac cifs bridge stp llc joydev jfs hid_generic usbhid hid loop 
> md_mod x86_pkg_temp_thermal coretemp kvm_intel kvm iTCO_wdt 
> iTCO_vendor_support crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 
> glue_helper lrw gf128mul ablk_helper cryptd microcode ehci_pci ehci_hcd 
> pcspkr usbcore lpc_ich ioatdma usb_common mfd_core evdev i2c_i801 wmi 
> acpi_cpufreq tpm_tis tpm ipmi_si ipmi_msghandler processor thermal_sys button 
> ext4 crc16 jbd2 mbcache dm_mod nbd sg sd_mod sr_mod crc_t10dif cdrom 
> crct10dif_common isci ahci libsas igb libahci scsi_transport_sas ptp pps_core 
> i2c_algo_bit libata i2c_core scsi_mod dca
> [   89.042529] CPU: 5 PID: 4544 Comm: nvme_id_ctrl Not tainted 3.15.0-rc1+ #3
> [   89.050295] Hardware name: Intel Corporation S2600GZ/S2600GZ, BIOS 
> SE5C600.86B.02.02.0002.122320131210 12/23/2013
> [   89.061856] task: ffff88042bbdb0d0 ti: ffff88042c24c000 task.ti: 
> ffff88042c24c000
> [   89.070305] RIP: 0010:[<ffffffff811c51b8>]  [<ffffffff811c51b8>] 
> blk_mq_map_queue+0xf/0x1e
> [   89.079747] RSP: 0018:ffff88042c24dda0  EFLAGS: 00010202
> [   89.085795] RAX: 0000000000000000 RBX: ffffe8fbffaa1b00 RCX: 
> ffff88042e8ec4b0
> [   89.093868] RDX: 0000000000008be6 RSI: 0000000000000005 RDI: 
> ffff88042abdf048
> [   89.101950] RBP: ffff88042c2b81c0 R08: ffff88042c24c000 R09: 
> ffff880035c58410
> [   89.110033] R10: ffff88043f6b2dc0 R11: ffff88043f6b2dc0 R12: 
> ffff88042c24de94
> [   89.118119] R13: 000000000000007d R14: 00007fff0cd892b0 R15: 
> 0000000000000000
> [   89.126210] FS:  00007f39866c5700(0000) GS:ffff88043f6a0000(0000) 
> knlGS:0000000000000000
> [   89.135387] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   89.141916] CR2: 0000000000000014 CR3: 000000042b387000 CR4: 
> 00000000000407e0
> [   89.149997] Stack:
> [   89.152353]  ffffffff811c6334 00000000fffffffc ffff88042c2b81c0 
> ffff88042c24de10
> [   89.161096]  ffffffffa054dcbb 0000000000000246 00000000fffffffc 
> ffff8800b5e05cc0
> [   89.169839]  00000000fffffff4 ffff8800b5e05cc0 ffff88042bbc3000 
> 0000000000001000
> [   89.178583] Call Trace:
> [   89.181429]  [<ffffffff811c6334>] ? blk_mq_free_request+0x37/0x48
> [   89.188360]  [<ffffffffa054dcbb>] ? __nvme_submit_admin_cmd+0x52/0x68 
> [nvme]
> [   89.196349]  [<ffffffffa054f761>] ? nvme_user_admin_cmd+0x144/0x1b1 [nvme]
> [   89.204150]  [<ffffffffa054f7eb>] ? nvme_dev_ioctl+0x1d/0x2b [nvme]
> [   89.211278]  [<ffffffff81125916>] ? do_vfs_ioctl+0x3f2/0x43b
> [   89.217710]  [<ffffffff81117e35>] ? vfs_write+0xde/0xfc
> [   89.223657]  [<ffffffff811259ad>] ? SyS_ioctl+0x4e/0x7d
> [   89.229622]  [<ffffffff8139c6d2>] ? system_call_fastpath+0x16/0x1b
> [   89.236636] Code: 8b 4a 38 48 39 4e 38 72 12 74 06 b8 01 00 00 00 c3 48 8b 
> 4a 60 48 39 4e 60 73 f0 c3 66 66 66 66 90 48 8b 87 e0 00 00 00 48 63 f6 <8b> 
> 14 b0 48 8b 87 f8 00 00 00 48 8b 04 d0 c3 89 ff f0 48 0f ab
> [   89.263435] RIP  [<ffffffff811c51b8>] blk_mq_map_queue+0xf/0x1e
> [   89.270237]  RSP <ffff88042c24dda0>
> [   89.274237] CR2: 0000000000000014
> [   89.278095] ---[ end trace 54c0e8cbb1fe2ec3 ]---
>



More information about the Linux-nvme mailing list