diff options
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1687.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/1687.toml | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1687.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1687.toml deleted file mode 100644 index adaaa8a7..00000000 --- a/gitlab/issues/target_missing/host_missing/accel_missing/1687.toml +++ /dev/null @@ -1,63 +0,0 @@ -id = 1687 -title = "Memory leak for x86 guest on macOS ARM host" -state = "opened" -created_at = "2023-06-05T19:27:51.499Z" -closed_at = "n/a" -labels = [] -url = "https://gitlab.com/qemu-project/qemu/-/issues/1687" -host-os = "macOS Darwin" -host-arch = "ARM" -qemu-version = "n/a" -guest-os = "Ubuntu 22.04" -guest-arch = "x86" -description = """QEMU is used by docker to run `x86` binaries on Apple silicon. Then using `mmap` followed by `munmap` results in a memory leak manifested by continuously growing RSS memory usage when running `mmap` and `munmap` in a loop, e.g., when running the following binary: - -``` -#include <stdio.h> -#include <unistd.h> -#include <sys/mman.h> - -const int page = 4096; - -int work(int N) { - int *ptr = mmap(NULL, N * sizeof(int), PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); - - if (ptr == MAP_FAILED) { - printf("Mapping Failed\\n"); - return 1; - } - - for(int i = 0; i < N; i++) { - ptr[i] = i * 10; - } - - int err = munmap(ptr, N * sizeof(int)); - if (err != 0) { - printf("UnMapping Failed\\n"); - return 1; - } - - return 0; -} - -int main() { - int N = page * 1024; - - while (1) { - int res = work(N); - if (res) { - return res; - } - printf(".\\n"); - } - - return 0; -} -```""" -reproduce = """``` -$ LEAK=$(docker run --platform linux/amd64 -d -it martin2718/mmap-leak ./a.out) -$ docker exec -it $LEAK top # you should observe that RES for a.out keeps growing -$ docker exec -it $LEAK pmap -x 1 # you should see a single memory mapping whose RSS memory usage keeps growing -$ docker kill $LEAK # abort the experiment -```""" -additional = "n/a" |