summaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2012-12-20 22:20:05 +0100
committerThomas Schwinge <thomas@codesourcery.com>2012-12-20 22:20:05 +0100
commitfc4d1650f3e35a1cff0111ae3808c61d44346f1f (patch)
tree6be97c865d896e3e49411ede9870410e0c4f6479 /open_issues
parentc77f17cfb827c17de7f1d5318cbbbeea03286715 (diff)
glibc/mmap: Extend.
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/git_nfs_mmap.mdwn4
-rw-r--r--open_issues/glibc.mdwn20
-rw-r--r--open_issues/glibc/mremap.mdwn2
3 files changed, 7 insertions, 19 deletions
diff --git a/open_issues/git_nfs_mmap.mdwn b/open_issues/git_nfs_mmap.mdwn
index 21067022..e6726dfa 100644
--- a/open_issues/git_nfs_mmap.mdwn
+++ b/open_issues/git_nfs_mmap.mdwn
@@ -50,4 +50,6 @@ fails, and it isn't prepared to cope with that:
This is the [[libnetfs: `io_map`|open_issues/libnetfs_io_map]] issue.
There is a `NO_MMAP` conditional in Git's source code, but it is a compile-time
-conditional.
+conditional. The fallback code in `compat/mmap.c:git_mmap` only supports
+`MAP_PRIVATE`, and simply `pread`s in the requested portion of a file. This
+could be made a runtime fallback, too.
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index 9212c402..a9c12e5c 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -189,7 +189,8 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
`RLIMIT_RTTIME`, `SEEK_DATA` (`unistd.h`), `SEEK_HOLE` (`unistd.h`)
`clock_adjtime`, `fallocate`, `fallocate64`, `name_to_handle_at`,
`open_by_handle_at`, `process_vm_readv`, `process_vm_writev`, `sendmmsg`,
- `setns`, `sync_file_range`
+ `setns`, `sync_file_range`, [[`mremap`|mremap]] and [[several
+ `MAP_*`|glibc/mmap]]
* `chflags`
@@ -269,8 +270,6 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
initialization
<tschwinge> OK, that at least matches my understanding.
- * [[`mremap`|mremap]]
-
* `syncfs`
We should be easily able to implement that one.
@@ -286,21 +285,6 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
Do we support `AT_FDCWD` et al.?
(80b4e5f3ef231702b24d44c33e8dceb70abb3a06.)
- * `MAP_POPULATE` (`mmap`, `sys/mman.h`) -- *Populate (prefault)
- pagetables.*
-
- Some Linux kernel version, `mm/mmap.c`:
-
- if (vm_flags & VM_LOCKED) {
- if (!mlock_vma_pages_range(vma, addr, addr + len))
- mm->locked_vm += (len >> PAGE_SHIFT);
- } else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK))
- make_pages_present(addr, addr + len);
- return addr;
-
- Is only advisory, so can worked around with `#define MAP_POPULATE 0`,
- 8069478040336a7de3461be275432493cc7e4c91.
-
* `t/opendirat`: `opendirat` (`scandirat`, `scandirat64`)
Need changes equivalent to c55fbd1ea768f9fdef34a01377702c0d72cbc213 +
diff --git a/open_issues/glibc/mremap.mdwn b/open_issues/glibc/mremap.mdwn
index 874c7ae0..c17506d7 100644
--- a/open_issues/glibc/mremap.mdwn
+++ b/open_issues/glibc/mremap.mdwn
@@ -15,6 +15,8 @@ The Hurd does not currently support the `mremap` function.
For the `MREMAP_MAYMOVE` case it is easy to work around; see
`[binutils]/gold/mremap.c`, for example.
+Also see the discussion of [[glibc/mmap]].
+
[[!toc]]