diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-10-05 07:34:51 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-12-20 17:11:12 -0800 |
commit | 67ff2186b0a49d4e1ea0be2398548eae443762e4 (patch) | |
tree | 6ae6400bfbc5e7d66930b3cf6a4b6f0ae7736c67 /tests/tcg/multiarch | |
parent | d941c086b818533a9332272609405334e59a6f27 (diff) | |
download | qemu-67ff2186b0a49d4e1ea0be2398548eae443762e4.zip qemu-67ff2186b0a49d4e1ea0be2398548eae443762e4.tar.gz qemu-67ff2186b0a49d4e1ea0be2398548eae443762e4.tar.bz2 |
accel/tcg: Use interval tree for user-only page tracking
Finish weaning user-only away from PageDesc.
Using an interval tree to track page permissions means that
we can represent very large regions efficiently.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/290
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/967
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1214
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tests/tcg/multiarch')
-rw-r--r-- | tests/tcg/multiarch/test-vma.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/tcg/multiarch/test-vma.c b/tests/tcg/multiarch/test-vma.c new file mode 100644 index 0000000..2893d60 --- /dev/null +++ b/tests/tcg/multiarch/test-vma.c @@ -0,0 +1,22 @@ +/* + * Test very large vma allocations. + * The qemu out-of-memory condition was within the mmap syscall itself. + * If the syscall actually returns with MAP_FAILED, the test succeeded. + */ +#include <sys/mman.h> + +int main() +{ + int n = sizeof(size_t) == 4 ? 32 : 45; + + for (int i = 28; i < n; i++) { + size_t l = (size_t)1 << i; + void *p = mmap(0, l, PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); + if (p == MAP_FAILED) { + break; + } + munmap(p, l); + } + return 0; +} |