[tesla-dev] turnstiles block issue
Li, Aubrey
aubrey.li at intel.com
Fri Jul 11 06:09:33 PDT 2008
In idle thread, to support C3, ACPI spec recommends to use several
ACPI registers like BM_STS, etc. In solaris, we have ACPICA to read
and write these registers.
AcpiGetRegister (
UINT32 RegisterId,
UINT32 *ReturnValue,
UINT32 Flags)
AcpiSetRegister (
UINT32 RegisterId,
UINT32 Value,
UINT32 Flags)
The problem is, osl use mutex to lock these operation in case of the
multiprocessor race. That means it's possible CPU1 will hit turnstiles
block if the same time it requires the ACPI register access as CPU0.
That will cause a ASSERT failure. (t != CPU->cpu_idle_thread);
I think the interface in acpica need to be fixed. Or I have to implement
another interface function in c-state driver?
Before do that, I'll try to see if there is any better suggestions.
Thanks,
-Aubrey
More information about the tesla-dev
mailing list