diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -623,6 +623,9 @@
 coreconfigitem('experimental', 'web.api.debugreflect',
     default=False,
 )
+coreconfigitem('experimental', 'worker.wdir-get-cpu-heavy',
+    default=True,
+)
 coreconfigitem('experimental', 'xdiff',
     default=False,
 )
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -1637,9 +1637,11 @@
             wctx[f0].remove()
         progress.increment(item=f)
 
-    # get in parallel
+    # get in parallel.
+    cpuheavy = repo.ui.configbool('experimental', 'worker.wdir-get-cpu-heavy')
     prog = worker.worker(repo.ui, cost, batchget, (repo, mctx, wctx),
-                         actions[ACTION_GET])
+                         actions[ACTION_GET],
+                         cpuheavy=cpuheavy)
     for i, item in prog:
         progress.increment(step=i, item=item)
     updated = len(actions[ACTION_GET])