* RE: mutexes and preemption
@ 2004-03-04 1:08 Moore, Robert
[not found] ` <CFF522B18982EA4481D3A3E23B83141C01C988CE-sBd4vmA9Se6SsB6bSF6DdVDQ4js95KgL@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Moore, Robert @ 2004-03-04 1:08 UTC (permalink / raw)
To: Sebastian Seifert, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
Grover, Andrew, Therien, Guy, Brown, Len, Yu, Luming
Looking at the timestamps in the debug output, I suspect that the real
issue here is this line:
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Because this wait should have been for 37 seconds (36863 milliseconds),
yet not one second has gone by on the wall clock.
A close look at the Linux implementation of os_wait_semaphore may again
be in order.
I have long advocated that anything less than full support of timed-wait
semaphores in the Linux kernel is simply a hack that cannot be trusted.
Perhaps the time has come to implement this support properly.
Bob
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1370
(55A)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|0], AE_TIME
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [30] from address [9c]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [28] from address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [3c] from address [9e]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: exmutex-0264: *** Error: Thread 3 cannot
release Mutex [MUT1] acquired by thread 55A
Mar 2 23:03:10 tenshi kernel: psparse-1120: *** Error: Method
execution failed [\_TZ_.THZN._TMP] (Node dff61c48), AE_AML_NOT_OWNER
-----Original Message-----
From: Moore, Robert
Sent: Wednesday, March 03, 2004 3:59 PM
To: 'Sebastian Seifert'; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Grover, Andrew
Subject: RE: [ACPI] mutexes and preemption
One of these ACQUIRE ops timed out:
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
As witnessed by this debug output:
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|0], AE_TIME
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Notice that the ASL code does not handle the AE_TIME error case but just
plows ahead.
Bob
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id\x1470&alloc_id638&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread[parent not found: <CFF522B18982EA4481D3A3E23B83141C01C988CE-sBd4vmA9Se6SsB6bSF6DdVDQ4js95KgL@public.gmane.org>]
* Re: mutexes and preemption [not found] ` <CFF522B18982EA4481D3A3E23B83141C01C988CE-sBd4vmA9Se6SsB6bSF6DdVDQ4js95KgL@public.gmane.org> @ 2004-03-04 10:22 ` Sebastian Seifert 0 siblings, 0 replies; 7+ messages in thread From: Sebastian Seifert @ 2004-03-04 10:22 UTC (permalink / raw) To: Moore, Robert Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Grover, Andrew, Therien, Guy, Brown, Len, Yu, Luming On Wed, Mar 03, 2004 at 05:08:53PM -0800, Moore, Robert wrote: > > Looking at the timestamps in the debug output, I suspect that the real > issue here is this line: > > Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore > : Failed to acquire semaphore[dffd8680|1|36863], AE_TIME > > Because this wait should have been for 37 seconds (36863 milliseconds), > yet not one second has gone by on the wall clock. > > A close look at the Linux implementation of os_wait_semaphore may again > be in order. You are right, thank you. I believe there is a bug in os_wait_semaphore: the return value of down_trylock isn't checked correctly, leading to the immediate failure of an Acquire with timeout in the case the semaphore cannot be acquired immediately . I've sent a patch to this list. I hope someone applies it. Sebastian -- A bad analogy is like leaky screwdriver. ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: mutexes and preemption
@ 2004-03-03 23:59 Moore, Robert
0 siblings, 0 replies; 7+ messages in thread
From: Moore, Robert @ 2004-03-03 23:59 UTC (permalink / raw)
To: Sebastian Seifert, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Cc: Grover, Andrew
One of these ACQUIRE ops timed out:
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
As witnessed by this debug output:
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|0], AE_TIME
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Notice that the ASL code does not handle the AE_TIME error case but just
plows ahead.
Bob
-----Original Message-----
From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
[mailto:acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Sebastian
Seifert
Sent: Tuesday, March 02, 2004 2:51 PM
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: [ACPI] mutexes and preemption
Hello,
some vital information first: I'm using kernel 2.6.3-mm4 with DSDT in
ramdisk
patch applied, preemption is enabled, SMP disabled.
I'm currently debugging the DSDT of my laptop (Benq Joybook 5000). Some
ACPI
method calls seem to be failing because of double acquisition of a
mutex. One
reproducible way to trigger the problem is to read the ac adapter's
state. My
syslog looks like this (I set debug_level to 31 and added printks in
exoparg?.c):
Mar 2 23:03:10 tenshi kernel: Execute Method: [\_SB_.AC__._PSR] (Node
dff60f88)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1370
(55A)
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2016] acpi_ec_read
: Read [08] from address [92]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2022] acpi_ec_read
: Read [30] from address [9c]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1370
(55A)
Mar 2 23:03:10 tenshi kernel: exregion-0294 [2030]
ex_system_io_space_han: system_iO 1 (8 width) Address=00000000000000B3
Mar 2 23:03:10 tenshi kernel: exregion-0294 [2030]
ex_system_io_space_han: system_iO 1 (8 width) Address=00000000000000B2
Mar 2 23:03:10 tenshi kernel: evmisc-0121 [2021]
ev_queue_notify_reques: Dispatching Notify(81) on node dff61ca8
Mar 2 23:03:10 tenshi kernel: evmisc-0137 [2021]
ev_queue_notify_reques: Notify value: Status Change
Mar 2 23:03:10 tenshi kernel: Execute Method: [\_TZ_.THZN._TMP] (Node
dff61c48)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1370
(55A)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|0], AE_TIME
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore
: Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [30] from address [9c]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [28] from address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read
: Read [3c] from address [9e]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: exmutex-0264: *** Error: Thread 3 cannot
release Mutex [MUT1] acquired by thread 55A
Mar 2 23:03:10 tenshi kernel: psparse-1120: *** Error: Method
execution failed [\_TZ_.THZN._TMP] (Node dff61c48), AE_AML_NOT_OWNER
Mar 2 23:03:10 tenshi kernel: acpi_utils-0256 [2036]
acpi_evaluate_integer : Evaluate [\_TZ_.THZN._TMP]: AE_AML_NOT_OWNER
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2034] acpi_ec_read
: Read [28] from address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2036] acpi_ec_write
: Wrote [28] to address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2045] acpi_ec_read
: Read [3c] from address [9e]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2050] acpi_ec_write
: Wrote [3c] to address [9e]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2058] acpi_ec_read
: Read [32] from address [a0]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2063] acpi_ec_write
: Wrote [28] to address [a0]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1370
(55A)
Mar 2 23:03:10 tenshi kernel: exregion-0372 [2072]
ex_pci_config_space_ha: pci_config 0 (8) Seg(0000) Bus(0000) Dev(001f)
Func(0000) Reg(00a0)
Mar 2 23:03:10 tenshi kernel: exregion-0372 [2072]
ex_pci_config_space_ha: pci_config 1 (8) Seg(0000) Bus(0000) Dev(001f)
Func(0000) Reg(00a0)
Mar 2 23:03:10 tenshi kernel: acpi_utils-0267 [2054]
acpi_evaluate_integer : Return value [1]
_PSR acquires MUT1, reads some registers, then releases it. Then, it
calls
some method CHGT (not indicated by debug output, but I know from the
DSDT),
which possibly changes some temperature trigger values, and Notifies the
thermal zone. Then, it calls some method STEV, which acquires MUT1,
does
something, and releases it.
What seems to happen is that the Notify enqueues an event for later
processing
by thread 3, an event daemon. Then, during the execution of STEV, which
has
acquired MUT1, thread 1370 (in above example syslog) becomes preempted
(it
seems). The event handler runs and tries to process the notification.
Which
involves reading the temperature by calling _TMP, which tries to acquire
the
same mutex MUT1. At least that's my analysis. If I disable kernel
preemption,
the second release of MUT1 by the running thread happens before the
acquire by
thread 3 and no error happens.
Now, I'm not sure what that means. Is preemption in combination with
ACPI
unsupported? Is it legal to schedule away from a thread that is holding
an ACPI
mutex? Or is the way the mutex is used inside my DSDT invalid? The
DSDT looks
good to my eye, the mutex is only held for some lines of code while
accessing
the embedded controller. But I don't know much about ACPI and the
assumptions
that are made.
Another problem I'm having is that the OS does not seem to execute the
_REG
method of my embedded controller. I'm circumventing this problem by
setting the
controller's activation flag to 1 all the time, and faking values in
_STA
methods (which are called during initialization while there is no
embedded
controller operation region yet). But shouldn't _REG be called when the
operation region becomes enabled?
Thanks in advance,
Sebastian
Some relevant parts of my DSDT:
Method (CHGT, 1, NotSerialized)
{
Store (Arg0, TMOD)
If (LEqual (Arg0, 0x00))
{
Store (MTPB, CTPB)
\_SB.GSMI (0x18)
Sleep (0x64)
Store (0x00, TRON)
Store (CTTP, PTMP)
}
If (LEqual (Arg0, 0x02))
{
Store (BTPB, CTPB)
Store (PASH, PTMP)
}
Notify (\_TZ.THZN, 0x81)
}
Method (STEV, 1, NotSerialized)
{
CreateByteField (CTPB, 0x00, TPL0)
CreateByteField (CTPB, 0x01, TPH0)
[...lots of conditional Stores...]
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (TMPL, \_SB.PCI0.LPCB.EC0.LTMP)
Store (TMPH, \_SB.PCI0.LPCB.EC0.HTMP)
Store (CFSP, \_SB.PCI0.LPCB.EC0.FANS)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
ThermalZone (THZN)
{
Method (_TMP, 0, Serialized)
{
If (ECON)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.CCPT, Local0)
Store (\_SB.PCI0.LPCB.EC0.LTMP, Local1)
Store (\_SB.PCI0.LPCB.EC0.HTMP, Local2)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (LOr (LNot (LEqual (TMPL, Local1)), LNot (LEqual
(TMPH, Local2))))
{
STEV (Local0)
}
Add (Local0, 0x0111, Local0)
Multiply (Local0, 0x0A, Local0)
Return (Local0)
}
Else
{
Return (0x0C80)
}
}
[...]
}
[...]
Device (AC)
{
[...]
Method (_PSR, 0, NotSerialized)
{
If (LEqual (DFEC, 0x00))
{
If (ECON)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.ACST, Local0)
Store (\_SB.PCI0.LPCB.EC0.CCPT, Local1)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (LEqual (Local0, 0x01))
{
CHGT (0x00)
STEV (Local1)
Store (0x00, \_SB.PCI0.LPCB.C4C3)
}
Else
{
CHGT (0x02)
STEV (Local1)
Store (0x01, \_SB.PCI0.LPCB.C4C3)
}
Return (Local0)
}
Else
{
Return (One)
}
}
Else
{
Return (One)
}
/* this seems to be bogus - never reached ??
Store (0xA0, MLIN)
Store (MLDT, Local0)
If (LEqual (Local0, 0x77))
{
Return (0x01)
}
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.PBAC, Local0)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
Return (Local0)
*/
}
--
"Gott ist tot."
--Nietzsche
"Nietzsche ist tot."
--Gott
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Acpi-devel mailing list
Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id\x1470&alloc_id638&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread* RE: mutexes and preemption
@ 2004-03-03 7:05 Yu, Luming
[not found] ` <3ACA40606221794F80A5670F0AF15F8401CBB713-SRlDPOYGfgogGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Yu, Luming @ 2004-03-03 7:05 UTC (permalink / raw)
To: Sebastian Seifert, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
>
> some vital information first: I'm using kernel 2.6.3-mm4 with
> DSDT in ramdisk
> patch applied, preemption is enabled, SMP disabled.
>
What about disable preemption?
--Luming
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread[parent not found: <3ACA40606221794F80A5670F0AF15F8401CBB713-SRlDPOYGfgogGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>]
* Re: mutexes and preemption [not found] ` <3ACA40606221794F80A5670F0AF15F8401CBB713-SRlDPOYGfgogGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org> @ 2004-03-03 7:24 ` Sebastian Seifert 0 siblings, 0 replies; 7+ messages in thread From: Sebastian Seifert @ 2004-03-03 7:24 UTC (permalink / raw) To: Yu, Luming; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, Mar 03, 2004 at 03:05:11PM +0800, Yu, Luming wrote: > > > > some vital information first: I'm using kernel 2.6.3-mm4 with > > DSDT in ramdisk > > patch applied, preemption is enabled, SMP disabled. > > > > What about disable preemption? > If I disable kernel preemption, the second release of MUT1 by the running thread happens before the acquire by thread 3 and no error happens. That is to say, the sequence looks as follows without preemption: ACQUIRE ... RELEASE ACQUIRE ... RELEASE ACQUIRE by thread 3 ... RELEASE by thread 3 instead of ACQUIRE ... RELEASE ACQUIRE ... ACQUIRE by thread 3 *ERROR* ... RELEASE by thread 3 ... RELEASE So, it seems the kernel thread that holds the mutex becomes scheduled away because of preemption. Should it? Sebastian -- This sentence is false. ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click ^ permalink raw reply [flat|nested] 7+ messages in thread
* mutexes and preemption
@ 2004-03-02 22:51 Sebastian Seifert
[not found] ` <20040302225117.GA1660-nlVyBo/8EO9N0TnZuCh8vA@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Sebastian Seifert @ 2004-03-02 22:51 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Hello,
some vital information first: I'm using kernel 2.6.3-mm4 with DSDT in ramdisk
patch applied, preemption is enabled, SMP disabled.
I'm currently debugging the DSDT of my laptop (Benq Joybook 5000). Some ACPI
method calls seem to be failing because of double acquisition of a mutex. One
reproducible way to trigger the problem is to read the ac adapter's state. My
syslog looks like this (I set debug_level to 31 and added printks in
exoparg?.c):
Mar 2 23:03:10 tenshi kernel: Execute Method: [\_SB_.AC__._PSR] (Node dff60f88)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1370 (55A)
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2016] acpi_ec_read : Read [08] from address [92]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2022] acpi_ec_read : Read [30] from address [9c]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1370 (55A)
Mar 2 23:03:10 tenshi kernel: exregion-0294 [2030] ex_system_io_space_han: system_iO 1 (8 width) Address=00000000000000B3
Mar 2 23:03:10 tenshi kernel: exregion-0294 [2030] ex_system_io_space_han: system_iO 1 (8 width) Address=00000000000000B2
Mar 2 23:03:10 tenshi kernel: evmisc-0121 [2021] ev_queue_notify_reques: Dispatching Notify(81) on node dff61ca8
Mar 2 23:03:10 tenshi kernel: evmisc-0137 [2021] ev_queue_notify_reques: Notify value: Status Change
Mar 2 23:03:10 tenshi kernel: Execute Method: [\_TZ_.THZN._TMP] (Node dff61c48)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1370 (55A)
Mar 2 23:03:10 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore : Failed to acquire semaphore[dffd8680|1|0], AE_TIME
Mar 2 23:03:10 tenshi kernel: osl-0909 [2049] os_wait_semaphore : Failed to acquire semaphore[dffd8680|1|36863], AE_TIME
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read : Read [30] from address [9c]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read : Read [28] from address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2054] acpi_ec_read : Read [3c] from address [9e]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3)
Mar 2 23:03:10 tenshi kernel: exmutex-0264: *** Error: Thread 3 cannot release Mutex [MUT1] acquired by thread 55A
Mar 2 23:03:10 tenshi kernel: psparse-1120: *** Error: Method execution failed [\_TZ_.THZN._TMP] (Node dff61c48), AE_AML_NOT_OWNER
Mar 2 23:03:10 tenshi kernel: acpi_utils-0256 [2036] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._TMP]: AE_AML_NOT_OWNER
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2034] acpi_ec_read : Read [28] from address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2036] acpi_ec_write : Wrote [28] to address [9d]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2045] acpi_ec_read : Read [3c] from address [9e]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2050] acpi_ec_write : Wrote [3c] to address [9e]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0178 [2058] acpi_ec_read : Read [32] from address [a0]
Mar 2 23:03:10 tenshi kernel: acpi_ec-0230 [2063] acpi_ec_write : Wrote [28] to address [a0]
Mar 2 23:03:10 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1370 (55A)
Mar 2 23:03:10 tenshi kernel: exregion-0372 [2072] ex_pci_config_space_ha: pci_config 0 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0)
Mar 2 23:03:10 tenshi kernel: exregion-0372 [2072] ex_pci_config_space_ha: pci_config 1 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0)
Mar 2 23:03:10 tenshi kernel: acpi_utils-0267 [2054] acpi_evaluate_integer : Return value [1]
_PSR acquires MUT1, reads some registers, then releases it. Then, it calls
some method CHGT (not indicated by debug output, but I know from the DSDT),
which possibly changes some temperature trigger values, and Notifies the
thermal zone. Then, it calls some method STEV, which acquires MUT1, does
something, and releases it.
What seems to happen is that the Notify enqueues an event for later processing
by thread 3, an event daemon. Then, during the execution of STEV, which has
acquired MUT1, thread 1370 (in above example syslog) becomes preempted (it
seems). The event handler runs and tries to process the notification. Which
involves reading the temperature by calling _TMP, which tries to acquire the
same mutex MUT1. At least that's my analysis. If I disable kernel preemption,
the second release of MUT1 by the running thread happens before the acquire by
thread 3 and no error happens.
Now, I'm not sure what that means. Is preemption in combination with ACPI
unsupported? Is it legal to schedule away from a thread that is holding an ACPI
mutex? Or is the way the mutex is used inside my DSDT invalid? The DSDT looks
good to my eye, the mutex is only held for some lines of code while accessing
the embedded controller. But I don't know much about ACPI and the assumptions
that are made.
Another problem I'm having is that the OS does not seem to execute the _REG
method of my embedded controller. I'm circumventing this problem by setting the
controller's activation flag to 1 all the time, and faking values in _STA
methods (which are called during initialization while there is no embedded
controller operation region yet). But shouldn't _REG be called when the
operation region becomes enabled?
Thanks in advance,
Sebastian
Some relevant parts of my DSDT:
Method (CHGT, 1, NotSerialized)
{
Store (Arg0, TMOD)
If (LEqual (Arg0, 0x00))
{
Store (MTPB, CTPB)
\_SB.GSMI (0x18)
Sleep (0x64)
Store (0x00, TRON)
Store (CTTP, PTMP)
}
If (LEqual (Arg0, 0x02))
{
Store (BTPB, CTPB)
Store (PASH, PTMP)
}
Notify (\_TZ.THZN, 0x81)
}
Method (STEV, 1, NotSerialized)
{
CreateByteField (CTPB, 0x00, TPL0)
CreateByteField (CTPB, 0x01, TPH0)
[...lots of conditional Stores...]
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (TMPL, \_SB.PCI0.LPCB.EC0.LTMP)
Store (TMPH, \_SB.PCI0.LPCB.EC0.HTMP)
Store (CFSP, \_SB.PCI0.LPCB.EC0.FANS)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
ThermalZone (THZN)
{
Method (_TMP, 0, Serialized)
{
If (ECON)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.CCPT, Local0)
Store (\_SB.PCI0.LPCB.EC0.LTMP, Local1)
Store (\_SB.PCI0.LPCB.EC0.HTMP, Local2)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (LOr (LNot (LEqual (TMPL, Local1)), LNot (LEqual (TMPH, Local2))))
{
STEV (Local0)
}
Add (Local0, 0x0111, Local0)
Multiply (Local0, 0x0A, Local0)
Return (Local0)
}
Else
{
Return (0x0C80)
}
}
[...]
}
[...]
Device (AC)
{
[...]
Method (_PSR, 0, NotSerialized)
{
If (LEqual (DFEC, 0x00))
{
If (ECON)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.ACST, Local0)
Store (\_SB.PCI0.LPCB.EC0.CCPT, Local1)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (LEqual (Local0, 0x01))
{
CHGT (0x00)
STEV (Local1)
Store (0x00, \_SB.PCI0.LPCB.C4C3)
}
Else
{
CHGT (0x02)
STEV (Local1)
Store (0x01, \_SB.PCI0.LPCB.C4C3)
}
Return (Local0)
}
Else
{
Return (One)
}
}
Else
{
Return (One)
}
/* this seems to be bogus - never reached ??
Store (0xA0, MLIN)
Store (MLDT, Local0)
If (LEqual (Local0, 0x77))
{
Return (0x01)
}
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x8FFF)
Store (\_SB.PCI0.LPCB.EC0.PBAC, Local0)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
Return (Local0)
*/
}
--
"Gott ist tot."
--Nietzsche
"Nietzsche ist tot."
--Gott
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread[parent not found: <20040302225117.GA1660-nlVyBo/8EO9N0TnZuCh8vA@public.gmane.org>]
* Re: mutexes and preemption [not found] ` <20040302225117.GA1660-nlVyBo/8EO9N0TnZuCh8vA@public.gmane.org> @ 2004-03-03 11:43 ` Sebastian Seifert 0 siblings, 0 replies; 7+ messages in thread From: Sebastian Seifert @ 2004-03-03 11:43 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Tue, Mar 02, 2004 at 11:51:17PM +0100, Sebastian Seifert wrote: > some vital information first: I'm using kernel 2.6.3-mm4 with DSDT in ramdisk > patch applied, preemption is enabled, SMP disabled. > > I'm currently debugging the DSDT of my laptop (Benq Joybook 5000). Some ACPI > method calls seem to be failing because of double acquisition of a mutex. One > reproducible way to trigger the problem is to read the ac adapter's state. My > syslog looks like this (I set debug_level to 31 and added printks in > exoparg?.c): There was a mistake in the last log I quoted - since I had changed the notify value while playing around, I changed it back in the log. I didn't realize it would be handled differently. Anyway, I have done some experiments. I've done echo 31 > /proc/acpi/debug_level cat /proc/acpi/ac_adapter/AC/state on different configurations of kernel and DSDT. In my DSDT, the Acquire calls have a timeout value of 0x0FFF. If I leave it at 0x0FFF on a preemptive kernel, the error happens. If I disable preemption but leave the timeout at 0x0FFF, the error disappears. And if I change the timeout of the Acquire calls to "0xFFFF" (i.e. they do not time out) but leave on preemtion, the error disappears (but I still get a single line "Failed to acquire semaphore"). Maybe someone can make sense out of the three logs that follow. ----- preemptive kernel, 0x0FFF timeout ------ r 3 12:21:01 tenshi kernel: Execute Method: [\_SB_.AC__._PSR] (Node dff60f88) Mar 3 12:21:01 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1404 (57C) Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [216] acpi_ec_read : Read [00] from address [92] Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [221] acpi_ec_read : Read [31] from address [9c] Mar 3 12:21:01 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1404 (57C) Mar 3 12:21:01 tenshi kernel: evmisc-0121 [215] ev_queue_notify_reques: Dispatching Notify(81) on node dff61ca8 Mar 3 12:21:01 tenshi kernel: evmisc-0141 [215] ev_queue_notify_reques: Unknown Notify Value: 81 Mar 3 12:21:01 tenshi kernel: Execute Method: [\_TZ_.THZN._CRT] (Node dff61948) Mar 3 12:21:01 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1404 (57C) Mar 3 12:21:01 tenshi kernel: acpi_utils-0267 [229] acpi_evaluate_integer : Return value [3752] Mar 3 12:21:01 tenshi kernel: acpi_thermal-0333 [228] acpi_thermal_get_trip_: Found critical threshold [3752] Mar 3 12:21:01 tenshi kernel: acpi_utils-0256 [229] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._HOT]: AE_NOT_FOUND Mar 3 12:21:01 tenshi kernel: acpi_thermal-0341 [228] acpi_thermal_get_trip_: No hot threshold Mar 3 12:21:01 tenshi kernel: acpi_utils-0256 [229] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._PSV]: AE_NOT_FOUND Mar 3 12:21:01 tenshi kernel: acpi_thermal-0353 [228] acpi_thermal_get_trip_: No passive threshold Mar 3 12:21:01 tenshi kernel: Execute Method: [\_TZ_.THZN._AC0] (Node dff61a68) Mar 3 12:21:01 tenshi kernel: acpi_utils-0267 [229] acpi_evaluate_integer : Return value [3380] Mar 3 12:21:01 tenshi kernel: acpi_utils-0399 [229] acpi_evaluate_referenc: Found reference [dff620e8] Mar 3 12:21:01 tenshi kernel: acpi_thermal-0394 [228] acpi_thermal_get_trip_: Found active threshold [0]:[3380] Mar 3 12:21:01 tenshi kernel: Execute Method: [\_TZ_.THZN._AC1] (Node dff61b88) Mar 3 12:21:01 tenshi kernel: acpi_utils-0267 [229] acpi_evaluate_integer : Return value [3280] Mar 3 12:21:01 tenshi kernel: acpi_utils-0399 [229] acpi_evaluate_referenc: Found reference [dff61e28] Mar 3 12:21:01 tenshi kernel: acpi_thermal-0394 [228] acpi_thermal_get_trip_: Found active threshold [1]:[3280] Mar 3 12:21:01 tenshi kernel: acpi_utils-0256 [229] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._AC2]: AE_NOT_FOUND Mar 3 12:21:01 tenshi kernel: Execute Method: [\_TZ_.THZN._TMP] (Node dff61c48) Mar 3 12:21:01 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3) Mar 3 12:21:01 tenshi kernel: osl-0909 [243] os_wait_semaphore : Failed to acquire semaphore[dffd8680|1|0], AE_TIME Mar 3 12:21:01 tenshi kernel: osl-0909 [243] os_wait_semaphore : Failed to acquire semaphore[dffd8680|1|4095], AE_TIME Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [248] acpi_ec_read : Read [31] from address [9c] Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [248] acpi_ec_read : Read [00] from address [9d] Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [248] acpi_ec_read : Read [37] from address [9e] Mar 3 12:21:01 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3) Mar 3 12:21:01 tenshi kernel: exmutex-0264: *** Error: Thread 3 cannot release Mutex [MUT1] acquired by thread 57C Mar 3 12:21:01 tenshi kernel: psparse-1120: *** Error: Method execution failed [\_TZ_.THZN._TMP] (Node dff61c48), AE_AML_NOT_OWNER Mar 3 12:21:01 tenshi kernel: acpi_utils-0256 [230] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._TMP]: AE_AML_NOT_OWNER Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [228] acpi_ec_read : Read [00] from address [9d] Mar 3 12:21:01 tenshi kernel: acpi_ec-0230 [231] acpi_ec_write : Wrote [00] to address [9d] Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [235] acpi_ec_read : Read [37] from address [9e] Mar 3 12:21:01 tenshi kernel: acpi_ec-0230 [241] acpi_ec_write : Wrote [37] to address [9e] Mar 3 12:21:01 tenshi kernel: acpi_ec-0178 [247] acpi_ec_read : Read [00] from address [a0] Mar 3 12:21:01 tenshi kernel: acpi_ec-0230 [252] acpi_ec_write : Wrote [00] to address [a0] Mar 3 12:21:01 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1404 (57C) Mar 3 12:21:01 tenshi kernel: exregion-0372 [257] ex_pci_config_space_ha: pci_config 0 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:21:01 tenshi kernel: exregion-0372 [257] ex_pci_config_space_ha: pci_config 1 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:21:01 tenshi kernel: acpi_utils-0267 [239] acpi_evaluate_integer : Return value [0] ------------------------------------------------ ----- nonpreemptive kernel, 0x0FFF timeout ------- Mar 3 12:28:22 tenshi kernel: Execute Method: [\_SB_.AC__._PSR] (Node dff60f88) Mar 3 12:28:22 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1427 (593) Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [72] acpi_ec_read : Read [00] from address [92] Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [72] acpi_ec_read : Read [31] from address [9c] Mar 3 12:28:22 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1427 (593) Mar 3 12:28:22 tenshi kernel: evmisc-0121 [63] ev_queue_notify_reques: Dispatching Notify(81) on node dff61ca8 Mar 3 12:28:22 tenshi kernel: evmisc-0141 [63] ev_queue_notify_reques: Unknown Notify Value: 81 Mar 3 12:28:22 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1427 (593) Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [73] acpi_ec_read : Read [00] from address [9d] Mar 3 12:28:22 tenshi kernel: acpi_ec-0230 [73] acpi_ec_write : Wrote [00] to address [9d] Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [73] acpi_ec_read : Read [37] from address [9e] Mar 3 12:28:22 tenshi kernel: acpi_ec-0230 [73] acpi_ec_write : Wrote [37] to address [9e] Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [73] acpi_ec_read : Read [00] from address [a0] Mar 3 12:28:22 tenshi kernel: acpi_ec-0230 [73] acpi_ec_write : Wrote [00] to address [a0] Mar 3 12:28:22 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1427 (593) Mar 3 12:28:22 tenshi kernel: exregion-0372 [72] ex_pci_config_space_ha: pci_config 0 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:28:22 tenshi kernel: exregion-0372 [72] ex_pci_config_space_ha: pci_config 1 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:28:22 tenshi kernel: acpi_utils-0267 [54] acpi_evaluate_integer : Return value [0] Mar 3 12:28:22 tenshi kernel: Execute Method: [\_TZ_.THZN._CRT] (Node dff61948) Mar 3 12:28:22 tenshi kernel: acpi_utils-0267 [57] acpi_evaluate_integer : Return value [3752] Mar 3 12:28:22 tenshi kernel: acpi_thermal-0333 [56] acpi_thermal_get_trip_: Found critical threshold [3752] Mar 3 12:28:22 tenshi kernel: acpi_utils-0256 [57] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._HOT]: AE_NOT_FOUND Mar 3 12:28:22 tenshi kernel: acpi_thermal-0341 [56] acpi_thermal_get_trip_: No hot threshold Mar 3 12:28:22 tenshi kernel: acpi_utils-0256 [57] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._PSV]: AE_NOT_FOUND Mar 3 12:28:22 tenshi kernel: acpi_thermal-0353 [56] acpi_thermal_get_trip_: No passive threshold Mar 3 12:28:22 tenshi kernel: Execute Method: [\_TZ_.THZN._AC0] (Node dff61a68) Mar 3 12:28:22 tenshi kernel: acpi_utils-0267 [57] acpi_evaluate_integer : Return value [3380] Mar 3 12:28:22 tenshi kernel: acpi_utils-0399 [57] acpi_evaluate_referenc: Found reference [dff620e8] Mar 3 12:28:22 tenshi kernel: acpi_thermal-0394 [56] acpi_thermal_get_trip_: Found active threshold [0]:[3380] Mar 3 12:28:22 tenshi kernel: Execute Method: [\_TZ_.THZN._AC1] (Node dff61b88) Mar 3 12:28:22 tenshi kernel: acpi_utils-0267 [57] acpi_evaluate_integer : Return value [3280] Mar 3 12:28:22 tenshi kernel: acpi_utils-0399 [57] acpi_evaluate_referenc: Found reference [dff61e28] Mar 3 12:28:22 tenshi kernel: acpi_thermal-0394 [56] acpi_thermal_get_trip_: Found active threshold [1]:[3280] Mar 3 12:28:22 tenshi kernel: acpi_utils-0256 [57] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._AC2]: AE_NOT_FOUND Mar 3 12:28:22 tenshi kernel: Execute Method: [\_TZ_.THZN._TMP] (Node dff61c48) Mar 3 12:28:22 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3) Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [76] acpi_ec_read : Read [31] from address [9c] Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [76] acpi_ec_read : Read [00] from address [9d] Mar 3 12:28:22 tenshi kernel: acpi_ec-0178 [76] acpi_ec_read : Read [37] from address [9e] Mar 3 12:28:22 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3) Mar 3 12:28:22 tenshi kernel: acpi_utils-0267 [58] acpi_evaluate_integer : Return value [3220] Mar 3 12:28:22 tenshi kernel: acpi_thermal-0229 [57] acpi_thermal_get_tempe: Temperature is 3220 dK Mar 3 12:28:22 tenshi kernel: acpi_thermal-0740 [56] acpi_thermal_check : THZN: temperature[3220] sleep[0] ------------------------------------------------------ ----- preemptive kernel, 0xFFFF timeout = no timeout ----- Mar 3 12:16:38 tenshi kernel: Execute Method: [\_SB_.AC__._PSR] (Node dff60f88) Mar 3 12:16:38 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1450 (5AA) Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [87] acpi_ec_read : Read [00] from address [92] Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [93] acpi_ec_read : Read [36] from address [9c] Mar 3 12:16:38 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1450 (5AA) Mar 3 12:16:38 tenshi kernel: evmisc-0121 [90] ev_queue_notify_reques: Dispatching Notify(81) on node dff61ca8 Mar 3 12:16:38 tenshi kernel: evmisc-0141 [90] ev_queue_notify_reques: Unknown Notify Value: 81 Mar 3 12:16:38 tenshi kernel: Execute Method: [\_TZ_.THZN._CRT] (Node dff61948) Mar 3 12:16:38 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 1450 (5AA) Mar 3 12:16:38 tenshi kernel: acpi_utils-0267 [104] acpi_evaluate_integer : Return value [3752] Mar 3 12:16:38 tenshi kernel: acpi_thermal-0333 [103] acpi_thermal_get_trip_: Found critical threshold [3752] Mar 3 12:16:38 tenshi kernel: acpi_utils-0256 [104] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._HOT]: AE_NOT_FOUND Mar 3 12:16:38 tenshi kernel: acpi_thermal-0341 [103] acpi_thermal_get_trip_: No hot threshold Mar 3 12:16:38 tenshi kernel: acpi_utils-0256 [104] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._PSV]: AE_NOT_FOUND Mar 3 12:16:38 tenshi kernel: acpi_thermal-0353 [103] acpi_thermal_get_trip_: No passive threshold Mar 3 12:16:38 tenshi kernel: Execute Method: [\_TZ_.THZN._AC0] (Node dff61a68) Mar 3 12:16:38 tenshi kernel: acpi_utils-0267 [104] acpi_evaluate_integer : Return value [3380] Mar 3 12:16:38 tenshi kernel: acpi_utils-0399 [104] acpi_evaluate_referenc: Found reference [dff620e8] Mar 3 12:16:38 tenshi kernel: acpi_thermal-0394 [103] acpi_thermal_get_trip_: Found active threshold [0]:[3380] Mar 3 12:16:38 tenshi kernel: Execute Method: [\_TZ_.THZN._AC1] (Node dff61b88) Mar 3 12:16:38 tenshi kernel: acpi_utils-0267 [104] acpi_evaluate_integer : Return value [3280] Mar 3 12:16:38 tenshi kernel: acpi_utils-0399 [104] acpi_evaluate_referenc: Found reference [dff61e28] Mar 3 12:16:38 tenshi kernel: acpi_thermal-0394 [103] acpi_thermal_get_trip_: Found active threshold [1]:[3280] Mar 3 12:16:38 tenshi kernel: acpi_utils-0256 [104] acpi_evaluate_integer : Evaluate [\_TZ_.THZN._AC2]: AE_NOT_FOUND Mar 3 12:16:38 tenshi kernel: Execute Method: [\_TZ_.THZN._TMP] (Node dff61c48) Mar 3 12:16:38 tenshi kernel: AML_ACQUIRE_OP on [MUT1] by thread 3 (3) Mar 3 12:16:38 tenshi kernel: osl-0909 [118] os_wait_semaphore : Failed to acquire semaphore[dffd8680|1|0], AE_TIME Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [118] acpi_ec_read : Read [32] from address [9d] Mar 3 12:16:38 tenshi kernel: acpi_ec-0230 [118] acpi_ec_write : Wrote [32] to address [9d] Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [118] acpi_ec_read : Read [41] from address [9e] Mar 3 12:16:38 tenshi kernel: acpi_ec-0230 [118] acpi_ec_write : Wrote [41] to address [9e] Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [118] acpi_ec_read : Read [00] from address [a0] Mar 3 12:16:38 tenshi kernel: acpi_ec-0230 [118] acpi_ec_write : Wrote [00] to address [a0] Mar 3 12:16:38 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 1450 (5AA) Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [123] acpi_ec_read : Read [36] from address [9c] Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [123] acpi_ec_read : Read [32] from address [9d] Mar 3 12:16:38 tenshi kernel: acpi_ec-0178 [123] acpi_ec_read : Read [41] from address [9e] Mar 3 12:16:38 tenshi kernel: AML_RELEASE_OP on [MUT1] by thread 3 (3) Mar 3 12:16:38 tenshi kernel: acpi_utils-0267 [105] acpi_evaluate_integer : Return value [3270] Mar 3 12:16:38 tenshi kernel: acpi_thermal-0229 [104] acpi_thermal_get_tempe: Temperature is 3270 dK Mar 3 12:16:38 tenshi kernel: acpi_thermal-0740 [103] acpi_thermal_check : THZN: temperature[3270] sleep[0] Mar 3 12:16:38 tenshi kernel: exregion-0372 [101] ex_pci_config_space_ha: pci_config 0 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:16:38 tenshi kernel: exregion-0372 [101] ex_pci_config_space_ha: pci_config 1 (8) Seg(0000) Bus(0000) Dev(001f) Func(0000) Reg(00a0) Mar 3 12:16:38 tenshi kernel: acpi_utils-0267 [83] acpi_evaluate_integer : Return value [0] ------------------------------------------------------------ Sebastian -- "God is as real as I am," the old man said. My faith was restored, for I knew that Santa would never lie. ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-03-04 10:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-04 1:08 mutexes and preemption Moore, Robert
[not found] ` <CFF522B18982EA4481D3A3E23B83141C01C988CE-sBd4vmA9Se6SsB6bSF6DdVDQ4js95KgL@public.gmane.org>
2004-03-04 10:22 ` Sebastian Seifert
-- strict thread matches above, loose matches on Subject: below --
2004-03-03 23:59 Moore, Robert
2004-03-03 7:05 Yu, Luming
[not found] ` <3ACA40606221794F80A5670F0AF15F8401CBB713-SRlDPOYGfgogGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-03-03 7:24 ` Sebastian Seifert
2004-03-02 22:51 Sebastian Seifert
[not found] ` <20040302225117.GA1660-nlVyBo/8EO9N0TnZuCh8vA@public.gmane.org>
2004-03-03 11:43 ` Sebastian Seifert
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox