adding rsockets support into JDK

Chris Hegarty chris.hegarty at oracle.com
Fri Dec 14 17:47:05 UTC 2018


Lucy,

> On 13 Dec 2018, at 17:59, Lu, Yingqi <yingqi.lu at intel.com> wrote:
> 
> Hi Chris/Alan,
> 
> Here is the version 25 of the patch: http://cr.openjdk.java.net/~ylu/8195160.25/

Some further comments.

1) test/jdk/jdk/net/RdmaSockets/rsocket/Selector/Connect.java

  This test unnecessarily creates a thread for each connection.
  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.1/

2) Additional test coverage for basic switching of blocking state.

  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.2/

3) I think your work-around for Issue #1 is probably ok. I refined it a
  little so avoid accessing the flags unless necessary. I think this may
  be slightly more efficient, since the typical non-blocking usage will
  be preceded by a select/rpoll.

  src/jdk.net/linux/native/libextnet/LinuxRdmaSocketDispatcherImpl.c
  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.3/

4) LinuxRdmaSocketDispatcherImpl.java

  While reading the code I noticed an odd/stray unused `close` method. I
  think it should be removed to avoid confusion ( it confused me ).

  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.4/

5) test/jdk/jdk/net/RdmaSockets/rsocket/SocketChannel/IOExchanges.java

  I updated this test to ensure that all selectors are now closed ( they
  were not all closed consistently in the previous version ).

  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.5/

  What is nice about this test is that the *_BConn_* method verify the
  changes in 3 above ( for Issue #1 ). I still wanna add scatter/gather
  variants ( its on my TODO list ).

  For now, until Issue #2 is resolved, then just comment out the `@Test`
  from the twelve *_NBConn_* methods ( they currently fail, since they
  verify the yet-to-be-fixed Issue #2 ). It is on my list to look into
  fix this issue too.

6) test/jdk/jdk/net/RdmaSockets/rsocket/SocketChannel/CloseDuringWrite.java

  Just some cleanup in this test.
  http://cr.openjdk.java.net/~chegar/rsocket/webrev.25.6/
  
  The reason I'm doing some of this cleanup is that I see infrequent
  failures in a few of these tests ( about 1 failure in ever 30 or so
  runs ).
  
  
That's my patch queue empty, for now. I hope that applying these patches
is not too onerous. They are mostly review comments, and I hope to be
getting to the end of this soon.
  
-Chris.  



More information about the nio-dev mailing list