[lkml]   [2001]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: ACPI slowdown...

> 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?).


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

I'm "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

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