Messages in this thread | | | Date | Tue, 28 Nov 2017 10:31:08 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH] mm/vmscan: try to optimize branch procedures. |
| |
On Tue 28-11-17 17:19:10, jiang.biao2@zte.com.cn wrote: > > On Tue 28-11-17 09:49:45, 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. > > > > How have you measured benefit of this patch? > No accurate measurement for now. > Theoretically, unlikely could improve branch prediction for unlikely branch.
Yes, except that this is a slow path and I suspect that branch prediction has minimal if at all.
> It's hard to measure the benefit of 2 and 3, any idea to do that enlightened > would be greatly appreciated. :) But it could simply code logic from coding > perspective。
Well, in general I wouldn't touch the code without a clear benefit. Theoretical but unmeasurable changes would require a bigger benefit. I am not saying it is wrong at all but I am not conviced your patch is really worth merging. -- Michal Hocko SUSE Labs
| |