mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
rxrpc: Record stats for why the REQUEST-ACK flag is being set
Record stats for why the REQUEST-ACK flag is being set. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org
This commit is contained in:
parent
f2a676d100
commit
f7fa52421f
@ -250,6 +250,7 @@
|
||||
EM(rxrpc_reqack_retrans, "RETRANS ") \
|
||||
EM(rxrpc_reqack_slow_start, "SLOW-START") \
|
||||
E_(rxrpc_reqack_small_txwin, "SMALL-TXWN")
|
||||
/* ---- Must update size of stat_why_req_ack[] if more are added! */
|
||||
|
||||
/*
|
||||
* Generate enums for tracing information.
|
||||
|
@ -107,6 +107,8 @@ struct rxrpc_net {
|
||||
atomic_t stat_tx_ack_skip;
|
||||
atomic_t stat_tx_acks[256];
|
||||
atomic_t stat_rx_acks[256];
|
||||
|
||||
atomic_t stat_why_req_ack[8];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -430,6 +430,7 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
else
|
||||
goto dont_set_request_ack;
|
||||
|
||||
rxrpc_inc_stat(call->rxnet, stat_why_req_ack[why]);
|
||||
trace_rxrpc_req_ack(call->debug_id, sp->hdr.seq, why);
|
||||
if (why != rxrpc_reqack_no_srv_last)
|
||||
whdr.flags |= RXRPC_REQUEST_ACK;
|
||||
|
@ -445,6 +445,18 @@ int rxrpc_stats_show(struct seq_file *seq, void *v)
|
||||
atomic_read(&rxnet->stat_rx_acks[RXRPC_ACK_PING_RESPONSE]),
|
||||
atomic_read(&rxnet->stat_rx_acks[RXRPC_ACK_DELAY]),
|
||||
atomic_read(&rxnet->stat_rx_acks[RXRPC_ACK_IDLE]));
|
||||
seq_printf(seq,
|
||||
"Why-Req-A: acklost=%u already=%u mrtt=%u ortt=%u\n",
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_ack_lost]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_already_on]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_more_rtt]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_old_rtt]));
|
||||
seq_printf(seq,
|
||||
"Why-Req-A: nolast=%u retx=%u slows=%u smtxw=%u\n",
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_no_srv_last]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_retrans]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_slow_start]),
|
||||
atomic_read(&rxnet->stat_why_req_ack[rxrpc_reqack_small_txwin]));
|
||||
seq_printf(seq,
|
||||
"Buffers : txb=%u rxb=%u\n",
|
||||
atomic_read(&rxrpc_n_tx_skbs),
|
||||
@ -476,5 +488,7 @@ int rxrpc_stats_clear(struct file *file, char *buf, size_t size)
|
||||
atomic_set(&rxnet->stat_tx_ack_skip, 0);
|
||||
memset(&rxnet->stat_tx_acks, 0, sizeof(rxnet->stat_tx_acks));
|
||||
memset(&rxnet->stat_rx_acks, 0, sizeof(rxnet->stat_rx_acks));
|
||||
|
||||
memset(&rxnet->stat_why_req_ack, 0, sizeof(rxnet->stat_why_req_ack));
|
||||
return size;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user