Re: [PATCH net-next 8/9] rxrpc: Reduce the number of PING ACKs sent
Hi David, [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/David-Howells/rxrpc-Preparation-for-slow-start-algorithm/20160922-085242 config: i386-randconfig-x009-201638 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: the linux-review/David-Howells/rxrpc-Preparation-for-slow-start-algorithm/20160922-085242 HEAD f739ad653a9471b67eb8fc01185c01c2ca1dcb4b builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): net/rxrpc/input.c: In function 'rxrpc_send_ping': >> net/rxrpc/input.c:50:42: error: 'struct rxrpc_peer' has no member named >> 'rtt_last_req'; did you mean 'rtt_cache'? ktime_before(ktime_add_ms(call->peer->rtt_last_req, 1000), now)) ^~ vim +50 net/rxrpc/input.c 44 int skew) 45 { 46 struct rxrpc_skb_priv *sp = rxrpc_skb(skb); 47 ktime_t now = skb->tstamp; 48 49 if (call->peer->rtt_usage < 3 || > 50 ktime_before(ktime_add_ms(call->peer->rtt_last_req, 1000), now)) 51 rxrpc_propose_ACK(call, RXRPC_ACK_PING, skew, sp->hdr.serial, 52true, true); 53 } --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
[PATCH net-next 8/9] rxrpc: Reduce the number of PING ACKs sent
We don't want to send a PING ACK for every new incoming call as that just adds to the network traffic. Instead, we send a PING ACK to the first three that we receive and then once per second thereafter. This could probably be made adjustable in future. Signed-off-by: David Howells --- net/rxrpc/input.c |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c index c121949de3c8..cbb5d53f09d7 100644 --- a/net/rxrpc/input.c +++ b/net/rxrpc/input.c @@ -44,9 +44,12 @@ static void rxrpc_send_ping(struct rxrpc_call *call, struct sk_buff *skb, int skew) { struct rxrpc_skb_priv *sp = rxrpc_skb(skb); + ktime_t now = skb->tstamp; - rxrpc_propose_ACK(call, RXRPC_ACK_PING, skew, sp->hdr.serial, - true, true); + if (call->peer->rtt_usage < 3 || + ktime_before(ktime_add_ms(call->peer->rtt_last_req, 1000), now)) + rxrpc_propose_ACK(call, RXRPC_ACK_PING, skew, sp->hdr.serial, + true, true); } /*