file limits in kernel

Todd J Derr (infidel+@pitt.edu)
Fri, 3 May 1996 11:18:19 -0400 (EDT)


Hello,

I'm wondering what the relationship of these constants are:

linux/limits.h:
#define NR_OPEN 256
#define OPEN_MAX 256 /* # open files a process may have */

linux/fs.h:
#undef NR_OPEN
#define NR_OPEN 256
#define NR_FILE 1024 /* this can well be larger on a larger system */

probably a bad idea having NR_OPEN defined in 2 places....

the real problem I'm having is ENFILE errors. Can someone clarify the
ENFILE/EMFILE distinction? I'm guessing ENFILE means the kernel's
file table is full, while EMFILE means a process has violated its
limit.

So, my questions:

- what do I change to increase the size of the kernel's open file table?
- what do I change to increase the per-process open file limit?
- based on the above (getting ENFILE), which one do I _want_ to
change, kernel or per-process?

and:

- does anyone maintain a list of 'auxilliary' kernel config
parameters, such as the above, process table limits, etc? it could
be pretty useful to stick something like that into the Documentation/
directory...

thanks,

todd.