qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 24f681: target/i386: Add tcg/access.[ch]


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 24f681: target/i386: Add tcg/access.[ch]
Date: Sun, 26 May 2024 17:51:44 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 24f68139247fd5a265874c743c46f293bd3432fa
      
https://github.com/qemu/qemu/commit/24f68139247fd5a265874c743c46f293bd3432fa
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    A target/i386/tcg/access.c
    A target/i386/tcg/access.h
    M target/i386/tcg/meson.build

  Log Message:
  -----------
  target/i386: Add tcg/access.[ch]

Provide a method to amortize page lookup across large blocks.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: d3e8b648ab7f94f0e9235ade9977954e426991a0
      
https://github.com/qemu/qemu/commit/d3e8b648ab7f94f0e9235ade9977954e426991a0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_fldt, do_fstt to X86Access

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4526f58a2727a37c829c21c3f095226601099552
      
https://github.com/qemu/qemu/commit/4526f58a2727a37c829c21c3f095226601099552
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert helper_{fbld,fbst}_ST0 to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: bc13c2dd01288d26bfb38bdc958ad58b58661ac0
      
https://github.com/qemu/qemu/commit/bc13c2dd01288d26bfb38bdc958ad58b58661ac0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_fldenv to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 505e2ef744b3ebd0a28a94ed9b00f99595b0cf6a
      
https://github.com/qemu/qemu/commit/505e2ef744b3ebd0a28a94ed9b00f99595b0cf6a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_fstenv to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 94f60f8f1c07de1449f798141cf13ba93f07d875
      
https://github.com/qemu/qemu/commit/94f60f8f1c07de1449f798141cf13ba93f07d875
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_fsave, do_frstor to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: b7e6d3ad30b53121ff184e93d33dcf61e354c9bb
      
https://github.com/qemu/qemu/commit/b7e6d3ad30b53121ff184e93d33dcf61e354c9bb
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xsave_{fpu,mxcr,sse} to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: e41d2eaf17f1bcd0b5c085b5c9b6151b592ee620
      
https://github.com/qemu/qemu/commit/e41d2eaf17f1bcd0b5c085b5c9b6151b592ee620
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xrstor_{fpu,mxcr,sse} to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 6d030aab29f8713776aa2fec31bc94bb98a96e55
      
https://github.com/qemu/qemu/commit/6d030aab29f8713776aa2fec31bc94bb98a96e55
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  tagret/i386: Convert do_fxsave, do_fxrstor to X86Access

Move the alignment fault from do_* to helper_*, as it need
not apply to usage from within user-only signal handling.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 6b1b736bae9b89882ed293d0256f2a0de1d03f9c
      
https://github.com/qemu/qemu/commit/6b1b736bae9b89882ed293d0256f2a0de1d03f9c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xsave_* to X86Access

The body of do_xsave is now fully converted.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 58955a96d9ce59ada80af88e4ba7c8ecfb79c87f
      
https://github.com/qemu/qemu/commit/58955a96d9ce59ada80af88e4ba7c8ecfb79c87f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xrstor_* to X86Access

The body of do_xrstor is now fully converted.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: a8f68831c6dfd1903555e4402addd5138f78db97
      
https://github.com/qemu/qemu/commit/a8f68831c6dfd1903555e4402addd5138f78db97
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Split out do_xsave_chk

This path is not required by user-only, and can in fact
be shared between xsave and xrstor.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: a2d64d61c1fa1826344fef02e5cc7e331d307e0f
      
https://github.com/qemu/qemu/commit/a2d64d61c1fa1826344fef02e5cc7e331d307e0f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/cpu.h
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Add rbfm argument to cpu_x86_{xsave,xrstor}

For now, continue to pass all 1's from signal.c.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 6dba8b471cb2b40140b672a9ae9b965a7a132409
      
https://github.com/qemu/qemu/commit/6dba8b471cb2b40140b672a9ae9b965a7a132409
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/cpu.h

  Log Message:
  -----------
  target/i386: Add {hw,sw}_reserved to X86LegacyXSaveArea

This completes the 512 byte structure, allowing the union to
be removed.  Assert that the structure layout is as expected.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 077c43eb0d30a257ee33f1b48ea5b29eafcf4eb5
      
https://github.com/qemu/qemu/commit/077c43eb0d30a257ee33f1b48ea5b29eafcf4eb5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Drop xfeatures_size from sigcontext arithmetic

This is subtracting sizeof(target_fpstate_fxsave) in
TARGET_FXSAVE_SIZE, then adding it again via &fxsave->xfeatures.
Perform the same computation using xstate_size alone.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: fcc9b64d0767563adb03c933a208e7ba5250c6f0
      
https://github.com/qemu/qemu/commit/fcc9b64d0767563adb03c933a208e7ba5250c6f0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Remove xfeatures from target_fpstate_fxsave

This is easily computed by advancing past the structure.
At the same time, replace the magic number "64".

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 3b6e9491e3e8a51e7eb8d25316b75ca4a58b22ff
      
https://github.com/qemu/qemu/commit/3b6e9491e3e8a51e7eb8d25316b75ca4a58b22ff
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Replace target_fpstate_fxsave with X86LegacyXSaveArea

Use the structure definition from target/i386/cpu.h.
The only minor quirk is re-casting the sw_reserved
area to the OS specific struct target_fpx_sw_bytes.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5cc77ebe9b9e07fcd06011dc23162069ef8c5eff
      
https://github.com/qemu/qemu/commit/5cc77ebe9b9e07fcd06011dc23162069ef8c5eff
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Split out struct target_fregs_state

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: bae0455ce3ded1df80dee4e844194568063ad093
      
https://github.com/qemu/qemu/commit/bae0455ce3ded1df80dee4e844194568063ad093
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Fix -mregparm=3 for signal delivery

Since v2.6.19, the kernel has supported -mregparm=3.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c536f9b77ccb771fc480ec8d3c1cefac243eac73
      
https://github.com/qemu/qemu/commit/c536f9b77ccb771fc480ec8d3c1cefac243eac73
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Return boolean success from restore_sigcontext

Invert the sense of the return value and use bool.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9e9b7d4c15b1cbefc608487a38e10c8f708fb187
      
https://github.com/qemu/qemu/commit/9e9b7d4c15b1cbefc608487a38e10c8f708fb187
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Return boolean success from xrstor_sigcontext

Invert the sense of the return value and use bool.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: a7365e984d27b961f381cf3be46682e4da5ab6f7
      
https://github.com/qemu/qemu/commit/a7365e984d27b961f381cf3be46682e4da5ab6f7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M tests/tcg/x86_64/Makefile.target
    A tests/tcg/x86_64/test-1648.c

  Log Message:
  -----------
  linux-user/i386: Fix allocation and alignment of fp state

For modern cpus, the kernel uses xsave to store all extra
cpu state across the signal handler.  For xsave/xrstor to
work, the pointer must be 64 byte aligned.  Moreover, the
regular part of the signal frame must be 16 byte aligned.

Attempt to mirror the kernel code as much as possible.
Use enum FPStateKind instead of use_xsave() and use_fxsr().

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1648
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 7973eb943e670ea66a19e04868e01803c7594246
      
https://github.com/qemu/qemu/commit/7973eb943e670ea66a19e04868e01803c7594246
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c

  Log Message:
  -----------
  linux-user/i386: Honor xfeatures in xrstor_sigcontext

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c6e6d1508ac309e39fec827c3719c86c10cd8975
      
https://github.com/qemu/qemu/commit/c6e6d1508ac309e39fec827c3719c86c10cd8975
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xsave to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: d5dc3a927ae7e64bc998d9aa29020426b4e97f8a
      
https://github.com/qemu/qemu/commit/d5dc3a927ae7e64bc998d9aa29020426b4e97f8a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Convert do_xrstor to X86Access

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 76d8d0f85caf629b4df314e656d20ad6565bab9b
      
https://github.com/qemu/qemu/commit/76d8d0f85caf629b4df314e656d20ad6565bab9b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/cpu.h
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Pass host pointer and size to cpu_x86_{fsave,frstor}

We have already validated the memory region in the course of
validating the signal frame.  No need to do it again within
the helper function.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9c2fb9e1d589fbda266d8db611b9d3a38ab96a3c
      
https://github.com/qemu/qemu/commit/9c2fb9e1d589fbda266d8db611b9d3a38ab96a3c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/cpu.h
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Pass host pointer and size to cpu_x86_{fxsave,fxrstor}

We have already validated the memory region in the course of
validating the signal frame.  No need to do it again within
the helper function.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 701890bdd09b289fd9cb852e714e91373088b0f3
      
https://github.com/qemu/qemu/commit/701890bdd09b289fd9cb852e714e91373088b0f3
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/cpu.h
    M target/i386/tcg/fpu_helper.c

  Log Message:
  -----------
  target/i386: Pass host pointer and size to cpu_x86_{xsave,xrstor}

We have already validated the memory region in the course of
validating the signal frame.  No need to do it again within
the helper function.

In addition, return failure when the header contains invalid
xstate_bv.  The kernel handles this via exception handling
within XSTATE_OP within xrstor_from_user_sigframe.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 60b54b67c63d8f076152e0f7dccf39854dfc6a77
      
https://github.com/qemu/qemu/commit/60b54b67c63d8f076152e0f7dccf39854dfc6a77
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M linux-user/i386/signal.c
    M target/i386/cpu.h
    A target/i386/tcg/access.c
    A target/i386/tcg/access.h
    M target/i386/tcg/fpu_helper.c
    M target/i386/tcg/meson.build
    M tests/tcg/x86_64/Makefile.target
    A tests/tcg/x86_64/test-1648.c

  Log Message:
  -----------
  Merge tag 'pull-lu-20240526' of https://gitlab.com/rth7680/qemu into staging

target/i386: Introduce X86Access and use for xsave and friends
linux-user/i386: Fix allocation and alignment of fp state in signal frame

# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmZT2GwdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV87pQf9F/cmrKQG1mVWKmJd
# MI7l63lbxejdgAADv1nmro+oapCsJSaQeUSrYp904ydqJjVfBJkaoXfknGsvxrNA
# oW7nEuYt0sBKdaBUKhYpMOJ3ivfw7lVVMJmjNv9ngZRhW+WOoJrBHoleUkVLiM7D
# rxkMLL+LQ7BR9i0Lv1unorOkqUPGNOnEd45qRn6k1g/Qnqi8SNMzxFwO8+232u8m
# EG9un/oh4mKPyb5vSg3Y4JLg+yDKCRScBqBU1wcKFe1u+umBkv2BNcU+k62AJh1q
# bv8i1n+X/dFAd1aj0NEupi04EOZIof5m3T4YIWg7M4I94NiFWNZ18vgskkmiO+Mo
# 0KPd/A==
# =sYrE
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 26 May 2024 05:48:44 PM PDT
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" 
[ultimate]

* tag 'pull-lu-20240526' of https://gitlab.com/rth7680/qemu: (28 commits)
  target/i386: Pass host pointer and size to cpu_x86_{xsave,xrstor}
  target/i386: Pass host pointer and size to cpu_x86_{fxsave,fxrstor}
  target/i386: Pass host pointer and size to cpu_x86_{fsave,frstor}
  target/i386: Convert do_xrstor to X86Access
  target/i386: Convert do_xsave to X86Access
  linux-user/i386: Honor xfeatures in xrstor_sigcontext
  linux-user/i386: Fix allocation and alignment of fp state
  linux-user/i386: Return boolean success from xrstor_sigcontext
  linux-user/i386: Return boolean success from restore_sigcontext
  linux-user/i386: Fix -mregparm=3 for signal delivery
  linux-user/i386: Split out struct target_fregs_state
  linux-user/i386: Replace target_fpstate_fxsave with X86LegacyXSaveArea
  linux-user/i386: Remove xfeatures from target_fpstate_fxsave
  linux-user/i386: Drop xfeatures_size from sigcontext arithmetic
  target/i386: Add {hw,sw}_reserved to X86LegacyXSaveArea
  target/i386: Add rbfm argument to cpu_x86_{xsave,xrstor}
  target/i386: Split out do_xsave_chk
  target/i386: Convert do_xrstor_* to X86Access
  target/i386: Convert do_xsave_* to X86Access
  tagret/i386: Convert do_fxsave, do_fxrstor to X86Access
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/78ef97c0aa6c...60b54b67c63d

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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