Hi Alan,

Happy New Year!!

Thanks very much for your time reviewing the patch. I will make the changes 
regarding your comments and send them back here soon.

Thanks,
Lucy

-----Original Message-----
From: Alan Bateman [mailto:alan.bate...@oracle.com] 
Sent: Friday, January 01, 2016 3:18 AM
To: Lu, Yingqi <yingqi...@intel.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

On 21/12/2015 17:53, Lu, Yingqi wrote:
> Hi All,
>
> Sorry for the late reply. Here is the link to the most recent 
> reversion of the patch (version #6). 
> http://cr.openjdk.java.net/~mcberg/jdk/6432031/webrev.06/
>
> In this version, we have done following modifications based on the feedback 
> we received. Please review and let us know if there is anything missing. 
> Thank you very much!
>
>
I went through the latest webrev and it is look quite good.

One thing that doesn't seem quite right is SocketImpl::isReusePortAvailable. 
Whether SO_REUSEPORT is supported or not depends on the concrete implementation 
of the SocketImpl. So I think this needs to be moved down to 
AbstractPlainSocketImpl.

In net_util_md.h then SO_REUSEPORT is defined as 0x0200 on "unknown" 
platforms. I wonder if it would be better to not set it and instead have 
reuseport_supported return JNI_FALSE when SO_REUSEPORT is not defined.

StandardSocketOptions.SO_REUSEPORT is referenced in shared code
(sun/nio/ch/*Impl.java) so shouldn't it be defined to something on all 
platforms? I ask because genSocketOptionRegistry.c open emits a definition on 
non-Windows builds. Maybe it needs to emit it with a value of 0 on Windows. 
Also like net_util_md.c then maybe it should be emitted as 0 rather than 0x0200 
when the value is not known.

The javadoc looks good, a minor nit is that SocketOptions.SO_REUSEPORT needs 
@since 9.

A few other minor nits in passing:

-
src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java 
indentation doesn't look right.

- sun.nio.ch.Net.checkedReusePort - shouldn't be a need to initialize the 
volatile boolean to its default value (there is a patch in progress to remove 
many of these).

- SdpSupport.convert0 - I assume this should only use getsockopt when the 
socket option is supported. I think this means it will need #ifdef SO_REUSEPORT.

- A place uses have "//SO.." when "// SO..." would be more consistent.

I think that's it.

-Alan



Reply via email to