Re: [PATCH v3 net-next 16/16] tcp_bbr: add BBR congestion control
flat view
From: Eric Dumazet <hidden>
Date: 2016-09-19 23:33:55
It generates some slightly smaller code.
if (bbr->lt_rtt_cnt < bbr_lt_intvl_min_rtts)
- 3e7: 0f b6 c0 movzbl %al,%eax
- 3ea: 83 f8 03 cmp $0x3,%eax
- 3ed: 0f 86 d4 00 00 00 jbe 4c7 <bbr_lt_bw_sampling.isra.6+0x157>
+ 3e7: 3c 03 cmp $0x3,%al
+ 3e9: 0f 86 d1 00 00 00 jbe 4c0 <bbr_lt_bw_sampling.isra.6+0x150>
And different code for abs
/* Is new bw close to the lt_bw from the previous interval? */
diff = abs(bw - bbr->lt_bw);
- 47a: 44 89 e2 mov %r12d,%edx
- 47d: 29 c2 sub %eax,%edx
- 47f: 89 d1 mov %edx,%ecx
- 481: 89 d3 mov %edx,%ebx
+ 475: 44 89 e3 mov %r12d,%ebx
+ 478: 29 c3 sub %eax,%ebx
+ 47a: 89 da mov %ebx,%edx
+ 47c: c1 fa 1f sar $0x1f,%edx
+ 47f: 31 d3 xor %edx,%ebx
+ 481: 29 d3 sub %edx,%ebx
The biggest change is getting rid of the always true conditional....
Overall, it really makes little difference. Actual file sizes come out the same. The idea is more to document what is variable and what is immutable in the algorithm.
SGTM, thanks Stephen !