NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/53059: "nvmectl identify nvme0" locks up system



The following reply was made to PR kern/53059; it has been noted by GNATS.

From: Frank Kardel <kardel%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/53059: "nvmectl identify nvme0" locks up system
Date: Tue, 27 Feb 2018 14:52:32 +0100

 That identifies the tight loop - good.
 
 Now why can we run ~45 nvmectl's successfully from user level and then 
 get stuck - is the admin queue exhausted?
 
 Frank
 
 
 On 02/27/18 14:40, Martin Husemann wrote:
 > The following reply was made to PR kern/53059; it has been noted by GNATS.
 >
 > From: Martin Husemann <martin%duskware.de@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc:
 > Subject: Re: kern/53059: "nvmectl identify nvme0" locks up system
 > Date: Tue, 27 Feb 2018 14:35:32 +0100
 >
 >   I can reproduce it but luckily have a serial console.
 >   
 >   This is with Christos's latest change:
 >   
 >   nvme_poll() at netbsd:nvme_poll+0x12d
 >   nvmeioctl() at netbsd:nvmeioctl+0x19a
 >   cdev_ioctl() at netbsd:cdev_ioctl+0x98
 >   VOP_IOCTL() at netbsd:VOP_IOCTL+0x3b
 >   vn_ioctl() at netbsd:vn_ioctl+0xa1
 >   sys_ioctl() at netbsd:sys_ioctl+0x103
 >   syscall() at netbsd:syscall+0x1d8
 >   
 >   db{0}> sh reg
 >   ds          2b73
 >   es          8a78
 >   fs          55a6
 >   gs          6
 >   rdi         ffffffff81401260    x86_io
 >   rsi         3f8
 >   rbp         ffff800144b78a68
 >   rbx         ffff80001da4505c
 >   rdx         1
 >   rcx         8
 >   rax         7f
 >   r8          ffff800143841000
 >   r9          ffffffff806441cb    nvme_pt_fill
 >   r10         ffff800144b78ba0
 >   r11         10
 >   r12         800
 >   r13         f9
 >   r14         c6
 >   r15         ffffe4011daa0408
 >   rip         ffffffff8021db05    breakpoint+0x5
 >   cs          8
 >   rflags      202
 >   rsp         ffff800144b78a68
 >   ss          10
 >   netbsd:breakpoint+0x5:  leave
 >   
 >   
 >   (gdb) list *nvmeioctl+0x19a
 >   0xffffffff80644e65 is in nvmeioctl (../../../../dev/ic/nvme.c:971).
 >   [.. nvme_command_passthrough ..]
 >   
 >   (gdb) list *nvme_poll+0x12d
 >   0xffffffff80643fb2 is in nvme_poll (../../../../dev/ic/nvme.c:1043).
 >   1038            ccb->ccb_cookie = &state;
 >   1039
 >   1040            nvme_q_submit(sc, q, ccb, nvme_poll_fill);
 >   1041            while (!ISSET(state.c.flags, htole16(NVME_CQE_PHASE))) {
 >   1042                    if (nvme_q_complete(sc, q) == 0)
 >   1043                            delay(step);
 >   1044
 >   
 >   
 >   Martin
 >   
 


Home | Main Index | Thread Index | Old Index