Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1158880 > unrolled thread

Getting rid of i7300_idle's idle notifier?

Started byAndy Lutomirski <luto@kernel.org>
First post2015-06-05 01:40 +0200
Last post2015-06-05 02:40 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  Getting rid of i7300_idle's idle notifier? Andy Lutomirski <luto@kernel.org> - 2015-06-05 01:40 +0200
    Re: Getting rid of i7300_idle's idle notifier? Andy Lutomirski <luto@amacapital.net> - 2015-06-05 02:40 +0200

#1158880 — Getting rid of i7300_idle's idle notifier?

FromAndy Lutomirski <luto@kernel.org>
Date2015-06-05 01:40 +0200
SubjectGetting rid of i7300_idle's idle notifier?
Message-ID<pxMTU-7EQ-3@gated-at.bofh.it>
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.

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1158905

FromAndy Lutomirski <luto@amacapital.net>
Date2015-06-05 02:40 +0200
Message-ID<pxNPX-zC-1@gated-at.bofh.it>
In reply to#1158880
On Thu, Jun 4, 2015 at 4:32 PM, Andy Lutomirski <luto@kernel.org> wrote:
> 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.

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web