On Tue, Nov 28, 2017 at 09:49:45AM +0800, Jiang Biao wrote: > 1. Use unlikely to try to improve branch prediction. The > *total_scan < 0* branch is unlikely to reach, so use unlikely. > > 2. Optimize *next_deferred >= scanned* condition. > *next_deferred >= scanned* condition could be optimized into > *next_deferred > scanned*, because when *next_deferred == scanned*, > next_deferred shoud be 0, which is covered by the else branch. > > 3. Merge two branch blocks into one. The *next_deferred > 0* branch > could be merged into *next_deferred > scanned* to simplify the code. > > Signed-off-by: Jiang Biao <jiang.bi...@zte.com.cn>
These are slow paths. Do you have perf data indicating the branches are frequently mispredicted? Do you have data showing this improves performance? -- Mel Gorman SUSE Labs