Skip to content
Snippets Groups Projects
  1. Jun 05, 2017
    • Emilio G. Cota's avatar
      target/arm: optimize indirect branches · 8a6b28c7
      Emilio G. Cota authored
      Speed up indirect branches by jumping to the target if it is valid.
      
      Softmmu measurements (see later commit for user-mode results):
      
      Note: baseline (i.e. speedup == 1x) is QEMU v2.9.0.
      
      - Impact on Boot time
      
      | setup  | ARM debian jessie boot+shutdown time | stddev |
      |--------+--------------------------------------+--------|
      | v2.9.0 |                                 8.84 |   0.07 |
      | +cross |                                 8.85 |   0.03 |
      | +jr    |                                 8.83 |   0.06 |
      
      -                            NBench, arm-softmmu (debian jessie guest). Host: Intel i7-4790K @ 4.00GHz
      
        1.3x +-+-------------------------------------------------------------------------------------------------------------+-+
             |                                                                                                                 |
             |   cross                                                          ####                                           |
       1.25x +cross+jr..........................................................#++#.........................................+-+
             |                                                        ####      #  #                                           |
             |                                                     +++#  #      #  #                                           |
             |                                      +++            ****  #      #  #                                           |
        1.2x +-+...................................####............*..*..#......#..#.........................................+-+
             |                                  ****  #            *  *  #      #  #     ####                                  |
             |                                  *  *  #            *  *  #      #  #     #  #                                  |
       1.15x +-+................................*..*..#............*..*..#......#..#.....#..#................................+-+
             |                                  *  *  #            *  *  #      #  #     #  #                                  |
             |                                  *  *  #      ####  *  *  #      #  #     #  #                                  |
             |                                  *  *  #      #  #  *  *  #      #  #     #  #                         ####     |
        1.1x +-+................................*..*..#......#..#..*..*..#......#..#.....#..#.........................#..#...+-+
             |                                  *  *  #      #  #  *  *  #      #  #     #  #                         #  #     |
             |                                  *  *  #      #  #  *  *  #      #  #     #  #                         #  #     |
       1.05x +-+..........................####..*..*..#......#..#..*..*..#......#..#.....#..#......+++............*****..#...+-+
             |                        *****  #  *  *  #      #  #  *  *  #  *****  #     #  #   +++ |    ****###  *   *  #     |
             |                        *+++*  #  *  *  #      #  #  *  *  #  *+++*  #  ****  #  *****###  *  *  #  *   *  #     |
             |     *****###  +++####  *   *  #  *  *  #  *****  #  *  *  #  *   *  #  *  *  #  * | *++#  *  *  #  *   *  #     |
          1x +-++-+*+++*-+#++****++#++*+-+*++#+-*++*++#-+*+++*-+#++*++*++#++*+-+*++#+-*++*++#-+*+++*-+#++*++*++#++*+-+*++#+-++-+
             |     *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #     |
             |     *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #  *  *  #  *   *  #     |
       0.95x +-+---*****###--****###--*****###--****###--*****###--****###--*****###--****###--*****###--****###--*****###---+-+
             ASSIGNMENT BITFIELD   FOURFP EMULATION   HUFFMAN   LU DECOMPOSITIONEURAL NNUMERIC SOSTRING SORT     hmean
        png: http://imgur.com/eOLmZNR
      
      
      
      NB. 'cross' represents the previous commit.
      
      Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
      Message-Id: <1493263764-18657-8-git-send-email-cota@braap.org>
      [rth: Replace gen_jr global variable with DISAS_EXIT state.]
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      8a6b28c7
    • Emilio G. Cota's avatar
      target/arm: optimize cross-page direct jumps in softmmu · 7ad55b4f
      Emilio G. Cota authored
      
      Instead of unconditionally exiting to the exec loop, use the
      lookup_and_goto_ptr helper to jump to the target if it is valid.
      
      Perf impact: see next commit's log.
      
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
      Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
      Message-Id: <1493263764-18657-7-git-send-email-cota@braap.org>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      7ad55b4f
    • Emilio G. Cota's avatar
      tcg/i386: implement goto_ptr · 5cb4ef80
      Emilio G. Cota authored
      
      Suggested-by: default avatarRichard Henderson <rth@twiddle.net>
      Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
      Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
      Message-Id: <1493263764-18657-6-git-send-email-cota@braap.org>
      [rth: Reuse goto_ptr epilogue for exit_tb 0.]
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      5cb4ef80
    • Emilio G. Cota's avatar
      tcg: Introduce goto_ptr opcode and tcg_gen_lookup_and_goto_ptr · cedbcb01
      Emilio G. Cota authored
      
      Instead of exporting goto_ptr directly to TCG frontends, export
      tcg_gen_lookup_and_goto_ptr(), which calls goto_ptr with the pointer
      returned by the lookup_tb_ptr() helper. This is the only use case
      we have for goto_ptr and lookup_tb_ptr, so having this function is
      very convenient. Furthermore, it trivially allows us to avoid calling
      the lookup helper if goto_ptr is not implemented by the backend.
      
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarEmilio G. Cota <cota@braap.org>
      Message-Id: <1493263764-18657-2-git-send-email-cota@braap.org>
      Message-Id: <1493263764-18657-3-git-send-email-cota@braap.org>
      Message-Id: <1493263764-18657-4-git-send-email-cota@braap.org>
      Message-Id: <1493263764-18657-5-git-send-email-cota@braap.org>
      [rth: Squashed 4 related commits.]
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      cedbcb01
    • Richard Henderson's avatar
      qemu/atomic: Loosen restrictions for 64-bit ILP32 hosts · 374aae65
      Richard Henderson authored
      
      We need to coordinate with the TCG_OVERSIZED_GUEST test in cputlb.c,
      and allow 64-bit atomics even though sizeof(void *) == 4.
      
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      374aae65
    • Richard Henderson's avatar
      tcg/sparc: Use the proper compilation flags for 32-bit · f1079bb8
      Richard Henderson authored
      
      We have required a v9 cpu since 9b9c37c3.
      However, the flags we were using did not reliably enable v8plus, which
      meant that the compiler didn't know it could inline 64-bit atomics.
      
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      f1079bb8
    • Richard Henderson's avatar
      target/nios2: Fix 64-bit ilp32 compilation · 1639a965
      Richard Henderson authored
      
      Avoid a "cast from pointer to integer of different size" warning
      by using the proper host type.
      
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      1639a965
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into staging · 199e19ee
      Peter Maydell authored
      
      trivial patches for 2017-06-05
      
      # gpg: Signature made Mon 05 Jun 2017 15:23:46 BST
      # gpg:                using RSA key 0x701B4F6B1A693E59
      # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>"
      # gpg:                 aka "Michael Tokarev <mjt@corpit.ru>"
      # gpg:                 aka "Michael Tokarev <mjt@debian.org>"
      # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D  4324 457C E0A0 8044 65C5
      #      Subkey fingerprint: 7B73 BAD6 8BE7 A2C2 8931  4B22 701B 4F6B 1A69 3E59
      
      * remotes/mjt/tags/trivial-patches-fetch: (21 commits)
        hw/core: nmi.c can be compiled as common-obj nowadays
        dump: fix memory_mapping_filter leak
        ide-test: check return of fwrite
        help: Add newline to end of thread option help text
        qemu-ga: remove useless allocation
        scsi/lsi53c895a: Remove unused lsi_mem_*() return value
        qapi: Fix some QMP documentation regressions
        hw/mips: add missing include
        register: display register prefix (name) since it is available
        hw/sparc: use ARRAY_SIZE() macro
        hw/xtensa: sim: use g_string/g_new
        target/arm: add data cache invalidation cp15 instruction to cortex-r5
        block: Correct documentation for BLOCK_WRITE_THRESHOLD
        trivial: Remove unneeded ifndef in memory.h
        altera_timer: fix incorrect memset
        configure: Detect native NetBSD curses(3)
        tests/libqtest: Print error instead of aborting when env variable is missing
        docs/qdev-device-use.txt: update section Default Devices
        docs qemu-doc: Avoid ide-drive, it's deprecated
        qemu-doc: Add hyperlinks to further license information
        ...
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      199e19ee
    • Thomas Huth's avatar
      hw/core: nmi.c can be compiled as common-obj nowadays · 03e947f9
      Thomas Huth authored
      
      The target-specific code in nmi.c has been removed with this commit:
      
      	commit f7e981f2
      	nmi: remove x86 specific nmi handling
      
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
      Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      03e947f9
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/elmarco/tags/chrfe-pull-request' into staging · cb8b8ef4
      Peter Maydell authored
      
      # gpg: Signature made Fri 02 Jun 2017 20:12:48 BST
      # gpg:                using RSA key 0xDAE8E10975969CE5
      # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>"
      # gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5
      
      * remotes/elmarco/tags/chrfe-pull-request:
        char: move char devices to chardev/
        char: make chr_fe_deinit() optionaly delete backend
        char: rename functions that are not part of fe
        char: move CharBackend handling in char-fe unit
        char: generalize qemu_chr_write_all()
        be-hci: use backend functions
        chardev: serial & parallel declaration to own headers
        chardev: move headers to include/chardev
        Remove/replace sysemu/char.h inclusion
        char-win: close file handle except with console
        char-win: rename hcom->file
        char-win: rename win_chr_init/poll win_chr_serial_init/poll
        char-win: remove WinChardev.len
        char-win: simplify win_chr_read()
        char: cast ARRAY_SIZE() as signed to silent warning on empty array
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      cb8b8ef4
  2. Jun 04, 2017
  3. Jun 02, 2017
Loading