Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Nov 2012 09:06:38 +0000
From:      Tom Lislegaard <Tom.Lislegaard@proact.no>
To:        'Andriy Gapon' <avg@FreeBSD.org>
Cc:        "freebsd-acpi@FreeBSD.org" <freebsd-acpi@FreeBSD.org>, "freebsd-stable@FreeBSD.org" <freebsd-stable@FreeBSD.org>
Subject:   RE: 9-Stable panic: resource_list_unreserve: can't find resource
Message-ID:  <E8A24BEFDC390C4491718DEE8A9C4F20922E13@Semail03.proact.local>
In-Reply-To: <50995C8F.3040309@FreeBSD.org>
References:  <E8A24BEFDC390C4491718DEE8A9C4F2091F824@Semail03.proact.local> <509172F6.2040400@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F2091FC33@Semail03.proact.local> <5092F209.7090803@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20920DD1@Semail03.proact <5093BECC.1030709@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921BAC@Semail03.proact.local> <50979BCD.3060000@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C47@Semail03.proact.local> <5097CB27.8040802@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C6A@Semail03.proact.local> <5097F24D.7040206@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F209220E2@Semail03.proact.local> <50995C8F.3040309@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> -----Original Message-----
> From: Andriy Gapon [mailto:avg@FreeBSD.org]
> Sent: 6. november 2012 19:53
> To: Tom Lislegaard
> Cc: freebsd-stable@FreeBSD.org; freebsd-acpi@FreeBSD.org
> Subject: Re: 9-Stable panic: resource_list_unreserve: can't find resource
>=20
> on 06/11/2012 10:50 Tom Lislegaard said the following:
> > No problem, I'm happy to assist in debugging this.
> >
> > Enabling the acpi debugging quickly fills the kernel message buffer,
> > but it seems to be the same set of messages repeating again and again
> > so I think this is representative
> >
> > https://dl.dropbox.com/u/13263820/debug_dmesg.txt
>=20
> This didn't clarify things as much as I hoped, but I am inclined to think=
 that it is polling from
> userland that triggers all the processor notifications.
>=20
> In any case, here is a patch to try:
> http://people.freebsd.org/~avg/acpi_cpu-stable.diff
>=20
> Please disable all the tunings added to loader.conf during debugging when=
 testing this patch.
>=20
> The patch is a combination of two changes:
>=20
> 1.
> Do not needlessly use ever-increasing resource IDs.
> Rather use the IDs that are tied to Cx level IDs.
> Also, release previous resources upon _CST change.
>=20
> 2.
> Bind a thread that processes a processor _CST change notification to the =
target processor and perform
> _CST processing in a critical section.  These should ensure the following=
:
> - the CPU doesn't enter an idle state and doesn't try to use Cx level par=
ameters
>   while they are being changed
> - Cx level parameters are never concurrently modified when multiple notif=
ications
>   fire in a rapid succession and multiple ACPI task threads are configure=
d sched_bind is a heavy-
> weight operation, but it is OK in this context because processor notifica=
tions should not occur too
> often
>=20

Thanks. I applied the patch yesterday, but found this morning the machine h=
ad crashed during the night with a page fault

(kgdb) bt
#0  doadump (textdump=3DVariable "textdump" is not available.
) at pcpu.h:229
#1  0xffffffff804441f4 in kern_reboot (howto=3D260) at /usr/src/sys/kern/ke=
rn_shutdown.c:448
#2  0xffffffff804446dc in panic (fmt=3D0x1 <Address 0x1 out of bounds>) at =
/usr/src/sys/kern/kern_shutdown.c:636
#3  0xffffffff806f234d in trap_fatal (frame=3D0xfffffe00089264a0, eva=3DVar=
iable "eva" is not available.
) at /usr/src/sys/amd64/amd64/trap.c:878
#4  0xffffffff806f2668 in trap_pfault (frame=3D0xffffff82450401b0, usermode=
=3D0) at /usr/src/sys/amd64/amd64/trap.c:794
#5  0xffffffff806f29ec in trap (frame=3D0xffffff82450401b0) at /usr/src/sys=
/amd64/amd64/trap.c:463
#6  0xffffffff806dc5ff in calltrap () at /usr/src/sys/amd64/amd64/exception=
.S:228
#7  0xffffffff802d1bdd in AcpiOsAcquireObject (Cache=3D0xfffffe00052bac60) =
at /usr/src/sys/contrib/dev/acpica/utilities/utcache.c:316
#8  0xffffffff802d6883 in AcpiUtAllocateObjectDescDbg (ModuleName=3D0xfffff=
fff8074c3f0 "dsutils", LineNumber=3D703, ComponentId=3DVariable "ComponentI=
d" is not available.
) at /usr/src/sys/contrib/dev/acpica/utilities/utobject.c:437
#9  0xffffffff802d6a1d in AcpiUtCreateInternalObjectDbg (ModuleName=3D0xfff=
fffff8074c3f0 "dsutils", LineNumber=3D703, ComponentId=3D64, Type=3D1) at /=
usr/src/sys/contrib/dev/acpica/utilities/utobject.c:112
#10 0xffffffff802a71e8 in AcpiDsCreateOperand (WalkState=3D0xfffffe0008a3bc=
00, Arg=3D0xfffffe0005366800, ArgIndex=3D0) at /usr/src/sys/contrib/dev/acp=
ica/dispatcher/dsutils.c:703
#11 0xffffffff802a7587 in AcpiDsCreateOperands (WalkState=3D0xfffffe0008a3b=
c00, FirstArg=3D0xfffffe0005366800) at /usr/src/sys/contrib/dev/acpica/disp=
atcher/dsutils.c:798
#12 0xffffffff802a856e in AcpiDsExecEndOp (WalkState=3D0xfffffe0008a3bc00) =
at /usr/src/sys/contrib/dev/acpica/dispatcher/dswexec.c:567
#13 0xffffffff802c9441 in AcpiPsParseLoop (WalkState=3D0xfffffe0008a3bc00) =
at /usr/src/sys/contrib/dev/acpica/parser/psloop.c:1249
#14 0xffffffff802ca8dd in AcpiPsParseAml (WalkState=3D0xfffffe0008a3bc00) a=
t /usr/src/sys/contrib/dev/acpica/parser/psparse.c:525
#15 0xffffffff802cb981 in AcpiPsExecuteMethod (Info=3D0xfffffe01a2143100) a=
t /usr/src/sys/contrib/dev/acpica/parser/psxface.c:368
#16 0xffffffff802c2287 in AcpiNsEvaluate (Info=3D0xfffffe01a2143100) at /us=
r/src/sys/contrib/dev/acpica/namespace/nseval.c:193
#17 0xffffffff802d3f56 in AcpiUtEvaluateObject (PrefixNode=3D0xfffffe00052f=
6540, Path=3D0xffffffff807538f6 "_STA", ExpectedReturnBtypes=3D1, ReturnDes=
c=3D0xffffff8245040660) at /usr/src/sys/contrib/dev/acpica/utilities/uteval=
.c:102
#18 0xffffffff802d428f in AcpiUtExecute_STA (DeviceNode=3D0xfffffe00052f654=
0, Flags=3D0xfffffe01cc0d1e18) at /usr/src/sys/contrib/dev/acpica/utilities=
/uteval.c:276
#19 0xffffffff802c7e47 in AcpiGetObjectInfo (Handle=3DVariable "Handle" is =
not available.
) at /usr/src/sys/contrib/dev/acpica/namespace/nsxfname.c:423
#20 0xffffffff802e35ed in acpi_BatteryIsPresent (dev=3D0xfffffe0005378c00) =
at /usr/src/sys/dev/acpica/acpi.c:2064
#21 0xffffffff802e66e1 in acpi_battery_get_battinfo (dev=3D0x0, battinfo=3D=
0xffffffff80a4ba70) at /usr/src/sys/dev/acpica/acpi_battery.c:176
#22 0xffffffff802e6a44 in acpi_battery_sysctl (oidp=3D0xfffffe0008785600, a=
rg1=3DVariable "arg1" is not available.
) at /usr/src/sys/dev/acpica/acpi_battery.c:428
#23 0xffffffff8044e057 in sysctl_root (oidp=3DVariable "oidp" is not availa=
ble.
) at /usr/src/sys/kern/kern_sysctl.c:1513
#24 0xffffffff8044e335 in userland_sysctl (td=3DVariable "td" is not availa=
ble.
) at /usr/src/sys/kern/kern_sysctl.c:1623
#25 0xffffffff8044e84a in sys___sysctl (td=3D0xfffffe0008c6c920, uap=3D0xff=
ffff8245040a70) at /usr/src/sys/kern/kern_sysctl.c:1549
#26 0xffffffff806f1c40 in amd64_syscall (td=3D0xfffffe0008c6c920, traced=3D=
0) at subr_syscall.c:135
#27 0xffffffff806dc8e7 in Xfast_syscall () at /usr/src/sys/amd64/amd64/exce=
ption.S:387
#28 0x00000008026587ec in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)=20

-tom




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8A24BEFDC390C4491718DEE8A9C4F20922E13>