Kernel page fault with the following non-sleepable locks

Farhan Khan khanzf at gmail.com
Wed Nov 22 06:52:35 UTC 2017


Quick bit of context to my kernel panic.

The panic occurs after running rtwn_rx_common() in 
/usr/src/sys/dev/rtwn/pci/rtwn_pci_rx.c. The instruction is capturing 
the return value from %rax.

movq %rax,-0x50(%rbp)

Hope this helps in diagnosing the issue!

On 11/22/2017 01:40 AM, Farhan Khan wrote:
> Hi all,
> 
> I received this error following what appeared to be a PCI interrupt.
> 
> Kernel page fault with the following non-sleepable locks held:
> exclusive sleep mutex rtwn (network driver) r = 0 (0xfffffe000920c000) 
> locked @ /usr/src/sys/dev/rtwn/pci/rtwn_pci_rx.c:290
> 
> This is followed by a stack trace, with the rtwn_pci_rx_frame as the 
> last driver-relevant function. The fault code is "supervisor read 
> instruction, page not present".
> 
> I understand that this happens after a mutex lock is held beyond a 
> period of time, as described here:
> https://www.freebsd.org/doc/en/books/faq/troubleshoot.html#idp59180136
> 
> My questions are:
> A) What defines long periods of time?
> B) What common patterns might cause this issue? Is there something in 
> specific I should look for? Would it be a PCI read request that takes 
> too long to return?
> 
> Thank you,
> Farhan Khan


More information about the freebsd-drivers mailing list