Ilya Leoshkevich
b9f38374ac
linux-user: Fix semctl() strace
...
The indices of arguments used with semctl() are all off-by-1, because
arg1 is the ipc() command. Fix them. While at it, reuse print_semctl().
New output (for a small test program):
3540333 semctl(999,888,SEM_INFO,0x00007fe5051ee9a0) = -1 errno=14 (Bad address)
Fixes: 7ccfb2eb5f
("Fix warnings that would be caused by gcc flag -Wwrite-strings")
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Message-Id: <20240325192436.561154-2-iii@linux.ibm.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-26 18:20:36 -10:00
Peter Maydell
ba49d760eb
Merge tag 'pull-maintainer-final-130324-1' of https://gitlab.com/stsquad/qemu into staging
...
final updates for 9.0 (testing, gdbstub):
- fix the over rebuilding of test VMs
- support Xfer:siginfo:read in gdbstub
- fix double close() in gdbstub
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmXxkb0ACgkQ+9DbCVqe
# KkSw9wf+K+3kJYaZ2unEFku3Y6f4Z9XkrZCsFQFVNIJQgpYVc6peQyLUB1pZwzZc
# yoQhmTIgej16iRZc7gEcJhFl2zlX2vulE/m+wiaR0Chv3E2r510AGn4aWl+GLB9+
# /WduHaz1NobPW4JWaarxespa84Re8QZQgqkHX4nwYd++FW63E4uxydL4F1nmSNca
# eTA6RwS48h4wqPzHBX72hYTRUnYrDUSSGCGUDzK3NHumuPi+AQ77GLRMO0MTYFfy
# hWriapogCmghY+Xtn++eUIwDyh1CCnUT6Ntf5Qj06bZ+f6eaTwINM8QWhj9mxYX+
# 5/F5Q4JJDqRPYw/hF4wYXRsiZxTYFw==
# =BOWW
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 13 Mar 2024 11:45:01 GMT
# gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org >" [full]
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44
* tag 'pull-maintainer-final-130324-1' of https://gitlab.com/stsquad/qemu :
gdbstub: Fix double close() of the follow-fork-mode socket
tests/tcg: Add multiarch test for Xfer:siginfo:read stub
gdbstub: Add Xfer:siginfo:read stub
gdbstub: Save target's siginfo
linux-user: Move tswap_siginfo out of target code
gdbstub: Rename back gdb_handlesig
tests/vm: ensure we build everything by default
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-03-13 15:12:14 +00:00
Gustavo Romero
f84e313e02
gdbstub: Save target's siginfo
...
Save target's siginfo into gdbserver_state so it can be used later, for
example, in any stub that requires the target's si_signo and si_code.
This change affects only linux-user mode.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org >
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240309030901.1726211-4-gustavo.romero@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-13 11:43:52 +00:00
Gustavo Romero
4d6d8a05a0
linux-user: Move tswap_siginfo out of target code
...
Move tswap_siginfo from target code to handle_pending_signal. This will
allow some cleanups and having the siginfo ready to be used in gdbstub.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org >
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240309030901.1726211-3-gustavo.romero@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
2024-03-13 11:43:52 +00:00
Gustavo Romero
b6617e937e
gdbstub: Rename back gdb_handlesig
...
Rename gdb_handlesig_reason back to gdb_handlesig. There is no need to
add a wrapper for gdb_handlesig and rename it when a new parameter is
added.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240309030901.1726211-2-gustavo.romero@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
2024-03-13 11:43:52 +00:00
Peter Maydell
a1932d7cd6
Merge tag 'pull-tcg-20240312' of https://gitlab.com/rth7680/qemu into staging
...
linux-user: Add FIFREEZE and FITHAW ioctls
linux-user: Implement PR_*_{CHILD_SUBREAPER,SPECULATION_CTRL,TID_ADDRESS}
linux-user/elfload: Fixes for two Coverity CIDs
tcg/aarch64: Fixes for two TCG_COND_TST{EQ,NE} bugs
# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmXwoYwdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV99KwgAlUxbn0dPTXKmCkIE
# X+FAUllPYCZJwpTCa1h3P8taczLLeAocI4/iJxUudBE77I0HY7jv4FRnWrrdHr/V
# rQXjNkpQUByWr0Y4MB6Gl1+AKYo2SNqVHNP5AI4DdgDeSASXhP1aSlT5h4V4gdeX
# 1OwSnTQfONInJaoOQ7QQRf3JShKSYZSO7/sjMlJrubgGJBP8ivPxyPKiGbX3zUBS
# 6fI/ICLewC/g1fLPKaMHmqdrPK30ubPSGtnKdcz0q5NsT3hy6QWgtrQs5WAf3Liz
# 9WKGbq/y+qaFyLHat2tBpDnzT1Jso1SlIMkxL8kau3g6Pvk91E/pZjF5K3JOG8By
# PR4uQA==
# =FckT
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 12 Mar 2024 18:40:12 GMT
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org "
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org >" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F
* tag 'pull-tcg-20240312' of https://gitlab.com/rth7680/qemu :
tcg/aarch64: Fix tcg_out_brcond for test comparisons
tcg/aarch64: Fix tcg_out_cmp for test comparisons
linux-user/elfload: Fully initialize struct target_elf_prpsinfo
linux-user/elfload: Don't close an unopened file descriptor
linux-user: Implement PR_GET_TID_ADDRESS
linux-user: Implement PR_{GET,SET}_SPECULATION_CTRL
linux-user: Implement PR_{GET,SET}_CHILD_SUBREAPER
linux-user: Add FIFREEZE and FITHAW ioctls
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-03-12 21:33:16 +00:00
Richard Henderson
52e566b34f
linux-user/elfload: Fully initialize struct target_elf_prpsinfo
...
Fixes Coverity CID: 1534962
Fixes: 243c470662
("linux-user/elfload: Write corefile elf header in one block")
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:36:24 -10:00
Richard Henderson
b35348c7e6
linux-user/elfload: Don't close an unopened file descriptor
...
Fixes Coverity CID: 1534964
Fixes: 106f8da664
("linux-user/elfload: Open core file after vma_init")
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:36:19 -10:00
Richard Henderson
8de24b1563
linux-user: Implement PR_GET_TID_ADDRESS
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:35:01 -10:00
Richard Henderson
91511bd40f
linux-user: Implement PR_{GET,SET}_SPECULATION_CTRL
...
Both of these only pass and return integral values.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:35:01 -10:00
Richard Henderson
07726f522d
linux-user: Implement PR_{GET,SET}_CHILD_SUBREAPER
...
The "set" prctl passes through integral values.
The "get" prctl returns the value into a pointer.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1929
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:35:00 -10:00
Michael Vogt
f9eebe31a7
linux-user: Add FIFREEZE and FITHAW ioctls
...
Add missing FIFREEZE and FITHAW ioctls.
Signed-off-by: Michael Vogt <michael.vogt@gmail.com >
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Message-Id: <20240220105726.8852-1-michael.vogt@gmail.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-12 03:35:00 -10:00
Philippe Mathieu-Daudé
42e62aadfd
user: Prefer fast cpu_env() over slower CPU QOM cast macro
...
Mechanical patch produced running the command documented
in scripts/coccinelle/cpu_env.cocci_template header.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Warner Losh <imp@bsdimp.com >
Message-ID: <20240129164514.73104-30-philmd@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-03-12 12:04:25 +01:00
Philippe Mathieu-Daudé
94956d7b51
bulk: Call in place single use cpu_env()
...
Avoid CPUArchState local variable when cpu_env() is used once.
Mechanical patch using the following Coccinelle spatch script:
@@
type CPUArchState;
identifier env;
expression cs;
@@
{
- CPUArchState *env = cpu_env(cs);
... when != env
- env
+ cpu_env(cs)
... when != env
}
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20240129164514.73104-5-philmd@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-03-12 11:46:16 +01:00
Christoph Müllner
4f1a53b362
linux-user/riscv: Add Ztso extension to hwprobe
...
This patch exposes Ztso via hwprobe in QEMU's user space emulator.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-ID: <20240207122256.902627-3-christoph.muellner@vrull.eu >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-03-08 20:48:03 +10:00
Christoph Müllner
a3432cf227
linux-user/riscv: Sync hwprobe keys with Linux
...
Upstream Linux recently added many additional keys to the hwprobe API.
This patch adds support for all of them with the exception of Ztso,
which is currently not supported in QEMU.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-ID: <20240207115926.887816-3-christoph.muellner@vrull.eu >
[ Changes by AF:
- Fixup whitespace
]
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-03-08 16:26:52 +10:00
Christoph Müllner
0191131dba
linux-user/riscv: Add Zicboz extensions to hwprobe
...
Upstream Linux recently added RISC-V Zicboz support to the hwprobe API.
This patch introduces this for QEMU's user space emulator.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-ID: <20240207115926.887816-2-christoph.muellner@vrull.eu >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-03-08 15:42:49 +10:00
Ilya Leoshkevich
6604b05763
gdbstub: Call gdbserver_fork() both in parent and in child
...
The upcoming follow-fork-mode child support requires post-fork message
exchange between the parent and the child. Prepare gdbserver_fork() for
this purpose. Rename it to gdbserver_fork_end() to better reflect its
purpose.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Message-Id: <20240219141628.246823-8-iii@linux.ibm.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-9-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Ilya Leoshkevich
9d456e092d
{linux,bsd}-user: Pass pid to gdbserver_fork()
...
The upcoming follow-fork-mode child support requires knowing the child
pid. Pass it down.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Message-Id: <20240219141628.246823-7-iii@linux.ibm.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-8-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Ilya Leoshkevich
4edc98fcc8
{linux,bsd}-user: Pass pid to fork_end()
...
The upcoming follow-fork-mode child support requires knowing the child
pid. Pass it down.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Message-Id: <20240219141628.246823-6-iii@linux.ibm.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-7-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Ilya Leoshkevich
3d6ed98da8
gdbstub: Introduce gdbserver_fork_start()
...
The upcoming follow-fork-mode child support requires knowing when
fork() is about to happen in order to initialize its state. Add a hook
for that.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Message-Id: <20240219141628.246823-5-iii@linux.ibm.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-6-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Ilya Leoshkevich
d4e1369abe
{linux,bsd}-user: Update ts_tid after fork()
...
Currently ts_tid contains the parent tid after fork(), which is not
correct. So far it has not affected anything, but the upcoming
follow-fork-mode child support relies on the correct value, so fix it.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: Warner Losh <imp@bsdimp.com >
Message-Id: <20240219141628.246823-4-iii@linux.ibm.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-5-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Ilya Leoshkevich
e4e5cb4a54
{linux,bsd}-user: Introduce get_task_state()
...
A CPU's TaskState is stored in the CPUState's void *opaque field,
accessing which is somewhat awkward due to having to use a cast.
Introduce a wrapper and use it everywhere.
Suggested-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: Warner Losh <imp@bsdimp.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240219141628.246823-3-iii@linux.ibm.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240305121005.3528075-4-alex.bennee@linaro.org >
2024-03-06 12:35:19 +00:00
Richard Henderson
78bc8ed9a8
linux-user: Rewrite target_shmat
...
Handle combined host and guest alignment requirements.
Handle host and guest page size differences.
Handle SHM_EXEC.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/115
Tested-by: Richard Purdie <richard.purdie@linuxfoundation.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-01 08:09:55 -10:00
Richard Henderson
9f7c97324c
linux-user: Add strace for shmat
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-03-01 08:05:59 -10:00
Richard Henderson
01a721167a
linux-user/loongarch64: Remove TARGET_FORCE_SHMLBA
...
The kernel abi was changed with
commit d23b77953f5a4fbf94c05157b186aac2a247ae32
Author: Huacai Chen <chenhuacai@kernel.org >
Date: Wed Jan 17 12:43:08 2024 +0800
LoongArch: Change SHMLBA from SZ_64K to PAGE_SIZE
during the v6.8 cycle.
Reviewed-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-29 14:24:30 -10:00
Richard Henderson
4ef1f559f2
linux-user/x86_64: Handle the vsyscall page in open_self_maps_{2,4}
...
This is the only case in which we expect to have no host memory backing
for a guest memory page, because in general linux user processes cannot
map any pages in the top half of the 64-bit address space.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2170
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-29 14:24:24 -10:00
Richard Henderson
b816e1b5ba
linux-user: Remove pgb_dynamic alignment assertion
...
The assertion was never correct, because the alignment is a composite
of the image alignment and SHMLBA. Even if the image alignment didn't
match the image address, an assertion would not be correct -- more
appropriate would be an error message about an ill formed image. But
the image cannot be held to SHMLBA under any circumstances.
Fixes: ee94743034
("linux-user: completely re-write init_guest_space")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2157
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reported-by: Alexey Sheplyakov <asheplyakov@yandex.ru >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
78b79b2cb3
linux-user: Bound mmap_min_addr by host page size
...
Bizzarely, it is possible to set /proc/sys/vm/mmap_min_addr
to a value below the host page size. Fix that.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-32-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
ff8a8bbc2a
linux-user: Allow TARGET_PAGE_BITS_VARY
...
If set, match the host and guest page sizes.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-30-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
01e449809b
*-user: Deprecate and disable -p pagesize
...
This option controls the host page size. From the mis-usage in
our own testsuite, this is easily confused with guest page size.
The only thing that occurs when changing the host page size is
that stuff breaks, because one cannot actually change the host
page size. Therefore reject all but the no-op setting as part
of the deprecation process.
Reviewed-by: Warner Losh <imp@bsdimp.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-27-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
eb5027ac61
linux-user: Split out mmap_h_gt_g
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-24-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
8080b2f804
linux-user: Split out mmap_h_lt_g
...
Work much harder to get alignment and mapping beyond the end
of the file correct. Both of which are excercised by our
test-mmap for alpha (8k pages) on any 4k page host.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-23-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
68098de90e
linux-user: Split out mmap_h_eq_g
...
Move the MAX_FIXED_NOREPLACE check for reserved_va earlier.
Move the computation of host_prot earlier.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-22-richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
3bfa271e46
linux-user: Use do_munmap for target_mmap failure
...
For the cases for which the host mmap succeeds, but does
not yield the desired address, use do_munmap to restore
the reserved_va memory reservation.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
2952b642a5
linux-user: Split out do_munmap
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-29 11:35:37 -10:00
Richard Henderson
ad87d26e6b
linux-user: Do early mmap placement only for reserved_va
...
For reserved_va, place all non-fixed maps then proceed
as for MAP_FIXED.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-21-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
6ecc25570f
linux-user: Split out mmap_end
...
Use a subroutine instead of a goto within target_mmap__locked.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-20-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
f0a362c476
linux-user: Fix sub-host-page mmap
...
We cannot skip over the_end1 to the_end, because we fail to
record the validity of the guest page with the interval tree.
Remove "the_end" and rename "the_end1" to "the_end".
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-19-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
e8cec51be0
linux-user: Move some mmap checks outside the lock
...
Basic validation of operands does not require the lock.
Hoist them from target_mmap__locked back into target_mmap.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-18-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
d558c395a9
linux-user: Split out target_mmap__locked
...
All "goto fail" may be transformed to "return -1".
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-17-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
13c1339755
linux-user: Remove qemu_host_page_size from main
...
Use qemu_real_host_page_size() instead.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-16-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
b36b2b1d3d
linux-user: Remove HOST_PAGE_ALIGN from mmap.c
...
This removes a hidden use of qemu_host_page_size, using instead
the existing host_page_size local within each function.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-11-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
e56922abf0
linux-user: Remove REAL_HOST_PAGE_ALIGN from mmap.c
...
We already have qemu_real_host_page_size() in a local variable.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-10-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
621ac47d37
linux-user: Remove qemu_host_page_{size, mask} from mmap.c
...
Use qemu_real_host_page_size instead.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-9-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
2c796d230e
linux-user: Remove qemu_host_page_size from elf_core_dump
...
Used only once in wmr_page_unprotect_regions.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
2cd71515c4
linux-user/arm: Remove qemu_host_page_size from init_guest_commpage
...
Use qemu_real_host_page_size.
If the commpage is not within reserved_va, use MAP_FIXED_NOREPLACE.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-8-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
51f8c9b872
linux-user/nios2: Remove qemu_host_page_size from init_guest_commpage
...
Use qemu_real_host_page_size.
If !reserved_va, use MAP_FIXED_NOREPLACE.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-7-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
d1fc62303e
linux-user/hppa: Simplify init_guest_commpage
...
If reserved_va, then we have already reserved the entire
guest virtual address space; no need to remap page.
If !reserved_va, then use MAP_FIXED_NOREPLACE.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-6-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00
Richard Henderson
d17b684c10
linux-user: Remove qemu_host_page_size from create_elf_tables
...
AT_PAGESZ is supposed to advertise the guest page size.
The random adjustment made here using qemu_host_page_size
does not match anything else within linux-user.
The idea here is good, but should be done more systemically
via adjustment to TARGET_PAGE_SIZE.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20240102015808.132373-5-richard.henderson@linaro.org >
2024-02-29 11:35:36 -10:00