qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFT/RFH PATCH 00/16] PPC speedup patches for TCG
@ 2014-08-28 17:14 Paolo Bonzini
  2014-08-28 17:14 ` [Qemu-devel] [PATCH 01/17] ppc: do not look at the MMU index Paolo Bonzini
                   ` (17 more replies)
  0 siblings, 18 replies; 50+ messages in thread
From: Paolo Bonzini @ 2014-08-28 17:14 UTC (permalink / raw)
  To: qemu-devel; +Cc: dgibson, qemu-ppc, tommusta

Hi everyone,

these patches provide a speedup around 20% when running PPC softmmu
emulation on x86 machines (10% for user-mode emulation).  There are
actually two separate speedups here:

* avoiding TLB flushing on every kernel<->user transition (patches 1-2)

* rewriting CR handling to use 32 1-bit registers instead of 8
  4-bit registers (patches 3-16)

They must not be too shoddy; they boot a Linux guest fine. :) And the
speedup is very interesting of course.  The three problems with it are:

* I don't have a good testsuite.  So floating-point, decimal and SPE
  are mostly untested

* I don't have much time to work on them (they are about a year old and
  I have just rebased them).

* Patch 15 is a monster and hard to review, but I have no idea how to
  split it.

Please take a look and if you are interested help in any way you can. :)

I think patches 1-13 can be separated, as the two optimizations are
independent and patches 3-13 are mostly bug fixes and cleanups.

Paolo

Paolo Bonzini (17):
  ppc: do not look at the MMU index
  ppc: avoid excessive TLB flushing
  ppc: fix monitor access to CR
  ppc: use ARRAY_SIZE in gdbstub.c
  ppc: use CRF_* in fpu_helper.c
  ppc: use CRF_* in int_helper.c
  ppc: fix result of DLMZB when no zero bytes are found
  ppc: introduce helpers for mfocrf/mtocrf
  ppc: reorganize gen_compute_fprf
  ppc: introduce gen_op_mfcr/gen_op_mtcr
  ppc: rename gen_set_cr6_from_fpscr
  ppc: use movcond for isel
  ppc: compute mask from BI using right shift
  ppc: introduce ppc_get_crf and ppc_set_crf
  ppc: store CR registers in 32 1-bit registers
  ppc: inline ppc_get_crf/ppc_set_crf when clearer
  ppc: dump all 32 CR bits

 cputlb.c                    |  19 ++
 hw/ppc/spapr_hcall.c        |   6 +-
 include/exec/exec-all.h     |   5 +
 linux-user/elfload.c        |   4 +-
 linux-user/main.c           |   9 +-
 linux-user/signal.c         |   8 +-
 monitor.c                   |   2 +-
 target-ppc/cpu.h            |  43 +++-
 target-ppc/excp_helper.c    |   8 +-
 target-ppc/fpu_helper.c     |  73 +++----
 target-ppc/gdbstub.c        |   8 +-
 target-ppc/helper.h         |   9 +-
 target-ppc/helper_regs.h    |  52 +++--
 target-ppc/int_helper.c     |  64 ++++--
 target-ppc/kvm.c            |  10 +-
 target-ppc/machine.c        |   9 +
 target-ppc/translate.c      | 470 ++++++++++++++++++++++----------------------
 target-ppc/translate_init.c |   5 +
 18 files changed, 461 insertions(+), 343 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2014-09-15 13:39 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-28 17:14 [Qemu-devel] [RFT/RFH PATCH 00/16] PPC speedup patches for TCG Paolo Bonzini
2014-08-28 17:14 ` [Qemu-devel] [PATCH 01/17] ppc: do not look at the MMU index Paolo Bonzini
2014-08-28 17:14 ` [Qemu-devel] [PATCH 02/17] ppc: avoid excessive TLB flushing Paolo Bonzini
2014-08-28 17:30   ` Peter Maydell
2014-08-28 19:35     ` Paolo Bonzini
2014-09-05  6:00       ` David Gibson
2014-09-05  7:10   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-09-05 12:11     ` Paolo Bonzini
2014-09-09 16:42       ` Paolo Bonzini
2014-09-09 20:51         ` Alexander Graf
2014-08-28 17:14 ` [Qemu-devel] [PATCH 03/17] ppc: fix monitor access to CR Paolo Bonzini
2014-09-03 18:21   ` Tom Musta
2014-09-05  7:10     ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-08-28 17:15 ` [Qemu-devel] [PATCH 04/17] ppc: use ARRAY_SIZE in gdbstub.c Paolo Bonzini
2014-09-03 18:21   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 05/17] ppc: use CRF_* in fpu_helper.c Paolo Bonzini
2014-09-03 18:21   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 06/17] ppc: use CRF_* in int_helper.c Paolo Bonzini
2014-09-03 18:28   ` Tom Musta
2014-09-05  7:12     ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-08-28 17:15 ` [Qemu-devel] [PATCH 07/17] ppc: fix result of DLMZB when no zero bytes are found Paolo Bonzini
2014-09-03 18:28   ` Tom Musta
2014-09-05  7:26     ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-08-28 17:15 ` [Qemu-devel] [PATCH 08/17] ppc: introduce helpers for mfocrf/mtocrf Paolo Bonzini
2014-09-03 18:28   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 09/17] ppc: reorganize gen_compute_fprf Paolo Bonzini
2014-09-03 18:29   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 10/17] ppc: introduce gen_op_mfcr/gen_op_mtcr Paolo Bonzini
2014-09-03 18:58   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 11/17] ppc: rename gen_set_cr6_from_fpscr Paolo Bonzini
2014-09-03 19:41   ` Tom Musta
2014-09-05  7:27     ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-08-28 17:15 ` [Qemu-devel] [PATCH 12/17] ppc: use movcond for isel Paolo Bonzini
2014-08-29 18:30   ` Richard Henderson
2014-09-03 19:41   ` Tom Musta
2014-09-15 13:39     ` Paolo Bonzini
2014-08-28 17:15 ` [Qemu-devel] [PATCH 13/17] ppc: compute mask from BI using right shift Paolo Bonzini
2014-09-03 20:59   ` Tom Musta
2014-09-05  7:29     ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-08-28 17:15 ` [Qemu-devel] [PATCH 14/17] ppc: introduce ppc_get_crf and ppc_set_crf Paolo Bonzini
2014-09-04 18:26   ` Tom Musta
2014-08-28 17:15 ` [Qemu-devel] [PATCH 15/17] ppc: store CR registers in 32 1-bit registers Paolo Bonzini
2014-09-04 18:27   ` Tom Musta
2014-09-09 15:44     ` Paolo Bonzini
2014-09-09 16:41       ` Paolo Bonzini
2014-09-09 16:03     ` Richard Henderson
2014-09-09 16:26       ` Paolo Bonzini
2014-08-28 17:15 ` [Qemu-devel] [PATCH 16/17] ppc: inline ppc_get_crf/ppc_set_crf when clearer Paolo Bonzini
2014-08-28 17:15 ` [Qemu-devel] [PATCH 17/17] ppc: dump all 32 CR bits Paolo Bonzini
2014-08-28 18:05 ` [Qemu-devel] [RFT/RFH PATCH 00/16] PPC speedup patches for TCG Tom Musta

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