From: Nicholas Piggin <npiggin@gmail.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: Nicholas Piggin <npiggin@gmail.com>,
"Gautham R . Shenoy" <ego@linux.vnet.ibm.com>,
"Shreyas B . Prabhu" <shreyas@linux.vnet.ibm.com>
Subject: [PATCH 00/14 v2] idle performance improvements
Date: Sun, 11 Jun 2017 19:30:48 +1000 [thread overview]
Message-ID: <20170611093102.2025-1-npiggin@gmail.com> (raw)
I rebased this on the powerpc next tree.
A couple of things are changed since last post:
- Patch 1 now properly accounts for the fact the powernv idle
wakeups do not re-enable interrupts until the cpuidle driver
enables them. This was not quite right in the previous patch
(and prep_irq_for_idle() is not quite right for that case so
a new primitive has to be introduced).
- Patch to replace interrupts from system reset wakeup changed
rather than replaying directly, it just marks the IRQ in the
lazy pending bit and it will get replayed at the right time
when irqs are re-enabled.
Thanks,
Nick
Nicholas Piggin (14):
powerpc/64s: idle move soft interrupt mask logic into C code
powerpc/64s: idle hotplug lazy-irq simplification
powerpc/64s: idle provide a default idle for POWER9
powerpc/64s: idle process interrupts from system reset wakeup
powerpc/64s: msgclr when handling doorbell exceptions
powerpc/64s: interrupt replay balance the return branch predictor
powerpc/64s: idle branch to handler with virtual mode offset
powerpc/64s: idle avoid SRR usage in idle sleep/wake paths
powerpc/64s: idle hmi wakeup is unlikely
powerpc/64s: cpuidle set polling before enabling irqs
powerpc/64s: cpuidle read mostly for common globals
powerpc/64s: cpuidle no memory barrier after break from idle
powerpc/64: runlatch CTRL[RUN] set optimisation
powerpc/64s: idle runlatch switch is done with MSR[EE]=0
arch/powerpc/include/asm/dbell.h | 13 +++
arch/powerpc/include/asm/exception-64s.h | 17 +++-
arch/powerpc/include/asm/hw_irq.h | 5 ++
arch/powerpc/include/asm/machdep.h | 1 +
arch/powerpc/include/asm/ppc-opcode.h | 3 +
arch/powerpc/include/asm/processor.h | 10 +--
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/exceptions-64s.S | 33 ++++++--
arch/powerpc/kernel/idle_book3s.S | 135 +++++++++----------------------
arch/powerpc/kernel/irq.c | 58 ++++++++++++-
arch/powerpc/kernel/process.c | 12 +--
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 +-
arch/powerpc/platforms/powernv/idle.c | 90 +++++++++++++++++++--
arch/powerpc/platforms/powernv/smp.c | 31 ++++---
arch/powerpc/platforms/powernv/subcore.c | 3 +-
drivers/cpuidle/cpuidle-powernv.c | 37 +++++----
drivers/cpuidle/cpuidle-pseries.c | 22 +++--
17 files changed, 309 insertions(+), 170 deletions(-)
--
2.11.0
next reply other threads:[~2017-06-11 9:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-11 9:30 Nicholas Piggin [this message]
2017-06-12 4:25 ` [PATCH 00/14 v2] idle performance improvements Benjamin Herrenschmidt
2017-06-12 5:47 ` Nicholas Piggin
-- strict thread matches above, loose matches on Subject: below --
2017-06-11 23:58 Nicholas Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170611093102.2025-1-npiggin@gmail.com \
--to=npiggin@gmail.com \
--cc=ego@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=shreyas@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).