mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
0ac1ee0bfe
Apps are increasingly using more than 1024 file descriptors. See discussion in several distro bug trackers, e.g. BugLink: http://bugs.launchpad.net/bugs/663090 https://issues.rpath.com/browse/RPL-2054 You don't want to raise the default soft limit, since that might break apps that use select(), but it's safe to raise the default hard limit; that way, apps that know they need lots of file descriptors can raise their soft limit without needing root, and without user intervention. Ubuntu is doing this with a kernel change because they have a policy of not changing kernel defaults in userland. While 4096 might not be enough for *all* apps, it seems to be plenty for the apps I've seen lately that are unhappy with 1024. Signed-off-by: Tim Gardner <tim.gardner@canonical.com> Cc: Dan Kegel <dank@kegel.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
95 lines
2.8 KiB
C
95 lines
2.8 KiB
C
#ifndef _ASM_GENERIC_RESOURCE_H
|
|
#define _ASM_GENERIC_RESOURCE_H
|
|
|
|
/*
|
|
* Resource limit IDs
|
|
*
|
|
* ( Compatibility detail: there are architectures that have
|
|
* a different rlimit ID order in the 5-9 range and want
|
|
* to keep that order for binary compatibility. The reasons
|
|
* are historic and all new rlimits are identical across all
|
|
* arches. If an arch has such special order for some rlimits
|
|
* then it defines them prior including asm-generic/resource.h. )
|
|
*/
|
|
|
|
#define RLIMIT_CPU 0 /* CPU time in sec */
|
|
#define RLIMIT_FSIZE 1 /* Maximum filesize */
|
|
#define RLIMIT_DATA 2 /* max data size */
|
|
#define RLIMIT_STACK 3 /* max stack size */
|
|
#define RLIMIT_CORE 4 /* max core file size */
|
|
|
|
#ifndef RLIMIT_RSS
|
|
# define RLIMIT_RSS 5 /* max resident set size */
|
|
#endif
|
|
|
|
#ifndef RLIMIT_NPROC
|
|
# define RLIMIT_NPROC 6 /* max number of processes */
|
|
#endif
|
|
|
|
#ifndef RLIMIT_NOFILE
|
|
# define RLIMIT_NOFILE 7 /* max number of open files */
|
|
#endif
|
|
|
|
#ifndef RLIMIT_MEMLOCK
|
|
# define RLIMIT_MEMLOCK 8 /* max locked-in-memory address space */
|
|
#endif
|
|
|
|
#ifndef RLIMIT_AS
|
|
# define RLIMIT_AS 9 /* address space limit */
|
|
#endif
|
|
|
|
#define RLIMIT_LOCKS 10 /* maximum file locks held */
|
|
#define RLIMIT_SIGPENDING 11 /* max number of pending signals */
|
|
#define RLIMIT_MSGQUEUE 12 /* maximum bytes in POSIX mqueues */
|
|
#define RLIMIT_NICE 13 /* max nice prio allowed to raise to
|
|
0-39 for nice level 19 .. -20 */
|
|
#define RLIMIT_RTPRIO 14 /* maximum realtime priority */
|
|
#define RLIMIT_RTTIME 15 /* timeout for RT tasks in us */
|
|
#define RLIM_NLIMITS 16
|
|
|
|
/*
|
|
* SuS says limits have to be unsigned.
|
|
* Which makes a ton more sense anyway.
|
|
*
|
|
* Some architectures override this (for compatibility reasons):
|
|
*/
|
|
#ifndef RLIM_INFINITY
|
|
# define RLIM_INFINITY (~0UL)
|
|
#endif
|
|
|
|
/*
|
|
* RLIMIT_STACK default maximum - some architectures override it:
|
|
*/
|
|
#ifndef _STK_LIM_MAX
|
|
# define _STK_LIM_MAX RLIM_INFINITY
|
|
#endif
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
/*
|
|
* boot-time rlimit defaults for the init task:
|
|
*/
|
|
#define INIT_RLIMITS \
|
|
{ \
|
|
[RLIMIT_CPU] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_FSIZE] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_DATA] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_STACK] = { _STK_LIM, _STK_LIM_MAX }, \
|
|
[RLIMIT_CORE] = { 0, RLIM_INFINITY }, \
|
|
[RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_NPROC] = { 0, 0 }, \
|
|
[RLIMIT_NOFILE] = { INR_OPEN_CUR, INR_OPEN_MAX }, \
|
|
[RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \
|
|
[RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
[RLIMIT_SIGPENDING] = { 0, 0 }, \
|
|
[RLIMIT_MSGQUEUE] = { MQ_BYTES_MAX, MQ_BYTES_MAX }, \
|
|
[RLIMIT_NICE] = { 0, 0 }, \
|
|
[RLIMIT_RTPRIO] = { 0, 0 }, \
|
|
[RLIMIT_RTTIME] = { RLIM_INFINITY, RLIM_INFINITY }, \
|
|
}
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif
|