Re: LOR acpi_ibm module

From: John Baldwin <jhb_at_freebsd.org>
Date: Wed, 9 Sep 2009 14:53:50 -0400
On Wednesday 09 September 2009 2:25:13 pm Jung-uk Kim wrote:
> On Wednesday 09 September 2009 01:49 pm, Felix Stolba wrote:
> > Brandon Gooch schrieb:
> > > lock order reversal:
> > >  1st 0xffffffff807cf200 sysctl lock (sysctl lock) _at_
> > > /usr/src/sys/kern/kern_sysctl.c:1608
> > >  2nd 0xffffffff80bf1de0 ACPI IBM extras (ACPI IBM extras) _at_
> > > /usr/src/sys/modules/acpi/acpi_ibm/../../../dev/acpi_support/acpi
> > >_ibm.c:481 KDB: stack backtrace:
> > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> > > _witness_debugger() at _witness_debugger+0x2e
> > > witness_checkorder() at witness_checkorder+0x81e
> > > _sx_xlock() at _sx_xlock+0x54
> > > acpi_ibm_sysctl() at acpi_ibm_sysctl+0x4f
> > > sysctl_root() at sysctl_root+0xe3
> > > userland_sysctl() at userland_sysctl+0x158
> > > __sysctl() at __sysctl+0xaa
> > > syscall() at syscall+0x1dd
> > > Xfast_syscall() at Xfast_syscall+0xd0
> > > --- syscall (202, FreeBSD ELF64, __sysctl), rip = 0x80073769c,
> > > rsp = 0x7fffffffda58, rbp = 0x4 ---
> >
> > I'm getting the same LOR at boot in 9.0-current (source from 7th of
> > september).
> 
> It is generally harmless but really annoying.

Actually, we can just remove the pointless locking from attach to fix this I 
think.  You don't need locking in attach while you are adding the sysctls, 
etc. since no other threads can "get" to the acpi_ibm data yet.  This patch 
should fix the LOR:

Index: acpi_ibm.c
===================================================================
--- acpi_ibm.c	(revision 196974)
+++ acpi_ibm.c	(working copy)
_at__at_ -356,8 +356,6 _at__at_
 	}
 	sc->ec_handle = acpi_get_handle(sc->ec_dev);
 
-	ACPI_SERIAL_BEGIN(ibm);
-
 	/* Get the sysctl tree */
 	sc->sysctl_ctx = device_get_sysctl_ctx(dev);
 	sc->sysctl_tree = device_get_sysctl_tree(dev);
_at__at_ -404,8 +402,6 _at__at_
 		    "Thermal zones");
 	}
 
-	ACPI_SERIAL_END(ibm);
-
 	/* Handle notifies */
 	AcpiInstallNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY,
 	    acpi_ibm_notify, dev);


-- 
John Baldwin
Received on Wed Sep 09 2009 - 17:08:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:55 UTC