Hi Vladimir,

Latest webrev(03) looks ok to me , one minor  bit, method signature(Signature:
(I)I;) is not  correct in incomingNapiIdSupported0.

Thanks,
Vyom

++/*+ * Class:     jdk_net_LinuxSocketOptions+ * Method:
incomingNapiIdSupported0+ * Signature: (I)I;+ */+JNIEXPORT jboolean
JNICALL Java_jdk_net_LinuxSocketOptions_incomingNapiIdSupported0+(JNIEnv
*env, jobject unused) {+    return socketOptionSupported(SOL_SOCKET,
SO_INCOMING_NAPI_ID);+}


On Wed, Apr 29, 2020 at 11:44 PM Ivanov, Vladimir A <
vladimir.a.iva...@intel.com> wrote:

> Updated version of the webrev available as
> http://cr.openjdk.java.net/~sviswanathan/Vladimir/8243099/webrev.03/
>
> The tests run results for the " test/jdk/java/net
> test/jdk/java/nio/channels test/jdk/javax/net test/jdk/jdk/net
> test/jdk/sun/net" same as for non-patched version.
>
> Changes:
> 1. comment was updated
> 2. names were adjusted with convention (IncomingNapiIdOptSupported  =>
> incomingNapiIdOptSupported, IncomingNapiIdSupported =>
> IncomingNapiIdSupported);
>
>  Thanks, Vladimir
>
> -----Original Message-----
> From: Alan Bateman <alan.bate...@oracle.com>
> Sent: Wednesday, April 29, 2020 8:54 AM
> To: Ivanov, Vladimir A <vladimir.a.iva...@intel.com>; OpenJDK Network Dev
> list <net-dev@openjdk.java.net>
> Subject: Re: RFR 15 8243099: Adding ADQ support to JDK
>
> On 28/04/2020 01:33, Ivanov, Vladimir A wrote:
> > The changes for ADq doc update that includes explanation for this
> technology:
> > /**
> >   * ADQ (Application Device Queues) is an open technology to help
> > address network traffic challenges by improving application
> > * throughput and latency, and, most importantly, by enabling greater
> > predictability in application response times by creating
> > * application specific traffic queuing and steering.
> > *
> > * Modern Network Interface Card (NIC) devices have multiple queues or
> > channels to transmit and receive Network packets. ADQ
> > * lets each software application reserve subset of these device
> > queues, so that all the traffic, and only the traffic, belonging to
> > the
> > * application is directed to those set of queues avoiding sharing or
> > competing for network resources with other applications in the
> > * system.
> > *
> > * System Administrator allocates Network resources to an application
> > in a multi-application environment including set of device
> > * queues (Number of Tx/RX queue pairs), dedicated for application
> > traffic. In addition, QoS attributes can be applied to these
> > * Application Queues such as Network bandwidth limits & Traffic
> > priority. Device then assigns the incoming application connections
> > * to these set of queues by defined policies such as round robin. ADQ
> > provides hints to applications, by means of a new socket option
> > * SO_INCOMING_NAPI_ID, to indicate the device queue from the set of
> > assigned queues, to which an incoming socket connection and
> > * packets for that connection are directed to.
> > *
> > * For a multi-threaded application to take advantage of these
> > dedicated queues, application needs ability to query which queue a
> > * connection is assigned to, so all socket connections from a specific
> device queue can be serviced by a single application thread.
> > * Application then may utilize busy polling to receive and transmit
> > the network packets, minimizing system interrupts and context
> > * switches to better align overall system resources to applications.
> > This helps in improved predictability, reduce latency and improve
> > * throughput for ADQ enabled Application.
> > *
> > * The value of this SO_INCOMING_NAPI_ID socket option is an Integer,
> > uniquely representing the network device queue on which the
> > * last packet of the socket connection is received on. This option is
> > available for both stream-oriented and datagram-oriented sockets
> > * on both client and server sockets. The value returned for this
> > socket option will be zero until the socket is connected and has
> > received
> > * a network packet, at which point it will be a non-zero integer
> > value. This is a read only option. Attempting to set the socket option
> > will
> > * cause UOE to be thrown.
> > *
>
> What would you think about starting with something like"
>
> "Identifies the receive queue that the last incoming packet for the socket
> was received on.
>
> The value of this socket option is an Integer that identifies a receive
> queue that can application can use to split the incoming flows among
> threads based on the receive queue.
>
> The socket option is read-only and any attempt to set the socket option
> will throw UnsupportedOperationException.
> The socket option is supported by both stream and datagram oriented
> sockets. The value of the socket option is 0 when the socket is not bound
> or a packet has not been received."
>
> We could add an additional note to explain further how it might work on
> Linux that would use some of the text that you have in your mail.
>
> -Alan.
>
>

-- 
Thanks,
Vyom

Reply via email to