summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/1687
diff options
context:
space:
mode:
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
-```