On 10/4/24 6:48 PM, Breno Leitao wrote: > Performance analysis using branch annotation on a fleet of 200 hosts > running web servers revealed that the 'likely' hint in > vms_gather_munmap_vmas() was 100% consistently incorrect. In all > observed cases, the branch behavior contradicted the hint. > > Remove the 'unlikely' qualifier from the condition checking 'vms->uf'. > By doing so, we allow the compiler to make optimization decisions based > on its own heuristics and profiling data, rather than relying on a > static hint that has proven to be inaccurate in real-world scenarios. > > Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > --- > mm/vma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/vma.c b/mm/vma.c > index 4737afcb064c..9d4fe794dd07 100644 > --- a/mm/vma.c > +++ b/mm/vma.c > @@ -1250,7 +1250,7 @@ int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, > else if (is_data_mapping(next->vm_flags)) > vms->data_vm += nrpages; > > - if (unlikely(vms->uf)) { > + if (vms->uf) { > /* > * If userfaultfd_unmap_prep returns an error the vmas > * will remain split, but userland will get a