Thread (5 messages) 5 messages, 4 authors, 2015-06-30

Re: Getting rid of i7300_idle's idle notifier?

From: Andy Lutomirski <luto@amacapital.net>
Date: 2015-06-06 16:06:39
Also in: lkml

On Thu, Jun 4, 2015 at 11:52 PM, Ingo Molnar [off-list ref] wrote:
* Andy Lutomirski [off-list ref] wrote:
quoted
On Thu, Jun 4, 2015 at 4:32 PM, Andy Lutomirski [off-list ref] wrote:
quoted
AFAICT the sole purpose for the hideous x86_64 idle_notifier mess is to
support i7300_idle.  IMO this junk does not belong in IRQ handling, etc.  Can
we redo this to work in some kind of generic way?

I have no idea why it makes sense to twiddle I/O AT registers in the beginning
of whatever IRQ wakes up the CPU.

Note that, if absolutely necessary, the ECX bit 0 MWAIT extension can be used
to reliably execute code before handling interrupts that wake us from idle.
That is, there could be a real cpuidle driver for that chip that does:

cli;
poke ioat;
mwait(ecx = 1);
poke ioat;
sti;

Or we could delete the driver entirely.
It's even easier than that.  Just shove the hooks into acpi_idle_do_entry or
similar and remove them from every other exit_idle call site in the kernel.
Yes!

Interested in doing a patch?
Barely.  I don't have the hardware, I have no idea what the registers
that i7300_idle pokes are for, and I have no particular desire to
start reading the datasheet.  I'm not even really sure that i7300
machines use acpi's processor_idle instead of intel_idle.

I'm happy to give the driver maintainers a few days to respond.  Andy?

--Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help