7200742: (se) Selector.select does not block when starting Coherence (sol11u1)
Chris Hegarty
chris.hegarty at oracle.com
Wed Sep 26 14:07:09 PDT 2012
The change looks good to me. Nice to see a comprehensive test being added.
-Chris
On 26 Sep 2012, at 12:36, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>
> I need a reviewer for a change that resolves a regression in the Solaris /dev/poll based Selector. The regression stems from the changes for 7169050 [1] whereby a POLLREMOVE is no longer written to the driver when changing events. As the events are OR'ed in the kernel it creates the potential for spinning when changing the interest ops from say OP_WRITE to OP_READ and vice versa.
>
> It's somewhat surprising that the issue wasn't caught by any of the tests but they tend not to notice performance issues. It probably hasn't been noticed by many servers either as typically events are handed over to worker threads and that typically involves setting the interest ops to 0 before the hand off (changing the interest ops to 0 causes a POLLREMOVE to be written). The issue only arises when changing the interest ops without changing to 0.
>
> The webrev with the changes is here and I've got a test that exercises all possible transitions.
>
> http://cr.openjdk.java.net/~alanb/7200742/webrev/
>
> As 7169050 was back-ported to jdk7u it means that the changes here will need to be back-ported too.
>
> Thanks,
>
> Alan.
>
> [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/21703d431217
More information about the nio-dev
mailing list