From: Nicholas Piggin <npiggin@gmail.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: Nicholas Piggin <npiggin@gmail.com>, Anton Blanchard <anton@samba.org>
Subject: [RFC][PATCH 00/14] syscall, context switch, idle performance stuff
Date: Fri, 2 Jun 2017 17:39:32 +1000 [thread overview]
Message-ID: <20170602073946.8983-1-npiggin@gmail.com> (raw)
Hi,
I'm sitting on a few performance improvements that I'm hoping to
try get polished up enough to merge, but it's taking a while, so
I juts post them out for review because I think most are at the
stage where they are good enough to start getting some reviews on.
After this series, light weight context switch (yield, threads,
same CPU) improves about 10% on my POWER8 (2.1m -> 2.3m per second
with powernv_defconfig and tick based time accounting).
Ping-pong context switches improve similarly, particularly when
you force them to go to nap. I'm still gathering up numbers. I
haven't been able to get POWER9 numbers yet.
Thanks,
Nick
Nicholas Piggin (14):
powerpc/64s: optimize hypercall/syscall
powerpc/64: syscall avoid restore_math call if possible
powerpc/64s: idle move soft interrupt mask logic into C code
powerpc/64s: process interrupts from system reset wakeup
powerpc/64s: msgclr when handling doorbell exceptions
powerpc/64s: branch to idle handler with virtual mode offset
powerpc/64s: idle avoid SRR usage in idle sleep/wake paths
powerpc/64s: idle set polling before enabling irqs
powerpc/64s: idle read mostly for common globals
powerpc/64: CTRL[RUN] run-latch setting optimisation
powerpc/64s: idle no memory barrier after break from idle
powerpc/64s: Leave IRQs hard enabled over context switch for radix
powerpc/64: context switch can avoid reservation clear
powerpc/64: context switch additional hwsync can be avoided
arch/powerpc/include/asm/barrier.h | 4 +
arch/powerpc/include/asm/dbell.h | 13 +++
arch/powerpc/include/asm/exception-64s.h | 17 ++-
arch/powerpc/include/asm/hw_irq.h | 1 +
arch/powerpc/include/asm/machdep.h | 1 +
arch/powerpc/include/asm/ppc-opcode.h | 3 +
arch/powerpc/include/asm/processor.h | 8 +-
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/entry_64.S | 94 +++++++++------
arch/powerpc/kernel/exceptions-64s.S | 191 ++++++++++++++++++++++++-------
arch/powerpc/kernel/idle_book3s.S | 135 ++++++----------------
arch/powerpc/kernel/process.c | 30 +++--
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 +-
arch/powerpc/platforms/powernv/idle.c | 122 ++++++++++++++++++--
arch/powerpc/platforms/powernv/subcore.c | 3 +-
drivers/cpuidle/cpuidle-powernv.c | 37 +++---
drivers/cpuidle/cpuidle-pseries.c | 22 ++--
kernel/sched/core.c | 9 ++
18 files changed, 469 insertions(+), 230 deletions(-)
--
2.11.0
next reply other threads:[~2017-06-02 7:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-02 7:39 Nicholas Piggin [this message]
2017-06-02 7:39 ` [PATCH 01/14] powerpc/64s: optimize hypercall/syscall Nicholas Piggin
2017-06-02 7:39 ` [PATCH 02/14] powerpc/64: syscall avoid restore_math call if possible Nicholas Piggin
2017-06-02 7:39 ` [PATCH 03/14] powerpc/64s: idle move soft interrupt mask logic into C code Nicholas Piggin
2017-06-02 7:39 ` [PATCH 04/14] powerpc/64s: process interrupts from system reset wakeup Nicholas Piggin
2017-06-02 7:39 ` [PATCH 05/14] powerpc/64s: msgclr when handling doorbell exceptions Nicholas Piggin
2017-06-02 7:39 ` [PATCH 06/14] powerpc/64s: branch to idle handler with virtual mode offset Nicholas Piggin
2017-06-02 7:39 ` [PATCH 07/14] powerpc/64s: idle avoid SRR usage in idle sleep/wake paths Nicholas Piggin
2017-06-02 13:37 ` kbuild test robot
2017-06-02 7:39 ` [PATCH 08/14] powerpc/64s: idle set polling before enabling irqs Nicholas Piggin
2017-06-02 7:39 ` [PATCH 09/14] powerpc/64s: idle read mostly for common globals Nicholas Piggin
2017-06-02 7:39 ` [PATCH 10/14] powerpc/64: CTRL[RUN] run-latch setting optimisation Nicholas Piggin
2017-06-02 7:39 ` [PATCH 11/14] powerpc/64s: idle no memory barrier after break from idle Nicholas Piggin
2017-06-02 7:39 ` [PATCH 12/14] powerpc/64s: Leave IRQs hard enabled over context switch for radix Nicholas Piggin
2017-06-02 7:39 ` [PATCH 13/14] powerpc/64: context switch can avoid reservation clear Nicholas Piggin
2017-06-02 7:39 ` [PATCH 14/14] powerpc/64: context switch additional hwsync can be avoided 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=20170602073946.8983-1-npiggin@gmail.com \
--to=npiggin@gmail.com \
--cc=anton@samba.org \
--cc=linuxppc-dev@lists.ozlabs.org \
/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).