NetBSD Problem Report #55029

From msaitoh@execsw.org  Fri Feb 28 09:26:44 2020
Return-Path: <msaitoh@execsw.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 00C571A9213
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 28 Feb 2020 09:26:43 +0000 (UTC)
Message-Id: <20200228092642.2B2CB886133@five.execsw.org>
Date: Fri, 28 Feb 2020 18:26:42 +0900 (JST)
From: msaitoh@execsw.org
Reply-To: msaitoh@execsw.org
To: gnats-bugs@NetBSD.org
Subject: ti with LOCDEBUG panic
X-Send-Pr-Version: 3.95

>Number:         55029
>Category:       kern
>Synopsis:       ti with LOCDEBUG panic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    thorpej
>State:          feedback
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 28 09:30:00 +0000 2020
>Closed-Date:    
>Last-Modified:  Sat Feb 29 18:52:00 +0000 2020
>Originator:     msaitoh@execsw.org
>Release:        NetBSD 9.99.48
>Organization:
>Environment:
>Description:
	ti(4) with LOCKDEBUG panics when ifconfig ti0 up.

[  66.5082067] Mutex error: mutex_vector_enter,509: assertion failed: !cpu_intr_p()

[  66.5082067] lock address : 0xffffffff814e93e8 type     :     sleep/adaptive
[  66.5082067] initialized  : 0xffffffff809c6f89
[  66.5082067] shared holds :                  0 exclusive:                  0
[  66.5082067] shares wanted:                  0 exclusive:                  0
[  66.5082067] relevant cpu :                  0 last held:                  2
[  66.5082067] relevant lwp : 0xffff816bd67cf040 last held: 000000000000000000
[  66.5082067] last locked  : 0xffffffff809d009c unlocked*: 0xffffffff809b9471
[  66.5082067] owner field  : 000000000000000000 wait/spin:                0/0
[  66.5082067] Turnstile: no active turnstile for this lock.

[  66.5786490] panic: LOCKDEBUG: Mutex error: mutex_vector_enter,509: assertion failed: !cpu_intr_p()
[  66.5786490] cpu0: Begin traceback...
[  66.5913011] vpanic() at netbsd:vpanic+0x178
[  66.5913011] snprintf() at netbsd:snprintf
[  66.5984877] lockdebug_more() at netbsd:lockdebug_more
[  66.5984877] mutex_enter() at netbsd:mutex_enter+0x649
[  66.6082622] uvm_pgflcache_pause() at netbsd:uvm_pgflcache_pause+0x10
[  66.6082622] uvm_pglistalloc() at netbsd:uvm_pglistalloc+0x99
[  66.6206478] _bus_dmamem_alloc_range.isra.5() at netbsd:_bus_dmamem_alloc_range.isra.5+0x75
[  66.6282518] _bus_dma_alloc_bouncebuf() at netbsd:_bus_dma_alloc_bouncebuf+0x77
[  66.6386151] bus_dmamap_create() at netbsd:bus_dmamap_create+0x1b7
[  66.6386151] ti_newbuf_std() at netbsd:ti_newbuf_std+0x1a8
[  66.6486068] ti_intr() at netbsd:ti_intr+0x36d
[  66.6486068] intr_biglock_wrapper() at netbsd:intr_biglock_wrapper+0x36
[  66.6589023] Xhandle_ioapic_level1() at netbsd:Xhandle_ioapic_level1+0x75
[  66.6683497] --- interrupt ---
[  66.6683497] x86_mwait() at netbsd:x86_mwait+0xd
[  66.6683497] acpicpu_cstate_idle_enter() at netbsd:acpicpu_cstate_idle_enter+0xd1
[  66.6800763] acpicpu_cstate_idle() at netbsd:acpicpu_cstate_idle+0xba
[  66.6896438] idle_loop() at netbsd:idle_loop+0x152
[  66.6896438] cpu0: End traceback...

>How-To-Repeat:
	See above.
>Fix:
	Don't allocate dmamem in the interrupt context?

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: kern-bug-people->thorpej
Responsible-Changed-By: thorpej@NetBSD.org
Responsible-Changed-When: Sat, 29 Feb 2020 18:50:48 +0000
Responsible-Changed-Why:
Take.

State-Changed-From-To: open->feedback
State-Changed-By: thorpej@NetBSD.org
State-Changed-When: Sat, 29 Feb 2020 18:52:00 +0000
State-Changed-Why:
Module Name:	src
Committed By:	thorpej
Date:		Sat Feb 29 18:49:53 UTC 2020

Modified Files:
	src/sys/dev/pci: if_ti.c if_tireg.h

Log Message:
- Change the definition and usage of TI_HOSTADDR() to allow for 64-bit
 DMA addresses.  Modeled after similar usage in the bge(4) driver (the
 chips supported by bge(4) are descendants of those supported by ti(4)).
- Use the 64-bit PCI DMA tag if available, otherwise we're allocating (and
 using) bounce buffers needlessly.


To generate a diff of this commit:
cvs rdiff -u -r1.114 -r1.115 src/sys/dev/pci/if_ti.c
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/pci/if_tireg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.