about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/kernel-features.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-04-03 17:23:13 +0000
committerUlrich Drepper <drepper@redhat.com>2009-04-03 17:23:13 +0000
commit2dbe6afe7c13af9790f2d37d3be3c8fa3262bd27 (patch)
tree6080f12475eef12e39f1df2cfd6be163fa5c82db /sysdeps/unix/sysv/linux/kernel-features.h
parenta065c0076a1b76b9eb375ae051176e9bf518816a (diff)
downloadglibc-2dbe6afe7c13af9790f2d37d3be3c8fa3262bd27.tar.gz
glibc-2dbe6afe7c13af9790f2d37d3be3c8fa3262bd27.tar.xz
glibc-2dbe6afe7c13af9790f2d37d3be3c8fa3262bd27.zip
* sysdeps/unix/sysv/linux/kernel-features.h: Define
	__ASSUME_COMPLETE_READV_WRITEV.
	* sysdeps/unix/sysv/linux/readv.c: No need for userlevel fallback
	with modern kernels.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.

	* sysdeps/posix/readv.c: Since read is a cancellation point we have
	to free a possible malloced buffer in case of cancellation.
	* sysdeps/posix/writev.c: Likewise for write.

c2009-04-01  Ulrich Drepper  <drepper@redhat.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/kernel-features.h')
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 29afe27711..9053df1789 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -462,6 +462,13 @@
 # define __ASSUME_SET_ROBUST_LIST	1
 #endif
 
+/* Pessimistically assume that 2.6.18 introduced real handling of
+   large numbers of requests to readv and writev and that we don't
+   need a fallback.  It likely worked for much longer.  */
+#if __LINUX_KERNEL_VERSION >= 0x020612
+# define __ASSUME_COMPLETE_READV_WRITEV	1
+#endif
+
 /* Support for PI futexes was added in 2.6.18.  */
 #if __LINUX_KERNEL_VERSION >= 0x020612
 # define __ASSUME_FUTEX_LOCK_PI	1