<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/rds/send.c, branch linux-4.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-07-20T22:33:01Z</updated>
<entry>
<title>rds: Make sure updates to cp_send_gen can be observed</title>
<updated>2017-07-20T22:33:01Z</updated>
<author>
<name>Håkon Bugge</name>
</author>
<published>2017-07-20T10:28:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e623a48ee433985f6ca0fb238f0002cc2eccdf53'/>
<id>urn:sha1:e623a48ee433985f6ca0fb238f0002cc2eccdf53</id>
<content type='text'>
cp-&gt;cp_send_gen is treated as a normal variable, although it may be
used by different threads.

This is fixed by using {READ,WRITE}_ONCE when it is incremented and
READ_ONCE when it is read outside the {acquire,release}_in_xmit
protection.

Normative reference from the Linux-Kernel Memory Model:

    Loads from and stores to shared (but non-atomic) variables should
    be protected with the READ_ONCE(), WRITE_ONCE(), and
    ACCESS_ONCE().

Clause 5.1.2.4/25 in the C standard is also relevant.

Signed-off-by: Håkon Bugge &lt;haakon.bugge@oracle.com&gt;
Reviewed-by: Knut Omang &lt;knut.omang@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>rds: tcp: send handshake ping-probe from passive endpoint</title>
<updated>2017-06-22T15:34:04Z</updated>
<author>
<name>Sowmini Varadhan</name>
</author>
<published>2017-06-21T20:40:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=69b92b5b7419846e2a0d61a097b11b17a089e046'/>
<id>urn:sha1:69b92b5b7419846e2a0d61a097b11b17a089e046</id>
<content type='text'>
The RDS handshake ping probe added by commit 5916e2c1554f
("RDS: TCP: Enable multipath RDS for TCP") is sent from rds_sendmsg()
before the first data packet is sent to a peer. If the conversation
is not bidirectional  (i.e., one side is always passive and never
invokes rds_sendmsg()) and the passive side restarts its rds_tcp
module, a new HS ping probe needs to be sent, so that the number
of paths can be re-established.

This patch achieves that by sending a HS ping probe from
rds_tcp_accept_one() when c_npaths is 0 (i.e., we have not done
a handshake probe with this peer yet).

Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Tested-by: Jenny Xu &lt;jenny.x.xu@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>rds: tcp: various endian-ness fixes</title>
<updated>2017-06-16T16:45:15Z</updated>
<author>
<name>Sowmini Varadhan</name>
</author>
<published>2017-06-15T18:28:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=00354de5779db4aa9c019db787ef89bd1a6b149b'/>
<id>urn:sha1:00354de5779db4aa9c019db787ef89bd1a6b149b</id>
<content type='text'>
Found when testing between sparc and x86 machines on different
subnets, so the address comparison patterns hit the corner cases and
brought out some bugs fixed by this patch.

Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Tested-by: Imanti Mendez &lt;imanti.mendez@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>RDS: make message size limit compliant with spec</title>
<updated>2017-01-02T22:02:57Z</updated>
<author>
<name>Avinash Repaka</name>
</author>
<published>2016-02-29T23:30:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9fb69adb6c7acca60977a4db5a5f95b8e66c041'/>
<id>urn:sha1:f9fb69adb6c7acca60977a4db5a5f95b8e66c041</id>
<content type='text'>
RDS support max message size as 1M but the code doesn't check this
in all cases. Patch fixes it for RDMA &amp; non-RDMA and RDS MR size
and its enforced irrespective of underlying transport.

Signed-off-by: Avinash Repaka &lt;avinash.repaka@oracle.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
</content>
</entry>
<entry>
<title>RDS: RDMA: Fix the composite message user notification</title>
<updated>2017-01-02T22:02:54Z</updated>
<author>
<name>Santosh Shilimkar</name>
</author>
<published>2016-02-19T04:06:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=941f8d55f6d613a460a5e080d25a38509f45eb75'/>
<id>urn:sha1:941f8d55f6d613a460a5e080d25a38509f45eb75</id>
<content type='text'>
When application sends an RDS RDMA composite message consist of
RDMA transfer to be followed up by non RDMA payload, it expect to
be notified *only* when the full message gets delivered. RDS RDMA
notification doesn't behave this way though.

Thanks to Venkat for debug and root casuing the issue
where only first part of the message(RDMA) was
successfully delivered but remainder payload delivery failed.
In that case, application should not be notified with
a false positive of message delivery success.

Fix this case by making sure the user gets notified only after
the full message delivery.

Reviewed-by: Venkat Venkatsubra &lt;venkat.x.venkatsubra@oracle.com&gt;
Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
</content>
</entry>
<entry>
<title>RDS: RDMA: return appropriate error on rdma map failures</title>
<updated>2017-01-02T22:02:46Z</updated>
<author>
<name>Santosh Shilimkar</name>
</author>
<published>2016-07-05T00:04:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=584a8279a44a800dea5a5c1e9d53a002e03016b4'/>
<id>urn:sha1:584a8279a44a800dea5a5c1e9d53a002e03016b4</id>
<content type='text'>
The first message to a remote node should prompt a new
connection even if it is RDMA operation. For RDMA operation
the MR mapping can fail because connections is not yet up.

Since the connection establishment is asynchronous,
we make sure the map failure because of unavailable
connection reach to the user by appropriate error code.
Before returning to the user, lets trigger the connection
so that its ready for the next retry.

Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
</content>
</entry>
<entry>
<title>RDS: mark few internal functions static to make sparse build happy</title>
<updated>2017-01-02T22:02:40Z</updated>
<author>
<name>Santosh Shilimkar</name>
</author>
<published>2016-12-05T00:41:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb7897631d2379ec198635cc24bf1e8c629d0bda'/>
<id>urn:sha1:bb7897631d2379ec198635cc24bf1e8c629d0bda</id>
<content type='text'>
Fixes below warnings:
warning: symbol 'rds_send_probe' was not declared. Should it be static?
warning: symbol 'rds_send_ping' was not declared. Should it be static?
warning: symbol 'rds_tcp_accept_one_path' was not declared. Should it be static?
warning: symbol 'rds_walk_conn_path_info' was not declared. Should it be static?

Signed-off-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
</content>
</entry>
<entry>
<title>RDS: TCP: Track peer's connection generation number</title>
<updated>2016-11-17T18:35:18Z</updated>
<author>
<name>Sowmini Varadhan</name>
</author>
<published>2016-11-16T21:29:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=905dd4184e0732de41d6ee3c7b06e0cfdd9f0aad'/>
<id>urn:sha1:905dd4184e0732de41d6ee3c7b06e0cfdd9f0aad</id>
<content type='text'>
The RDS transport has to be able to distinguish between
two types of failure events:
(a) when the transport fails (e.g., TCP connection reset)
    but the RDS socket/connection layer on both sides stays
    the same
(b) when the peer's RDS layer itself resets (e.g., due to module
    reload or machine reboot at the peer)
In case (a) both sides must reconnect and continue the RDS messaging
without any message loss or disruption to the message sequence numbers,
and this is achieved by rds_send_path_reset().

In case (b) we should reset all rds_connection state to the
new incarnation of the peer. Examples of state that needs to
be reset are next expected rx sequence number from, or messages to be
retransmitted to, the new incarnation of the peer.

To achieve this, the RDS handshake probe added as part of
commit 5916e2c1554f ("RDS: TCP: Enable multipath RDS for TCP")
is enhanced so that sender and receiver of the RDS ping-probe
will add a generation number as part of the RDS_EXTHDR_GEN_NUM
extension header. Each peer stores local and remote generation
numbers as part of each rds_connection. Changes in generation
number will be detected via incoming handshake probe ping
request or response and will allow the receiver to reset rds_connection
state.

Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>RDS: TCP: Enable multipath RDS for TCP</title>
<updated>2016-07-15T18:36:58Z</updated>
<author>
<name>Sowmini Varadhan</name>
</author>
<published>2016-07-14T10:51:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5916e2c1554f3e36f770401c989c3c7fadf619ca'/>
<id>urn:sha1:5916e2c1554f3e36f770401c989c3c7fadf619ca</id>
<content type='text'>
Use RDS probe-ping to compute how many paths may be used with
the peer, and to synchronously start the multiple paths. If mprds is
supported, hash outgoing traffic to one of multiple paths in rds_sendmsg()
when multipath RDS is supported by the transport.

CC: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>RDS: Rework path specific indirections</title>
<updated>2016-07-01T20:45:17Z</updated>
<author>
<name>Sowmini Varadhan</name>
</author>
<published>2016-06-30T23:11:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=226f7a7d97e37220a442f52eb85ebff2cd6fc0d2'/>
<id>urn:sha1:226f7a7d97e37220a442f52eb85ebff2cd6fc0d2</id>
<content type='text'>
Refactor code to avoid separate indirections for single-path
and multipath transports. All transports (both single and mp-capable)
will get a pointer to the rds_conn_path, and can trivially derive
the rds_connection from the -&gt;cp_conn.

Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: Sowmini Varadhan &lt;sowmini.varadhan@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
