svn commit: r275205 - head/sys/kern
Hans Petter Selasky
hselasky at FreeBSD.org
Fri Nov 28 09:32:08 UTC 2014
Author: hselasky
Date: Fri Nov 28 09:32:07 2014
New Revision: 275205
URL: https://svnweb.freebsd.org/changeset/base/275205
Log:
Style changes:
- Move two IOCTL related defines to the top of the C-file
- Add more comments describing the recently added IOCTL small size and
small align macros
Modified:
head/sys/kern/sys_generic.c
Modified: head/sys/kern/sys_generic.c
==============================================================================
--- head/sys/kern/sys_generic.c Fri Nov 28 09:23:15 2014 (r275204)
+++ head/sys/kern/sys_generic.c Fri Nov 28 09:32:07 2014 (r275205)
@@ -75,6 +75,20 @@ __FBSDID("$FreeBSD$");
#include <security/audit/audit.h>
+/*
+ * The following macro defines how many bytes will be allocated from
+ * the stack instead of memory allocated when passing the IOCTL data
+ * structures from userspace and to the kernel. Some IOCTLs having
+ * small data structures are used very frequently and this small
+ * buffer on the stack gives a significant speedup improvement for
+ * those requests. The value of this define should be greater or equal
+ * to 64 bytes and should also be power of two. The data structure is
+ * currently hard-aligned to a 8-byte boundary on the stack. This
+ * should currently be sufficient for all supported platforms.
+ */
+#define SYS_IOCTL_SMALL_SIZE 128 /* bytes */
+#define SYS_IOCTL_SMALL_ALIGN 8 /* bytes */
+
int iosize_max_clamp = 0;
SYSCTL_INT(_debug, OID_AUTO, iosize_max_clamp, CTLFLAG_RW,
&iosize_max_clamp, 0, "Clamp max i/o size to INT_MAX");
@@ -646,10 +660,7 @@ struct ioctl_args {
int
sys_ioctl(struct thread *td, struct ioctl_args *uap)
{
-#ifndef SYS_IOCTL_SMALL_SIZE
-#define SYS_IOCTL_SMALL_SIZE 128
-#endif
- u_char smalldata[SYS_IOCTL_SMALL_SIZE] __aligned(8);
+ u_char smalldata[SYS_IOCTL_SMALL_SIZE] __aligned(SYS_IOCTL_SMALL_ALIGN);
u_long com;
int arg, error;
u_int size;
More information about the svn-src-all
mailing list