qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 5d630c: target/xtensa: rework zero overhead l


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 5d630c: target/xtensa: rework zero overhead loops implemen...
Date: Thu, 24 Jan 2019 02:05:34 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 5d630cef4f91fd842df3b0b98ae8d3ac6eb2ce4a
      
https://github.com/qemu/qemu/commit/5d630cef4f91fd842df3b0b98ae8d3ac6eb2ce4a
  Author: Max Filippov <address@hidden>
  Date:   2019-01-11 (Fri, 11 Jan 2019)

  Changed paths:
    M target/xtensa/cpu.h
    M target/xtensa/helper.h
    M target/xtensa/op_helper.c
    M target/xtensa/overlay_tool.h
    M target/xtensa/translate.c

  Log Message:
  -----------
  target/xtensa: rework zero overhead loops implementation

Don't invalidate TB with the end of zero overhead loop when LBEG or LEND
change. Instead encode the distance from the start of the page where the
TB starts to the LEND in the TB cs_base and generate loopback code when
the next PC matches encoded LEND. Distance to a destination within the
same page and up to a maximum instruction length into the next page is
encoded literally, otherwise it's zero. The distance from LEND to LBEG
is also encoded in the cs_base: it's encoded literally when less than
256 or as 0 otherwise. This allows for TB chaining for the loopback
branch at the end of a loop for the most common loop sizes.

With this change the resulting emulation speed is about 10% higher in
softmmu mode on uClibc-ng and LTP tests. Emulation speed in linux
user mode is a few percent lower because there's no direct TB chaining
between different memory pages. Testing with lower limit on direct TB
chaining range shows gradual slowdown to ~15% for the block size of 64
bytes and ~50% for the block size of 32 bytes.

Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 9483bf27ee1ed3dca290f6c0150b1b161efdb222
      
https://github.com/qemu/qemu/commit/9483bf27ee1ed3dca290f6c0150b1b161efdb222
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    A target/xtensa/fpu_helper.c
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: extract FPU helpers

Move FPU-related HELPER functions from op_helper.c to fpu_helper.c
No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: c9ed50e82d640f164b06c9170382622a9adf9906
      
https://github.com/qemu/qemu/commit/c9ed50e82d640f164b06c9170382622a9adf9906
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    M target/xtensa/op_helper.c
    A target/xtensa/win_helper.c

  Log Message:
  -----------
  target/xtensa: extract windowed registers helpers

Move helper functions related to register windows from op_helper.c to
win_helper.c. No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 7e5e5a630245727854ac17a973bff1f3b3d87743
      
https://github.com/qemu/qemu/commit/7e5e5a630245727854ac17a973bff1f3b3d87743
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    M target/xtensa/helper.c
    A target/xtensa/mmu_helper.c
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: extract MMU helpers

Move MMU-related helper functions from op_helper.c and helper.c to
mmu_helper.c. No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 8803bfea0ea6dee8f44e56775ed77eb4175bb916
      
https://github.com/qemu/qemu/commit/8803bfea0ea6dee8f44e56775ed77eb4175bb916
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    A target/xtensa/dbg_helper.c
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: extract debug helpers

Move HELPER functions related to native debugging from op_helper.c to
dbg_helper.c. No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 8d918d656a1c4bb2300928468e27c53d72420bb9
      
https://github.com/qemu/qemu/commit/8d918d656a1c4bb2300928468e27c53d72420bb9
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    A target/xtensa/exc_helper.c
    M target/xtensa/helper.c
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: extract interrupt and exception helpers

Move helper functions related to interrupt and exception handling from
op_helper.c and helper.c to exc_helper.c. No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: d9908e037eb34d62802dbf86e9f588b78b1c159d
      
https://github.com/qemu/qemu/commit/d9908e037eb34d62802dbf86e9f588b78b1c159d
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/helper.h
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: drop dump_state helper

Drop unused helper dump_state from op_helper.c

Signed-off-by: Max Filippov <address@hidden>


  Commit: 9584116f94c75411998703b76cc6a6e9e7fd7a8b
      
https://github.com/qemu/qemu/commit/9584116f94c75411998703b76cc6a6e9e7fd7a8b
  Author: Max Filippov <address@hidden>
  Date:   2019-01-13 (Sun, 13 Jan 2019)

  Changed paths:
    M target/xtensa/helper.c
    M target/xtensa/op_helper.c

  Log Message:
  -----------
  target/xtensa: move non-HELPER functions to helper.c

Move remaining non-HELPER functions from op_helper.c to helper.c.
No functional changes.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 6d809e7da943bb4b95b408fbf3d80d097c0f7d38
      
https://github.com/qemu/qemu/commit/6d809e7da943bb4b95b408fbf3d80d097c0f7d38
  Author: Peter Maydell <address@hidden>
  Date:   2019-01-23 (Wed, 23 Jan 2019)

  Changed paths:
    M target/xtensa/Makefile.objs
    M target/xtensa/cpu.h
    A target/xtensa/dbg_helper.c
    A target/xtensa/exc_helper.c
    A target/xtensa/fpu_helper.c
    M target/xtensa/helper.c
    M target/xtensa/helper.h
    A target/xtensa/mmu_helper.c
    M target/xtensa/op_helper.c
    M target/xtensa/overlay_tool.h
    M target/xtensa/translate.c
    A target/xtensa/win_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/xtensa/tags/20190122-xtensa' into 
staging

target/xtensa: zero overhead loops rework/helpers split

- change xtensa zero overhead loops implementation to avoid invalidation
  of TBs corresponding to previous loop body when a new loop is
  encountered;
- extract helper function groups from op_helper.c and move them into
  separate source files: exc_helper.c (exception helpers), win_helper.c
  (windowed registers helpers), fpu_helper.c (floating point helpers),
  mmu_helper.c (memory management helpers) and dbg_helper.c (native debug
  helpers).

# gpg: Signature made Tue 22 Jan 2019 18:44:17 GMT
# gpg:                using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <address@hidden>"
# gpg:                 aka "Max Filippov <address@hidden>"
# gpg:                 aka "Max Filippov <address@hidden>"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB  17D8 51F9 CC91 F83F A044

* remotes/xtensa/tags/20190122-xtensa:
  target/xtensa: move non-HELPER functions to helper.c
  target/xtensa: drop dump_state helper
  target/xtensa: extract interrupt and exception helpers
  target/xtensa: extract debug helpers
  target/xtensa: extract MMU helpers
  target/xtensa: extract windowed registers helpers
  target/xtensa: extract FPU helpers
  target/xtensa: rework zero overhead loops implementation

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/f6b06fcceef4...6d809e7da943
      **NOTE:** GitHub Services has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      We will provide an alternative path for the email notifications by 
January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]