diff for duplicates of <20161207103451.GA869@yury-N73SV> diff --git a/a/1.txt b/N1/1.txt index 9f993f9..7de94fb 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -21,36 +21,3 @@ On Tue, Dec 06, 2016 at 10:20:20PM +0100, Arnd Bergmann wrote: > If there is a use case for larger than 16TB offsets, we should add > the call on all architectures, probably using your approach 3. I don't > think that we should treat it as anything special for arm64 though. - -From this point of view, 16+TB offset is a matter of 16+TB storage, -and it's more than real. The other consideration to add it is that -we have 64-bit support for offsets in syscalls like sys_llseek(). -So mmap64() will simply extend this support. - -I can prepare this patch. Some implementation details I'd like to -clarify: -Syscall declaration: -SYSCALL_DEFINE6(mmap64, unsigned long, addr, unsigned long, len, - unsigned long, prot, unsigned long, flags, - unsigned long, fd, unsigned long long *, offset); - -sys_mmap64() deprecates sys_mmap2(), and __ARCH_WANT_MMAP2 is -introduced to keep it enabled for all existing architectures. -All modern arches (aarch64/ilp32 is the first candidate) will have -mmap64() only. The example is set/getrlimit() or renameat() drop -patches (b0da6d44). - -On GLIBC side, __OFF_T_MATCHES_OFF64_t will wire mmap() from -linux/generic/wordsize32/mmap.c to mmap64() from linux/mmap64.c. - -mmap64() will first try __NR_mmap64, and if not defined, or ENOSYS -is returned, __NR_mmap2 will be called. This is to let userspace that -supports both mmap2() and mmap64() have full 64-bit offset support, not -44-bit one. - -For __NR_mmap2 case, I'd also add the check against offsets more than -2^44, and set errno to EOVERFLOW in that case. - -Any thoughts? - -Yury. diff --git a/a/content_digest b/N1/content_digest index 86037d5..5b4295f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -54,39 +54,6 @@ "> \n" "> If there is a use case for larger than 16TB offsets, we should add\n" "> the call on all architectures, probably using your approach 3. I don't\n" - "> think that we should treat it as anything special for arm64 though.\n" - "\n" - "From this point of view, 16+TB offset is a matter of 16+TB storage,\n" - "and it's more than real. The other consideration to add it is that\n" - "we have 64-bit support for offsets in syscalls like sys_llseek().\n" - "So mmap64() will simply extend this support.\n" - "\n" - "I can prepare this patch. Some implementation details I'd like to\n" - "clarify:\n" - "Syscall declaration:\n" - "SYSCALL_DEFINE6(mmap64, unsigned long, addr, unsigned long, len,\n" - " unsigned long, prot, unsigned long, flags,\n" - " unsigned long, fd, unsigned long long *, offset);\n" - "\n" - "sys_mmap64() deprecates sys_mmap2(), and __ARCH_WANT_MMAP2 is\n" - "introduced to keep it enabled for all existing architectures.\n" - "All modern arches (aarch64/ilp32 is the first candidate) will have\n" - "mmap64() only. The example is set/getrlimit() or renameat() drop\n" - "patches (b0da6d44).\n" - " \n" - "On GLIBC side, __OFF_T_MATCHES_OFF64_t will wire mmap() from\n" - "linux/generic/wordsize32/mmap.c to mmap64() from linux/mmap64.c. \n" - "\n" - "mmap64() will first try __NR_mmap64, and if not defined, or ENOSYS\n" - "is returned, __NR_mmap2 will be called. This is to let userspace that\n" - "supports both mmap2() and mmap64() have full 64-bit offset support, not\n" - "44-bit one.\n" - "\n" - "For __NR_mmap2 case, I'd also add the check against offsets more than\n" - "2^44, and set errno to EOVERFLOW in that case.\n" - "\n" - "Any thoughts?\n" - "\n" - Yury. + > think that we should treat it as anything special for arm64 though. -8056497c91064bc8009abc043bdfd3157a53782491cc0350b885c0d49903b8ef +d6f65546bc0726bf82585bf0fc42b74265e31b3d0eea835c8ea6ccbad81bfb1c
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox