On Sun, 16 Mar 2008, Maxim Sobolev wrote:
Robert Watson wrote:
On Sun, 16 Mar 2008, Maxim Sobolev wrote:
sobomax 2008-03-16 06:21:30 UTC
FreeBSD src repository
Modified files:
sys/sys eventhandler.h
sys/kern kern_descrip.c uipc_socket.c
Log:
Properly set size of the file_zone to match kern.maxfiles parameter.
Otherwise the parameter is no-op, since zone by default limits number
of descriptors to some 12K entries. Attempt to allocate more ends up
sleeping on zonelimit.
Hmm. Could you be more specific about the nature of the problem you're
seeing here? UMA shouldn't impose any default zone limit on the file_zone
if none is set. Are you sure it's the struct file zonelimit you're running
into, and not, say, the socket zone limit, etc?
Yes, you are right, further investigation revealed that in my case I was
hitting maxsockets limit, not maxfiles limit. Not sure if the backout is in
order or having files zone limit has some value, so that possible leaks can
be detected and UMA zone can potentially do size-based optimizations in the
future?
The UMA max is complicated due to per-cpu caches. Really the limit code
in uma should be rewritten or all consumers should handle it themselves
the way struct file does. It'd probably be best if you backed this out.
Thanks,
Jeff
Also, don't use SI_SUB_EVENTHANDLER+1 -- add a new event type, perhaps
SI_SUB_FILE, or use SI_ORDER_LAST.
OK, what about maxsockets code? Should it be changed to?
-Maxim
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"