* [PATCH v4] sctp: Add buffer utilization fields to /proc/net/sctp/assocs
@ 2013-04-16 11:39 Dilip Daya
2013-04-16 20:40 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Dilip Daya @ 2013-04-16 11:39 UTC (permalink / raw)
To: Linux Netdev List, linux-sctp; +Cc: nhorman, dborkman
From: Dilip Daya <dilip.daya@hp.com>
sctp: Add buffer utilization fields to /proc/net/sctp/assocs
This patch adds the following fields to /proc/net/sctp/assocs output:
- sk->sk_wmem_alloc as "wmema" (transmit queue bytes committed)
- sk->sk_wmem_queued as "wmemq" (persistent queue size)
- sk->sk_sndbuf as "sndbuf" (size of send buffer in bytes)
- sk->sk_rcvbuf as "rcvbuf" (size of receive buffer in bytes)
When small DATA chunks containing 136 bytes data are sent the TX_QUEUE
(assoc->sndbuf_used) reaches a maximum of 40.9% of sk_sndbuf value when
peer.rwnd = 0. This was diagnosed from sk_wmem_alloc value reaching maximum
value of sk_sndbuf.
TX_QUEUE (assoc->sndbuf_used), sk_wmem_alloc and sk_wmem_queued values are
incremented in sctp_set_owner_w() for outgoing data chunks. Having access to
the above values in /proc/net/sctp/assocs will provide a better understanding
of SCTP buffer management.
With patch applied, example output when peer.rwnd = 0
where:
ASSOC ffff880132298000 is sender
ffff880125343000 is receiver
ASSOC SOCK STY SST ST HBKT ASSOC-ID TX_QUEUE RX_QUEUE \
ffff880132298000 ffff880124a0a0c0 2 1 3 29325 1 214656 0 \
ffff880125343000 ffff8801237d7700 2 1 3 36210 2 0 524520 \
UID INODE LPORT RPORT LADDRS <-> RADDRS HBINT INS OUTS \
0 25108 3455 3456 *10.4.8.3 <-> *10.5.8.3 7500 2 2 \
0 27819 3456 3455 *10.5.8.3 <-> *10.4.8.3 7500 2 2 \
MAXRT T1X T2X RTXC wmema wmemq sndbuf rcvbuf
4 0 0 72 525633 440320 524288 524288
4 0 0 0 1 0 524288 524288
Signed-off-by: Dilip Daya <dilip.daya@hp.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
---
v4: Fixed build errors.
v3: Fixed fields names, indentation and ancillary information.
v2: Not changing spacing between the fields.
Patch applied cleanly to v3.8.7 and v3.9-rc7. Tested build,
install and final output from /proc/net/sctp/assocs.
net/sctp/proc.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/net/sctp/proc.c b/net/sctp/proc.c
index ab3bba8..4e45ee3 100644
--- a/net/sctp/proc.c
+++ b/net/sctp/proc.c
@@ -295,7 +295,8 @@ static void * sctp_assocs_seq_start(struct seq_file *seq, loff_t *pos)
seq_printf(seq, " ASSOC SOCK STY SST ST HBKT "
"ASSOC-ID TX_QUEUE RX_QUEUE UID INODE LPORT "
"RPORT LADDRS <-> RADDRS "
- "HBINT INS OUTS MAXRT T1X T2X RTXC\n");
+ "HBINT INS OUTS MAXRT T1X T2X RTXC "
+ "wmema wmemq sndbuf rcvbuf\n");
return (void *)pos;
}
@@ -349,11 +350,16 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
sctp_seq_dump_local_addrs(seq, epb);
seq_printf(seq, "<-> ");
sctp_seq_dump_remote_addrs(seq, assoc);
- seq_printf(seq, "\t%8lu %5d %5d %4d %4d %4d %8d ",
+ seq_printf(seq, "\t%8lu %5d %5d %4d %4d %4d %8d "
+ "%8d %8d %8d %8d",
assoc->hbinterval, assoc->c.sinit_max_instreams,
assoc->c.sinit_num_ostreams, assoc->max_retrans,
assoc->init_retries, assoc->shutdown_retries,
- assoc->rtx_data_chunks);
+ assoc->rtx_data_chunks,
+ atomic_read(&sk->sk_wmem_alloc),
+ sk->sk_wmem_queued,
+ sk->sk_sndbuf,
+ sk->sk_rcvbuf);
seq_printf(seq, "\n");
}
read_unlock(&head->lock);
--
1.5.6.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v4] sctp: Add buffer utilization fields to /proc/net/sctp/assocs
2013-04-16 11:39 [PATCH v4] sctp: Add buffer utilization fields to /proc/net/sctp/assocs Dilip Daya
@ 2013-04-16 20:40 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2013-04-16 20:40 UTC (permalink / raw)
To: dilip.daya; +Cc: netdev, linux-sctp, nhorman, dborkman
From: Dilip Daya <dilip.daya@hp.com>
Date: Tue, 16 Apr 2013 07:39:07 -0400
> From: Dilip Daya <dilip.daya@hp.com>
>
> sctp: Add buffer utilization fields to /proc/net/sctp/assocs
>
> This patch adds the following fields to /proc/net/sctp/assocs output:
>
> - sk->sk_wmem_alloc as "wmema" (transmit queue bytes committed)
> - sk->sk_wmem_queued as "wmemq" (persistent queue size)
> - sk->sk_sndbuf as "sndbuf" (size of send buffer in bytes)
> - sk->sk_rcvbuf as "rcvbuf" (size of receive buffer in bytes)
>
> When small DATA chunks containing 136 bytes data are sent the TX_QUEUE
> (assoc->sndbuf_used) reaches a maximum of 40.9% of sk_sndbuf value when
> peer.rwnd = 0. This was diagnosed from sk_wmem_alloc value reaching maximum
> value of sk_sndbuf.
>
> TX_QUEUE (assoc->sndbuf_used), sk_wmem_alloc and sk_wmem_queued values are
> incremented in sctp_set_owner_w() for outgoing data chunks. Having access to
> the above values in /proc/net/sctp/assocs will provide a better understanding
> of SCTP buffer management.
...
> Signed-off-by: Dilip Daya <dilip.daya@hp.com>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
Applied.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-04-16 20:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-16 11:39 [PATCH v4] sctp: Add buffer utilization fields to /proc/net/sctp/assocs Dilip Daya
2013-04-16 20:40 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).