[PATCH] mm: Remove misleading 'unlikely' hint in vms_gather_munmap_vmas()

From: Breno Leitao
Date: Fri Oct 04 2024 - 12:48:48 EST


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>
---
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
--
2.43.5