diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-05-21 21:21:26 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-05-21 21:21:26 +0200 |
| commit | 4b927bc37359dec23f67d3427fc982945f24f404 (patch) | |
| tree | 245449ef9146942dc7fffd0235b48b7e70a00bf2 /gitlab/issues/target_missing/host_missing/accel_missing/1689.toml | |
| parent | aa8bd79cec7bf6790ddb01d156c2ef2201abbaab (diff) | |
| download | emulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.tar.gz emulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.zip | |
add gitlab issues in toml format
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1689.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/1689.toml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1689.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1689.toml new file mode 100644 index 00000000..a31557d6 --- /dev/null +++ b/gitlab/issues/target_missing/host_missing/accel_missing/1689.toml @@ -0,0 +1,23 @@ +id = 1689 +title = "memory backend file unnecessarily requires write permission while it is only mapped privately" +state = "closed" +created_at = "2023-06-06T10:51:20.741Z" +closed_at = "2023-09-28T09:52:29.414Z" +labels = [] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1689" +host-os = "linux" +host-arch = "x86" +qemu-version = "8.0.2" +guest-os = "unrelated" +guest-arch = "unrelated" +description = """One day I wanted to boot the machine with physical memory initialized with a file, in a copy-on-write style. That is why I tried out `-mem-path` and `-object memory-backend-file`. Actually `-mem-path` already works if not considering that qemu dislikes the backing file being readonly and requires it to be writeable even when only private mappings are used here. + +I sadly found out that when using memory-backend-file, and when `share=off`, if `readonly=on`, then file is `open`ed with `O_RDONLY` and mmap prot is `PROT_READ`; if `readonly=off`, then the file is `open`ed with `O_RDWR` and mmap prot is `PROT_READ|PROT_WRITE`. I want `O_RDONLY` and `PROT_READ|PROT_WRITE` but I cannot find it anywhere. + +In my opinion, expected behavior should be that if `share=off`, the file can already be opened with `O_RDONLY` no matter what prot the mmap is. That is how linux `MAP_PRIVATE` works - basically copy on write. When I only need copy on write for the content of file, why do I require write permission for it? + +Now I cannot find a setup that opens the file with `fd=open(*, O_RDONLY)` and mmap it with `mmap(*, *, PROT_READ|PROT_WRITE, MAP_PRIVATE|*, fd, *)`. + +Tell me if I misunderstood linux (for example certain file behave differently if one open with O_RDONLY and this behavior is necessary) or qemu or other posix systems where copy-on-write does not work like this.""" +reproduce = "n/a" +additional = "n/a" |