Thanks a lot. The updated webrev available as 
http://cr.openjdk.java.net/~sviswanathan/Vladimir/8243099/webrev.13/

Thanks, Vladimir

-----Original Message-----
From: Patrick Concannon <patrick.concan...@oracle.com> 
Sent: Wednesday, May 13, 2020 4:16 AM
To: Ivanov, Vladimir A <vladimir.a.iva...@intel.com>; Alan Bateman 
<alan.bate...@oracle.com>; OpenJDK Network Dev list <net-dev@openjdk.java.net>
Subject: Re: RFR 15 8243099: SO_INCOMING_NAPI_ID support

Great, thanks Valdimir

Also, it might be worthwhile adding a check to ensure the NAPI ID remains 
consistent across multiple send/receives read/writes, and to test similar 
socket types e.g.  AsynchronousSocketChannel

For example: 
http://cr.openjdk.java.net/~pconcannon/8243099/webrevs/webrev.01/


Kind regards,

Patrick


On 12/05/2020 01:05, Ivanov, Vladimir A wrote:
> Thanks a lot Patrick. Your tests looks better then proposed ones.
> Updated webrev available as 
> http://cr.openjdk.java.net/~sviswanathan/Vladimir/8243099/webrev.12
>
>   Thanks, Vladimir
>
> -----Original Message-----
> From: Patrick Concannon <patrick.concan...@oracle.com>
> Sent: Monday, May 11, 2020 11:11 AM
> To: Ivanov, Vladimir A <vladimir.a.iva...@intel.com>; Alan Bateman 
> <alan.bate...@oracle.com>; OpenJDK Network Dev list 
> <net-dev@openjdk.java.net>
> Subject: Re: RFR 15 8243099: SO_INCOMING_NAPI_ID support
>
> Hi Vladamir,
>
> Just a few observations with your test, ExtOptionNAPITest: I don't think the 
> static class TestThread is needed for what you're trying to check and I think 
> you can remove it. Also, I think using testNG assertions rather than throwing 
> RunTimeExceptions might be better here, for example:
>
> -            if (ssId != 0)
> -                throw new RuntimeException("ServerSocket: incorrect 
> value for SO_INCOMING_NAPI_ID: " + ssId);
> +            assertEquals(ssID, 0, "Socket: Server");
>
> Finally, it might be a nice idea to split the test in two: one for 
> DatagramSocket/DatagramChannel and the other for Sockets? -- for 
> example, 
> http://cr.openjdk.java.net/~pconcannon/8243099/webrevs/webrev.00/
>
>
> Kind regards,
>
> Patrick
>
> On 08/05/2020 20:02, Ivanov, Vladimir A wrote:
>> Thanks a lot. Updated webrev uploaded as 
>> http://cr.openjdk.java.net/~sviswanathan/Vladimir/8243099/webrev.10/
>> If no other comments the CSR will be crated on the next week.
>>
>>    Thanks, Vladimir
>>
>> -----Original Message-----
>> From: Alan Bateman <alan.bate...@oracle.com>
>> Sent: Friday, May 8, 2020 12:10 AM
>> To: Ivanov, Vladimir A <vladimir.a.iva...@intel.com>; OpenJDK Network 
>> Dev list <net-dev@openjdk.java.net>
>> Subject: Re: RFR 15 8243099: SO_INCOMING_NAPI_ID support
>>
>> On 07/05/2020 19:51, Ivanov, Vladimir A wrote:
>>> In my case for 2 servers with RHEL8.1 the NapiId was non-zero for the 
>>> DatagramSocket after the 'receive' call.
>>>
>> Thanks for checking. I tried the equivalent of RHEL7.6 and it consistently 
>> returns 0 for UDP sockets so they may be kernel differences that explain 
>> this.
>>
>> I took the liberty of tweaking the javadoc to allow for a bit more 
>> flexibility as to reasons why the socket option value may be 0. This allows 
>> us to drop the distinction between connecting and listing sockets. If you 
>> are okay with this text then let's give it a day or two to see if there are 
>> other comments before Sandhya submits the CSR.
>>
>> -Alan
>>
>>
>>        /**
>>         * Identifies the receive queue that the last incoming packet for the 
>> socket
>>         * was received on.
>>         *
>>         * <p> The value of this socket option is a positive {@code Integer} 
>> that
>>         * identifies a receive queue that the application can use to split 
>> the
>>         * incoming flows among threads based on the queue identifier. The 
>> value is
>>         * {@code 0} when the socket is not bound, a packet has not been 
>> received,
>>         * or more generally, when there is no receive queue to identify.
>> The socket
>>         * option is supported by both stream-oriented and datagram-oriented
>>         * sockets.
>>         *
>>         * <p> The socket option is read-only and an attempt to set the 
>> socket option
>>         * will throw {@code SocketException}.
>>         *
>>         * @apiNote
>>         * Network devices may have multiple queues or channels to transmit 
>> and receive
>>         * network packets. The {@code SO_INCOMING_NAPI_ID} socket option 
>> provides a hint
>>         * to the application to indicate the receive queue on which an 
>> incoming socket
>>         * connection or packets for that connection are directed to. An 
>> application may
>>         * take advantage of this by handling all socket connections assigned 
>> to a
>>         * specific queue on one thread.
>>         *
>>         * @since 15
>>         */

Reply via email to