68098de9 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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.o
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>
show more ...
|
3bfa271e | 13-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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.
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>
show more ...
|
2952b642 | 13-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user: Split out do_munmap
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
ad87d26e | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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> Rev
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>
show more ...
|
6ecc2557 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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.hende
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>
show more ...
|
f0a362c4 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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
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>
show more ...
|
e8cec51b | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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-D
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>
show more ...
|
d558c395 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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.hender
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>
show more ...
|
13c13397 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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@
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>
show more ...
|
b36b2b1d | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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 Henders
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>
show more ...
|
e56922ab | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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 He
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>
show more ...
|
621ac47d | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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@l
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>
show more ...
|
2c796d23 | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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> |
2cd71515 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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 Henderso
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>
show more ...
|
51f8c9b8 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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@lin
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>
show more ...
|
d1fc6230 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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_NOREPLA
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>
show more ...
|
d17b684c | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
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 anythin
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>
show more ...
|
ae6bffe0 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user: Remove qemu_host_page_{size, mask} in probe_guest_base
The host SHMLBA is by definition a multiple of the host page size. Thus the remaining component of qemu_host_page_size is the targe
linux-user: Remove qemu_host_page_{size, mask} in probe_guest_base
The host SHMLBA is by definition a multiple of the host page size. Thus the remaining component of qemu_host_page_size is the 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-4-richard.henderson@linaro.org>
show more ...
|
f11c05c3 | 01-Jan-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user: Adjust SVr4 NULL page mapping
Use TARGET_PAGE_SIZE and MAP_FIXED_NOREPLACE.
We really should be attending to this earlier during probe_guest_base, as well as better detection and emulat
linux-user: Adjust SVr4 NULL page mapping
Use TARGET_PAGE_SIZE and MAP_FIXED_NOREPLACE.
We really should be attending to this earlier during probe_guest_base, as well as better detection and emulation of various Linux personalities.
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-3-richard.henderson@linaro.org>
show more ...
|
41689bb3 | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Unprotect regions before core dump
By unprotecting regions, we re-instate writability and unify regions that have been split, which may reduce the total number of regions.
Signe
linux-user/elfload: Unprotect regions before core dump
By unprotecting regions, we re-instate writability and unify regions that have been split, which may reduce the total number of regions.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
50e33f52 | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Rely on walk_memory_regions for vmas
Rather than creating new data structures for vma, rely on the IntervalTree used by walk_memory_regions.
Use PAGE_* constants, per the page t
linux-user/elfload: Rely on walk_memory_regions for vmas
Rather than creating new data structures for vma, rely on the IntervalTree used by walk_memory_regions.
Use PAGE_* constants, per the page table api, rather than PROT_* constants, per the mmap api.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
1928d50b | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Simplify vma_dump_size
Use the flags that we've already saved in order to test accessibility. Use g2h_untagged and compare guest memory directly instead of copy_from_user.
Sign
linux-user/elfload: Simplify vma_dump_size
Use the flags that we've already saved in order to test accessibility. Use g2h_untagged and compare guest memory directly instead of copy_from_user.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
b4c7ab81 | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Write process memory to core file in larger chunks
We do not need to copy pages from guest memory before writing them out. Because vmas are contiguous in host memory, we can wri
linux-user/elfload: Write process memory to core file in larger chunks
We do not need to copy pages from guest memory before writing them out. Because vmas are contiguous in host memory, we can write them in one go.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
243c4706 | 27-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Write corefile elf header in one block
Fixes a bug in which write_note() wrote namesz_rounded and datasz_rounded bytes, even though name and data pointers contain only the unroun
linux-user/elfload: Write corefile elf header in one block
Fixes a bug in which write_note() wrote namesz_rounded and datasz_rounded bytes, even though name and data pointers contain only the unrounded number of bytes.
Instead of many small writes, allocate a block to contain all of the elf headers and all of the notes. Copy the data into the block piecemeal and the write it to the file as a chunk. This also avoids the need to lseek forward for alignment.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
2410d28d | 26-Feb-2024 |
Richard Henderson <richard.henderson@linaro.org> |
linux-user/elfload: Size corefile before opening
Verify the size of the corefile vs the rlimit before opening and creating the core file at all.
Signed-off-by: Richard Henderson <richard.henderson@
linux-user/elfload: Size corefile before opening
Verify the size of the corefile vs the rlimit before opening and creating the core file at all.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|