linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@au1.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>, linuxppc-dev@lists.ozlabs.org
Cc: "Gautham R . Shenoy" <ego@linux.vnet.ibm.com>,
	"Shreyas B . Prabhu" <shreyas@linux.vnet.ibm.com>
Subject: Re: [PATCH 00/14 v2] idle performance improvements
Date: Mon, 12 Jun 2017 14:25:24 +1000	[thread overview]
Message-ID: <1497241524.2897.1.camel@au1.ibm.com> (raw)
In-Reply-To: <20170611093102.2025-1-npiggin@gmail.com>

On Sun, 2017-06-11 at 19:30 +1000, Nicholas Piggin wrote:
> 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).

What do you mean ? We shouldn't be going to sleep with the CPU thinking
it's interrupts are off, otherwise we end up effectively "taking an
interrupt while off" which is not right and it will cause accounting to
think we are off for too long.

Is this a generic cpuidle problem or a powerpc issue ?

I'd rather we don't have to of those "prep_for_idle...". If necessary
sync the other one.

> - 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(-)
> 

  reply	other threads:[~2017-06-12  4:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-11  9:30 [PATCH 00/14 v2] idle performance improvements Nicholas Piggin
2017-06-12  4:25 ` Benjamin Herrenschmidt [this message]
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=1497241524.2897.1.camel@au1.ibm.com \
    --to=benh@au1.ibm.com \
    --cc=ego@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=npiggin@gmail.com \
    --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).