Hi All,

Here is an update on the progress. Based on the comments and feedback we 
received, we modified following items in the upcoming version of the patch 
(will be version #6). We are in the process of testing. I will be on vacation 
from Dec. 9th and will be back to office on Dec. 17th. We will hopefully be 
able to send out version #6 of the patch on Dec. 18th. 

1. setReusePort and getReusePort methods are removed from 
Socket/ServerSocket/DatagramSocket.

2. Minor wording changes to StandardSocketOptions regarding to SO_REUSEPORT. 
This include adding "usually" to the sentences and also including @since 9 at 
the end.

3. inside sun.nio.ch.Net,
     3.1 Change Net.reuseportSupported to Net.isReusePortAvailable and make it 
as private. 
     3.2 The native implantation isReusePortAvailable0 is done inside Net.c 
which points to a newly added native function named reuseport_available(). 
reuseport_available() is added in 
./jdk/src/java.base/share/native/libnet/net_util.c.

4. inside java.net,
     4.1 Add a function called isReusePortAvailable in 
./jdk/src/java.base/share/classes/java/net/SocketImpl.java. Create SocketImpl.c 
file for both UNIX and Windows to add the native implementation named as 
isReusePortAvailable0. 
     4.2 The native implementation points to the same reuseport_available() 
described in 3.2

5. Similarly, inside jdk.net, add isReusePortAvailable and its native 
implementation.

6. Inside ./jdk/src/java.base/unix/native/libnet/net_util_md.c, add a new 
function called reuseport_supported(). This is the function that calls 
setsockopt and check for SO_REUSEPORT. reuseport_available() points to 
reuseport_supported().

7. reuseport_supported() is called during JNI_OnLoad function and the result is 
also the return value of reuseport_available(). This makes SO_REUSEPORT check 
is done once at the beginning and the results will be cached for later use.

8. #3-#7 follows the example of the IPv6 check. Please let me know if there is 
anything I missed.

9. Removed setting SO_REUSEPORT for debugger agent

10. For all the tests, instead of calling Net.reuseportSupport method, use 
supportedOptions to check for SO_REUSEPORT. 

11. Remove test/java/net/Socket/setReusePort/Basic.java since the setReusePort 
and getReusePort methods are removed.

12. Setting SO_REUSEPORT value to platform dependent instead of using 15 for 
everyone.

13. Make SO_REUSEPORT to be disabled by default for both 
ServerSocketChannelImpl and SocketChannelImpl. Leave the feature enablement to 
the users.

14. Updated the copyright date.

Thanks,
Lucy

-----Original Message-----
From: net-dev [mailto:net-dev-boun...@openjdk.java.net] On Behalf Of Lu, Yingqi
Sent: Tuesday, December 08, 2015 9:11 AM
To: Alan Bateman <alan.bate...@oracle.com>; Michael McMahon 
<michael.x.mcma...@oracle.com>; Volker Simonis <volker.simo...@gmail.com>
Cc: Viswanathan, Sandhya <sandhya.viswanat...@intel.com>; 
net-dev@openjdk.java.net; Kharbas, Kishor <kishor.khar...@intel.com>; Aundhe, 
Shirish <shirish.aun...@intel.com>; Kaczmarek, Eric <eric.kaczma...@intel.com>
Subject: RE: Patch for adding SO_REUSEPORT socket option

Thank you very much for your help, Alan!

Thanks,
Lucy

-----Original Message-----
From: Alan Bateman [mailto:alan.bate...@oracle.com] 
Sent: Tuesday, December 08, 2015 8:46 AM
To: Lu, Yingqi <yingqi...@intel.com>; Michael McMahon 
<michael.x.mcma...@oracle.com>; Volker Simonis <volker.simo...@gmail.com>
Cc: Kaczmarek, Eric <eric.kaczma...@intel.com>; net-dev@openjdk.java.net; 
Kharbas, Kishor <kishor.khar...@intel.com>; Viswanathan, Sandhya 
<sandhya.viswanat...@intel.com>; Aundhe, Shirish <shirish.aun...@intel.com>
Subject: Re: Patch for adding SO_REUSEPORT socket option



On 08/12/2015 00:53, Lu, Yingqi wrote:
> Hi Alan,
>
> I heard that the feature freeze for OpenJDK9 is approaching. Given the 
> significant performance impact (up to 1.93x with Hadoop Distributed File 
> System) this feature provides and the status of the existing work, we would 
> be really interested in see this feature to be approved for OpenJDK9. We will 
> surely continue working with the community to address opens/issues until it 
> is completely ready to be merged into the source code tree.

There is a proposal to move out JDK 9 by 6 months [1]. In any case, I think we 
are close to agreement on this socket option and I will reply to your others 
mail the implementation.

-Alan.

[1]
http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-December/003149.html

Reply via email to