Date: Wed, 9 Sep 2009 14:53:50 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-current@freebsd.org Cc: Brandon Gooch <jamesbrandongooch@gmail.com>, bzeeb+freebsd+lor@zabbadoz.net, Felix Stolba <alleepsilonkleinereins@gmail.com>, Jung-uk Kim <jkim@freebsd.org> Subject: Re: LOR acpi_ibm module Message-ID: <200909091453.50771.jhb@freebsd.org> In-Reply-To: <200909091425.15003.jkim@FreeBSD.org> References: <179b97fb0905301355n2a422e05j665fc3a551ce06f1@mail.gmail.com> <4AA7EAB2.5040403@googlemail.com> <200909091425.15003.jkim@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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) @ > > > /usr/src/sys/kern/kern_sysctl.c:1608 > > > 2nd 0xffffffff80bf1de0 ACPI IBM extras (ACPI IBM extras) @ > > > /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) @@ -356,8 +356,6 @@ } 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); @@ -404,8 +402,6 @@ "Thermal zones"); } - ACPI_SERIAL_END(ibm); - /* Handle notifies */ AcpiInstallNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY, acpi_ibm_notify, dev); -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909091453.50771.jhb>