mbox series

[v3,0/3] target/arm: Reduce overhead of cpu_get_tb_cpu_state

Message ID 20190222024106.9167-1-richard.henderson@linaro.org
Headers show
Series target/arm: Reduce overhead of cpu_get_tb_cpu_state | expand

Message

Richard Henderson Feb. 22, 2019, 2:41 a.m. UTC
Changes since v2:
  * Do not cache VECLEN, VECSTRIDE, VFPEN.
    These variables come from VFP_FPSCR and VFP_FPEXC, not from
    system control registers.
  * Move HANDLER and STACKCHECK to rebuild_hflags_a32,
    instead of building them in rebuild_hflags_common.

Changes since v1:
  * Apparently I had started a last-minute API change, and failed to
    covert all of the users, and also failed to re-test afterward.
  * Retain assertions for --enable-debug-tcg.


r~



Richard Henderson (3):
  target/arm: Split out recompute_hflags et al
  target/arm: Rebuild hflags at el changes and MSR writes
  target/arm: Rely on hflags correct in cpu_get_tb_cpu_state

 target/arm/cpu.h           |  28 ++--
 target/arm/helper.h        |   3 +
 target/arm/internals.h     |   4 +
 linux-user/syscall.c       |   1 +
 target/arm/cpu.c           |   1 +
 target/arm/helper-a64.c    |   3 +
 target/arm/helper.c        | 266 ++++++++++++++++++++++---------------
 target/arm/machine.c       |   1 +
 target/arm/op_helper.c     |   1 +
 target/arm/translate-a64.c |   6 +-
 target/arm/translate.c     |  14 +-
 11 files changed, 212 insertions(+), 116 deletions(-)

-- 
2.17.2

Comments

Alex Bennée Feb. 22, 2019, 2:05 p.m. UTC | #1
Richard Henderson <richard.henderson@linaro.org> writes:

> Changes since v2:

>   * Do not cache VECLEN, VECSTRIDE, VFPEN.

>     These variables come from VFP_FPSCR and VFP_FPEXC, not from

>     system control registers.

>   * Move HANDLER and STACKCHECK to rebuild_hflags_a32,

>     instead of building them in rebuild_hflags_common.

>

> Changes since v1:

>   * Apparently I had started a last-minute API change, and failed to

>     covert all of the users, and also failed to re-test afterward.

>   * Retain assertions for --enable-debug-tcg.


I thought I was being clever by running our armhf test binaries on a
aarch64 image. However I have re-tested by doing a full armhf buster
install this time:

Tested-by: Alex Bennée <alex.bennee@linaro.org>


>

>

> r~

>

>

>

> Richard Henderson (3):

>   target/arm: Split out recompute_hflags et al

>   target/arm: Rebuild hflags at el changes and MSR writes

>   target/arm: Rely on hflags correct in cpu_get_tb_cpu_state

>

>  target/arm/cpu.h           |  28 ++--

>  target/arm/helper.h        |   3 +

>  target/arm/internals.h     |   4 +

>  linux-user/syscall.c       |   1 +

>  target/arm/cpu.c           |   1 +

>  target/arm/helper-a64.c    |   3 +

>  target/arm/helper.c        | 266 ++++++++++++++++++++++---------------

>  target/arm/machine.c       |   1 +

>  target/arm/op_helper.c     |   1 +

>  target/arm/translate-a64.c |   6 +-

>  target/arm/translate.c     |  14 +-

>  11 files changed, 212 insertions(+), 116 deletions(-)



--
Alex Bennée
Richard Henderson Feb. 22, 2019, 2:45 p.m. UTC | #2
On 2/22/19 6:05 AM, Alex Bennée wrote:
> 

> Richard Henderson <richard.henderson@linaro.org> writes:

> 

>> Changes since v2:

>>   * Do not cache VECLEN, VECSTRIDE, VFPEN.

>>     These variables come from VFP_FPSCR and VFP_FPEXC, not from

>>     system control registers.

>>   * Move HANDLER and STACKCHECK to rebuild_hflags_a32,

>>     instead of building them in rebuild_hflags_common.

>>

>> Changes since v1:

>>   * Apparently I had started a last-minute API change, and failed to

>>     covert all of the users, and also failed to re-test afterward.

>>   * Retain assertions for --enable-debug-tcg.

> 

> I thought I was being clever by running our armhf test binaries on a

> aarch64 image.


You and me both.  ;-P


r~
no-reply@patchew.org Feb. 27, 2019, 3:43 p.m. UTC | #3
Patchew URL: https://patchew.org/QEMU/20190222024106.9167-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Message-id: 20190222024106.9167-1-richard.henderson@linaro.org
Subject: [Qemu-devel] [PATCH v3 0/3] target/arm: Reduce overhead of cpu_get_tb_cpu_state
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
1d4a9cbd21 target/arm: Rely on hflags correct in cpu_get_tb_cpu_state
c6ed04439c target/arm: Rebuild hflags at el changes and MSR writes
37d8117eac target/arm: Split out recompute_hflags et al

=== OUTPUT BEGIN ===
1/3 Checking commit 37d8117eacef (target/arm: Split out recompute_hflags et al)
WARNING: Block comments use a leading /* on a separate line
#125: FILE: target/arm/helper.c:12860:
+    /* v8M always applies stack limit checks unless CCR.STKOFHFNMIGN is

WARNING: Block comments use a leading /* on a separate line
#170: FILE: target/arm/helper.c:12905:
+        /* If SVE is disabled, but FP is enabled,

total: 0 errors, 2 warnings, 368 lines checked

Patch 1/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/3 Checking commit c6ed04439c57 (target/arm: Rebuild hflags at el changes and MSR writes)
3/3 Checking commit 1d4a9cbd219d (target/arm: Rely on hflags correct in cpu_get_tb_cpu_state)
ERROR: Use g_assert or g_assert_not_reached
#75: FILE: target/arm/helper.c:12982:
+        g_assert_cmphex(flags, ==, check_flags);

total: 1 errors, 0 warnings, 34 lines checked

Patch 3/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190222024106.9167-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Feb. 27, 2019, 5:51 p.m. UTC | #4
Patchew URL: https://patchew.org/QEMU/20190222024106.9167-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Message-id: 20190222024106.9167-1-richard.henderson@linaro.org
Subject: [Qemu-devel] [PATCH v3 0/3] target/arm: Reduce overhead of cpu_get_tb_cpu_state
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/1550834773-873512-1-git-send-email-andrey.shinkevich@virtuozzo.com -> patchew/1550834773-873512-1-git-send-email-andrey.shinkevich@virtuozzo.com
Switched to a new branch 'test'
23f3cda99d target/arm: Rely on hflags correct in cpu_get_tb_cpu_state
d721906406 target/arm: Rebuild hflags at el changes and MSR writes
6fba240718 target/arm: Split out recompute_hflags et al

=== OUTPUT BEGIN ===
1/3 Checking commit 6fba240718be (target/arm: Split out recompute_hflags et al)
WARNING: Block comments use a leading /* on a separate line
#126: FILE: target/arm/helper.c:12860:
+    /* v8M always applies stack limit checks unless CCR.STKOFHFNMIGN is

WARNING: Block comments use a leading /* on a separate line
#171: FILE: target/arm/helper.c:12905:
+        /* If SVE is disabled, but FP is enabled,

total: 0 errors, 2 warnings, 368 lines checked

Patch 1/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/3 Checking commit d721906406a8 (target/arm: Rebuild hflags at el changes and MSR writes)
3/3 Checking commit 23f3cda99d91 (target/arm: Rely on hflags correct in cpu_get_tb_cpu_state)
ERROR: Use g_assert or g_assert_not_reached
#75: FILE: target/arm/helper.c:12982:
+        g_assert_cmphex(flags, ==, check_flags);

total: 1 errors, 0 warnings, 34 lines checked

Patch 3/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190222024106.9167-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Emilio Cota March 2, 2019, 1:49 a.m. UTC | #5
On Thu, Feb 21, 2019 at 18:41:03 -0800, Richard Henderson wrote:
> Changes since v2:

>   * Do not cache VECLEN, VECSTRIDE, VFPEN.

>     These variables come from VFP_FPSCR and VFP_FPEXC, not from

>     system control registers.

>   * Move HANDLER and STACKCHECK to rebuild_hflags_a32,

>     instead of building them in rebuild_hflags_common.


Tested-by: Emilio G. Cota <cota@braap.org>


You might want to add these numbers (I re-ran the benchmarks for v3)
to patch 3's commit log:

                        aarch64-linux-user SPEC06int (train set)
                     Host: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
         2.2 +--------------------------------------------------------------+
             |                                                              |
             |                                                after         |
           2 |-+.........................................+-+..............+-|
             |                                            |                 |
             |                                           *|*                |
             |                                           *|*      +-+       |
         1.8 |-+..........+-+............................+-+.......|......+-|
             |             |                             * *       |        |
             |           **|*               +-+     *+-+ * *      *|*       |
         1.6 |-+.........*+-+..............**|*.....*..*.*.*.*+-+.*|*.....+-|
             |           *  *              *+-+     *  * * * *+-+ *|*       |
             |           *  *              *  *     *  * * * *  * +-+       |
         1.4 |-+.........*..*......+-+.....*..*.....*..*.*.*.*..*.*.*.*+-++-|
             |           *  *     **|*     *  *     *  * * * *  * * * *+-+  |
             |  *+-+     *  *     *+-+     *  *     *  * * * *  * * * *  *  |
         1.2 |-+*+-+.....*..*.....*..*.....*..*.....*..*.*.*.*..*.*.*.*..*+-|
             |  *  * +-+ *  *     *  * +-+ *  *     *  * * * *  * * * *  *  |
             |  *  *  |  *  * +-+ *  * +-+ *  * +-+ *  * * * *  * * * *  *  |
             |  *  * *|* *  * *|* *  * * * *  * +-+ *  * * * *  * * * *  *  |
           1 |++*++*++-++*++*++-++*++*+*+*+*++*+*+*+*++*+*+*+*++*+*+*+*++*++|
             |  *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  *  |
             |  *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  *  |
         0.8 +--------------------------------------------------------------+
     400.perl401.bzi403.429445.456.462.libq464.471.omn483.xalancbgeomean
  png: https://imgur.com/wr4ODMw

Thanks,

		Emilio
no-reply@patchew.org March 2, 2019, 1:58 a.m. UTC | #6
Patchew URL: https://patchew.org/QEMU/20190222024106.9167-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20190222024106.9167-1-richard.henderson@linaro.org
Subject: [Qemu-devel] [PATCH v3 0/3] target/arm: Reduce overhead of cpu_get_tb_cpu_state

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/20190222024106.9167-1-richard.henderson@linaro.org -> patchew/20190222024106.9167-1-richard.henderson@linaro.org
Switched to a new branch 'test'
9819e46d70 target/arm: Rely on hflags correct in cpu_get_tb_cpu_state
a0f765dba8 target/arm: Rebuild hflags at el changes and MSR writes
d65ebaa1a8 target/arm: Split out recompute_hflags et al

=== OUTPUT BEGIN ===
1/3 Checking commit d65ebaa1a826 (target/arm: Split out recompute_hflags et al)
WARNING: Block comments use a leading /* on a separate line
#127: FILE: target/arm/helper.c:12837:
+    /* v8M always applies stack limit checks unless CCR.STKOFHFNMIGN is

WARNING: Block comments use a leading /* on a separate line
#172: FILE: target/arm/helper.c:12882:
+        /* If SVE is disabled, but FP is enabled,

total: 0 errors, 2 warnings, 368 lines checked

Patch 1/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/3 Checking commit a0f765dba8a1 (target/arm: Rebuild hflags at el changes and MSR writes)
3/3 Checking commit 9819e46d702e (target/arm: Rely on hflags correct in cpu_get_tb_cpu_state)
ERROR: Use g_assert or g_assert_not_reached
#76: FILE: target/arm/helper.c:12959:
+        g_assert_cmphex(flags, ==, check_flags);

total: 1 errors, 0 warnings, 34 lines checked

Patch 3/3 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190222024106.9167-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com