7173515: (se) Selector.open fails with OOME on Solaris when unlimited file descriptors
Alan Bateman
Alan.Bateman at oracle.com
Fri Jun 1 08:32:14 PDT 2012
This is an update to the changes to the /dev/poll Selector from a few
weeks ago [1].
The changes in 7169050 fixed a long standing performance issue that
stemmed from the insertion of a POLLREMOVE prior to each update.
Unfortunately the changes introduced an issue on systems configured with
an unlimited number of file descriptors. The issue that the update
events are indexed by file descriptor. To fix this I've changed it so
that it updates to file descriptors >64k spill into into a Map. One
other improvement is the addition of a bit set to track which file
descriptors are registered as this ensures that the updates to the
registrations are accurate. The final improvement is to use the same
poll array for both dpwrite and ioctl(DP_POLL). The webrev is here:
http://cr.openjdk.java.net/~alanb/7173515/webrev/
BTW: I hope to post a webrev soon with a completely new Selector
implementation for Solaris. The new Selector will use the Solaris event
ports facilities than the /dev/poll driver.
-Alan
[1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/21703d431217
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20120601/0f77f271/attachment.html
More information about the nio-dev
mailing list