<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/sunrpc/stats.c, branch linux-4.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-04-10T20:06:22Z</updated>
<entry>
<title>sunrpc: Add static trace point to report RPC latency stats</title>
<updated>2018-04-10T20:06:22Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2018-03-16T14:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40bf7eb304b5659991ed932c0cd5bee6a7c88f4f'/>
<id>urn:sha1:40bf7eb304b5659991ed932c0cd5bee6a7c88f4f</id>
<content type='text'>
Introduce a low-overhead mechanism to report information about
latencies of individual RPCs. The goal is to enable user space to
filter the trace record for latency outliers, or build histograms,
etc.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: move pc_count out of struct svc_procinfo</title>
<updated>2017-05-15T15:42:30Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2017-05-08T21:40:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7fd38af9cae6aef1dfd28a7d1bd214eb5ddb7d53'/>
<id>urn:sha1:7fd38af9cae6aef1dfd28a7d1bd214eb5ddb7d53</id>
<content type='text'>
pc_count is the only writeable memeber of struct svc_procinfo, which is
a good candidate to be const-ified as it contains function pointers.

This patch moves it into out out struct svc_procinfo, and into a
separate writable array that is pointed to by struct svc_version.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>sunrpc: mark all struct rpc_procinfo instances as const</title>
<updated>2017-05-15T15:42:20Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2017-05-12T13:36:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=499b4988109e91b76f231fb1b4f1e53ec3260686'/>
<id>urn:sha1:499b4988109e91b76f231fb1b4f1e53ec3260686</id>
<content type='text'>
struct rpc_procinfo contains function pointers, and marking it as
constant avoids it being able to be used as an attach vector for
code injections.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: move p_count out of struct rpc_procinfo</title>
<updated>2017-05-15T15:42:18Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2017-05-08T21:27:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c5876ddbdb401f814ef717394826e7dfb6704d4'/>
<id>urn:sha1:1c5876ddbdb401f814ef717394826e7dfb6704d4</id>
<content type='text'>
p_count is the only writeable memeber of struct rpc_procinfo, which is
a good candidate to be const-ified as it contains function pointers.

This patch moves it into out out struct rpc_procinfo, and into a
separate writable array that is pointed to by struct rpc_version and
indexed by p_statidx.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Proper metric accounting when RPC is not transmitted</title>
<updated>2016-11-29T21:45:44Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2016-11-29T15:52:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae09531d3c1f657c1701fa7fd076b125b0a4d8cf'/>
<id>urn:sha1:ae09531d3c1f657c1701fa7fd076b125b0a4d8cf</id>
<content type='text'>
I noticed recently that during an xfstests on a krb5i mount, the
retransmit count for certain operations had gone negative, and the
backlog value became unreasonably large. I recall that Andy has
pointed this out to me in the past.

When call_refresh fails to find a valid credential for an RPC, the
RPC exits immediately without sending anything on the wire. This
leaves rq_ntrans, rq_xtime, and rq_rtt set to zero.

The solution for om_queue is to not add the to RPC's running backlog
queue total whenever rq_xtime is zero.

For om_ntrans, it's a bit more difficult. A zero rq_ntrans causes
om_ops to become larger than om_ntrans. The design of the RPC
metrics API assumes that ntrans will always be equal to or larger
than the ops count. The result is that when an RPC fails to find
credentials, the RPC operation's reported retransmit count, which is
computed in user space as the difference between ops and ntrans,
goes negative.

Ideally the kernel API should report a separate retransmit and
"exited before initial transmission" metric, so that user space can
sort out the difference properly.

To avoid kernel API changes and changes to the way rq_ntrans is used
when performing transport locking, account for untransmitted RPCs
so that om_ntrans keeps up with om_ops: always add one or more to
om_ntrans.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: add rpc_count_iostats_idx</title>
<updated>2015-02-03T19:06:38Z</updated>
<author>
<name>Weston Andros Adamson</name>
</author>
<published>2014-06-24T14:59:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=840210fc4872bcbc17ab4f435f28021dce9d0aff'/>
<id>urn:sha1:840210fc4872bcbc17ab4f435f28021dce9d0aff</id>
<content type='text'>
Add a call to tally stats for a task under a different statsidx than
what's contained in the task structure.

This is needed to properly account for pnfs reads/writes when the
DS nfs version != the MDS version.

Signed-off-by: Weston Andros Adamson &lt;dros@primarydata.com&gt;
Signed-off-by: Tom Haynes &lt;Thomas.Haynes@primarydata.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: serialize iostats updates</title>
<updated>2014-11-25T21:22:15Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2014-11-09T01:15:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edef1297f33a4546559d905457b435a5ea160bab'/>
<id>urn:sha1:edef1297f33a4546559d905457b435a5ea160bab</id>
<content type='text'>
Occasionally mountstats reports a negative retransmission rate.
Ensure that two RPCs completing concurrently don't confuse the sums
in the transport's op_metrics array.

Since pNFS filelayout can invoke rpc_count_iostats() on another
transport from xprt_release(), we can't rely on simply holding the
transport_lock in xprt_release(). There's nothing for it but hard
serialization. One spin lock per RPC operation should make this as
painless as it can be.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Deprecate rpc_client-&gt;cl_protname</title>
<updated>2013-08-30T13:19:34Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2013-08-23T15:48:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55909f21a1079c5f9751d7919f8c9411500e1667'/>
<id>urn:sha1:55909f21a1079c5f9751d7919f8c9411500e1667</id>
<content type='text'>
It just duplicates the cl_program-&gt;name, and is not used in any fast
paths where the extra dereference will cause a hit.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>procfs: new helper - PDE_DATA(inode)</title>
<updated>2013-04-09T18:13:32Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2013-03-31T22:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d9dda78bad879595d8c4220a067fc029d6484a16'/>
<id>urn:sha1:d9dda78bad879595d8c4220a067fc029d6484a16</id>
<content type='text'>
The only part of proc_dir_entry the code outside of fs/proc
really cares about is PDE(inode)-&gt;data.  Provide a helper
for that; static inline for now, eventually will be moved
to fs/proc, along with the knowledge of struct proc_dir_entry
layout.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field</title>
<updated>2012-03-02T20:36:38Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2012-03-01T22:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2446ab6070861aba2dd9229463ffbc40016a9f33'/>
<id>urn:sha1:2446ab6070861aba2dd9229463ffbc40016a9f33</id>
<content type='text'>
A migration event will replace the rpc_xprt used by an rpc_clnt.  To
ensure this can be done safely, all references to cl_xprt must now use
a form of rcu_dereference().

Special care is taken with rpc_peeraddr2str(), which returns a pointer
to memory whose lifetime is the same as the rpc_xprt.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
[ cel: fix lockdep splats and layering violations ]
[ cel: forward ported to 3.4 ]
[ cel: remove rpc_max_reqs(), add rpc_net_ns() ]
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
