summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/1687
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
commit3e4c5a6261770bced301b5e74233e7866166ea5b (patch)
tree9379fddaba693ef8a045da06efee8529baa5f6f4 /gitlab/issues_text/target_missing/host_missing/accel_missing/1687
parente5634e2806195bee44407853c4bf8776f7abfa4f (diff)
downloadqemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.tar.gz
qemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.zip
clean up repository
Diffstat (limited to 'gitlab/issues_text/target_missing/host_missing/accel_missing/1687')
-rw-r--r--gitlab/issues_text/target_missing/host_missing/accel_missing/168753
1 files changed, 0 insertions, 53 deletions
diff --git a/gitlab/issues_text/target_missing/host_missing/accel_missing/1687 b/gitlab/issues_text/target_missing/host_missing/accel_missing/1687
deleted file mode 100644
index 1c685f4fa..000000000
--- a/gitlab/issues_text/target_missing/host_missing/accel_missing/1687
+++ /dev/null
@@ -1,53 +0,0 @@
-Memory leak for x86 guest on macOS ARM host
-Description of problem:
-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;
-}
-```
-Steps to 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
-```