lkml.org 
[lkml]   [2001]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: ACPI slowdown...
Hi!

> Tony Hoyle wrote:
>
> I'm talking to myself :-)
>
> OK I see that safe_halt() will re-enable interrupts. However this is only
> called in S1. If your machine gets as far as S3 you have...
>
> for (;;) {
> unsigned long time;
> unsigned long diff;
>
> __cli();
> if (current->need_resched)
> goto out;
> if (acpi_bm_activity())
> goto sleep2;
>
> time = acpi_read_pm_timer();
> inb(acpi_pblk + ACPI_P_LVL3);
> /* Dummy read, force synchronization with the PMU */
> acpi_read_pm_timer();
> diff = acpi_compare_pm_timers(time, acpi_read_pm_timer());
>
> __sti();
> if (diff < acpi_c3_exit_latency)
> goto sleep2;
> }
>
> There is no halt here... the interrupts are enabled for only a couple of
> instructions (one comparison and a jump) before being disabled again.
> It seems to me if the computer gets into S3 it'll effectively die until
> some kind of busmaster device wakes it up (DMA?).

No.

If interrupts come in cli-ed section, it will be postponed until
sti. It then comes, and sets need_resched and recovers.

Pavel
--
I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:13    [W:0.034 / U:1.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site