Commit 98fabcaa authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] aio sysctl parms

From: Janet Morgan <janetmor@us.ibm.com>

It looks like aio_nr and aio_max_nr were intended to be sysctl parameters.
parent 9c27c441
...@@ -900,6 +900,15 @@ super-nr shows the number of currently allocated ones. ...@@ -900,6 +900,15 @@ super-nr shows the number of currently allocated ones.
Every mounted file system needs a super block, so if you plan to mount lots of Every mounted file system needs a super block, so if you plan to mount lots of
file systems, you may want to increase these numbers. file systems, you may want to increase these numbers.
aio-nr and aio-max-nr
---------------------
aio-nr is the running total of the number of events specified on the
io_setup system call for all currently active aio contexts. If aio-nr
reaches aio-max-nr then io_setup will fail with EAGAIN. Note that
raising aio-max-nr does not result in the pre-allocation or re-sizing
of any kernel data structures.
2.2 /proc/sys/fs/binfmt_misc - Miscellaneous binary formats 2.2 /proc/sys/fs/binfmt_misc - Miscellaneous binary formats
----------------------------------------------------------- -----------------------------------------------------------
......
...@@ -138,3 +138,13 @@ thus the maximum number of mounted filesystems the kernel ...@@ -138,3 +138,13 @@ thus the maximum number of mounted filesystems the kernel
can have. You only need to increase super-max if you need to can have. You only need to increase super-max if you need to
mount more filesystems than the current value in super-max mount more filesystems than the current value in super-max
allows you to. allows you to.
==============================================================
aio-nr & aio-max-nr:
aio-nr shows the current system-wide number of asynchronous io
requests. aio-max-nr allows you to change the maximum value
aio-nr can grow to.
==============================================================
...@@ -167,6 +167,7 @@ static inline struct kiocb *list_kiocb(struct list_head *h) ...@@ -167,6 +167,7 @@ static inline struct kiocb *list_kiocb(struct list_head *h)
} }
/* for sysctl: */ /* for sysctl: */
extern unsigned aio_max_nr, aio_max_size, aio_max_pinned; extern atomic_t aio_nr;
extern unsigned aio_max_nr;
#endif /* __LINUX__AIO_H */ #endif /* __LINUX__AIO_H */
...@@ -620,6 +620,8 @@ enum ...@@ -620,6 +620,8 @@ enum
FS_LEASE_TIME=15, /* int: maximum time to wait for a lease break */ FS_LEASE_TIME=15, /* int: maximum time to wait for a lease break */
FS_DQSTATS=16, /* disc quota usage statistics */ FS_DQSTATS=16, /* disc quota usage statistics */
FS_XFS=17, /* struct: control xfs parameters */ FS_XFS=17, /* struct: control xfs parameters */
FS_AIO_NR=18, /* current system-wide number of aio requests */
FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */
}; };
/* /proc/sys/fs/quota/ */ /* /proc/sys/fs/quota/ */
......
...@@ -808,6 +808,22 @@ static ctl_table fs_table[] = { ...@@ -808,6 +808,22 @@ static ctl_table fs_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{
.ctl_name = FS_AIO_NR,
.procname = "aio-nr",
.data = &aio_nr,
.maxlen = sizeof(aio_nr),
.mode = 0444,
.proc_handler = &proc_dointvec,
},
{
.ctl_name = FS_AIO_MAX_NR,
.procname = "aio-max-nr",
.data = &aio_max_nr,
.maxlen = sizeof(aio_max_nr),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment