[git] Use --jobs with git submodule update

Change-Id: I7975abc7f4850f21d5aebd9b7862d90f9f251e66
Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/615221
Commit-Queue: Rob Mohr <mohrr@google.com>
Fuchsia-Auto-Submit: Rob Mohr <mohrr@google.com>
Reviewed-by: Marc-Antoine Ruel <maruel@google.com>
Commit-Queue: Marc-Antoine Ruel <maruel@google.com>
diff --git a/recipe_modules/auto_roller/examples/full.expected/abandoned.json b/recipe_modules/auto_roller/examples/full.expected/abandoned.json
index 27c11d2..c289015 100644
--- a/recipe_modules/auto_roller/examples/full.expected/abandoned.json
+++ b/recipe_modules/auto_roller/examples/full.expected/abandoned.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/cq_failure.json b/recipe_modules/auto_roller/examples/full.expected/cq_failure.json
index b8cac27..bfac47e 100644
--- a/recipe_modules/auto_roller/examples/full.expected/cq_failure.json
+++ b/recipe_modules/auto_roller/examples/full.expected/cq_failure.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/dry_run_failure.json b/recipe_modules/auto_roller/examples/full.expected/dry_run_failure.json
index b03069c..f79b9bc 100644
--- a/recipe_modules/auto_roller/examples/full.expected/dry_run_failure.json
+++ b/recipe_modules/auto_roller/examples/full.expected/dry_run_failure.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/dry_run_no_comment.json b/recipe_modules/auto_roller/examples/full.expected/dry_run_no_comment.json
index fc1e395..9e58791 100644
--- a/recipe_modules/auto_roller/examples/full.expected/dry_run_no_comment.json
+++ b/recipe_modules/auto_roller/examples/full.expected/dry_run_no_comment.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/dry_run_slow_comment.json b/recipe_modules/auto_roller/examples/full.expected/dry_run_slow_comment.json
index 947f823..d7d41dd 100644
--- a/recipe_modules/auto_roller/examples/full.expected/dry_run_slow_comment.json
+++ b/recipe_modules/auto_roller/examples/full.expected/dry_run_slow_comment.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/dry_run_success.json b/recipe_modules/auto_roller/examples/full.expected/dry_run_success.json
index ff1c191..400b804 100644
--- a/recipe_modules/auto_roller/examples/full.expected/dry_run_success.json
+++ b/recipe_modules/auto_roller/examples/full.expected/dry_run_success.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/dry_run_two_checks.json b/recipe_modules/auto_roller/examples/full.expected/dry_run_two_checks.json
index d001222..9c46fe8 100644
--- a/recipe_modules/auto_roller/examples/full.expected/dry_run_two_checks.json
+++ b/recipe_modules/auto_roller/examples/full.expected/dry_run_two_checks.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/existing_roll.json b/recipe_modules/auto_roller/examples/full.expected/existing_roll.json
index 1f2a05a..22a4b24 100644
--- a/recipe_modules/auto_roller/examples/full.expected/existing_roll.json
+++ b/recipe_modules/auto_roller/examples/full.expected/existing_roll.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/existing_roll_merged.json b/recipe_modules/auto_roller/examples/full.expected/existing_roll_merged.json
index db2f962..050d928 100644
--- a/recipe_modules/auto_roller/examples/full.expected/existing_roll_merged.json
+++ b/recipe_modules/auto_roller/examples/full.expected/existing_roll_merged.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/existing_roll_not_abandoned.json b/recipe_modules/auto_roller/examples/full.expected/existing_roll_not_abandoned.json
index 08e0c32..9fb2939 100644
--- a/recipe_modules/auto_roller/examples/full.expected/existing_roll_not_abandoned.json
+++ b/recipe_modules/auto_roller/examples/full.expected/existing_roll_not_abandoned.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/force_submit.json b/recipe_modules/auto_roller/examples/full.expected/force_submit.json
index b3b9edb..8b4b26d 100644
--- a/recipe_modules/auto_roller/examples/full.expected/force_submit.json
+++ b/recipe_modules/auto_roller/examples/full.expected/force_submit.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/force_submit_dry_run.json b/recipe_modules/auto_roller/examples/full.expected/force_submit_dry_run.json
index a5c5412..d511bce 100644
--- a/recipe_modules/auto_roller/examples/full.expected/force_submit_dry_run.json
+++ b/recipe_modules/auto_roller/examples/full.expected/force_submit_dry_run.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/include_tryjobs.json b/recipe_modules/auto_roller/examples/full.expected/include_tryjobs.json
index 7319b79..61d9fc8 100644
--- a/recipe_modules/auto_roller/examples/full.expected/include_tryjobs.json
+++ b/recipe_modules/auto_roller/examples/full.expected/include_tryjobs.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/integral_poll_secs.json b/recipe_modules/auto_roller/examples/full.expected/integral_poll_secs.json
index 1eb3773..e498fe7 100644
--- a/recipe_modules/auto_roller/examples/full.expected/integral_poll_secs.json
+++ b/recipe_modules/auto_roller/examples/full.expected/integral_poll_secs.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/no_commit_queue.json b/recipe_modules/auto_roller/examples/full.expected/no_commit_queue.json
index a87cc7b..55c9725 100644
--- a/recipe_modules/auto_roller/examples/full.expected/no_commit_queue.json
+++ b/recipe_modules/auto_roller/examples/full.expected/no_commit_queue.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/no_tryjobs.json b/recipe_modules/auto_roller/examples/full.expected/no_tryjobs.json
index 4c4f11b..a431ff8 100644
--- a/recipe_modules/auto_roller/examples/full.expected/no_tryjobs.json
+++ b/recipe_modules/auto_roller/examples/full.expected/no_tryjobs.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/noop.json b/recipe_modules/auto_roller/examples/full.expected/noop.json
index 548ae15..cfaa655 100644
--- a/recipe_modules/auto_roller/examples/full.expected/noop.json
+++ b/recipe_modules/auto_roller/examples/full.expected/noop.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/pass_last_second.json b/recipe_modules/auto_roller/examples/full.expected/pass_last_second.json
index fdb9417..2e70510 100644
--- a/recipe_modules/auto_roller/examples/full.expected/pass_last_second.json
+++ b/recipe_modules/auto_roller/examples/full.expected/pass_last_second.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_failed.json b/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_failed.json
index 8fef1f9..1a1645b 100644
--- a/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_failed.json
+++ b/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_failed.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_successful.json b/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_successful.json
index 6c6bade..95e5bea 100644
--- a/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_successful.json
+++ b/recipe_modules/auto_roller/examples/full.expected/previous_dry_run_successful.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/successful_roll.json b/recipe_modules/auto_roller/examples/full.expected/successful_roll.json
index 8cf00d8..a86d4af 100644
--- a/recipe_modules/auto_roller/examples/full.expected/successful_roll.json
+++ b/recipe_modules/auto_roller/examples/full.expected/successful_roll.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/test_extra_labels.json b/recipe_modules/auto_roller/examples/full.expected/test_extra_labels.json
index fb206ba..c72c4f7 100644
--- a/recipe_modules/auto_roller/examples/full.expected/test_extra_labels.json
+++ b/recipe_modules/auto_roller/examples/full.expected/test_extra_labels.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/test_extra_labels_rejected.json b/recipe_modules/auto_roller/examples/full.expected/test_extra_labels_rejected.json
index 5d82229..06dcaf6 100644
--- a/recipe_modules/auto_roller/examples/full.expected/test_extra_labels_rejected.json
+++ b/recipe_modules/auto_roller/examples/full.expected/test_extra_labels_rejected.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/timeout.json b/recipe_modules/auto_roller/examples/full.expected/timeout.json
index ca612cd..018158f 100644
--- a/recipe_modules/auto_roller/examples/full.expected/timeout.json
+++ b/recipe_modules/auto_roller/examples/full.expected/timeout.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/auto_roller/examples/full.expected/untracked_files__with_led.json b/recipe_modules/auto_roller/examples/full.expected/untracked_files__with_led.json
index b4a48ae..2ba60c3 100644
--- a/recipe_modules/auto_roller/examples/full.expected/untracked_files__with_led.json
+++ b/recipe_modules/auto_roller/examples/full.expected/untracked_files__with_led.json
@@ -497,7 +497,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/integration",
     "luci_context": {
diff --git a/recipe_modules/git/__init__.py b/recipe_modules/git/__init__.py
index 59a9f80..15d2630 100644
--- a/recipe_modules/git/__init__.py
+++ b/recipe_modules/git/__init__.py
@@ -10,6 +10,7 @@
     "recipe_engine/context",
     "recipe_engine/file",
     "recipe_engine/path",
+    "recipe_engine/platform",
     "recipe_engine/raw_io",
     "recipe_engine/step",
 ]
diff --git a/recipe_modules/git/api.py b/recipe_modules/git/api.py
index 773cf8f..64bc520 100644
--- a/recipe_modules/git/api.py
+++ b/recipe_modules/git/api.py
@@ -467,6 +467,7 @@
             args.append("--recursive")
         if force:
             args.append("--force")
+        args.extend(("--jobs", str(min(16, max(2, self.m.platform.cpu_count // 2)))))
         if paths:
             args.extend(paths)
         return self(step_name, *args, **kwargs)
diff --git a/recipe_modules/git/examples/full.expected/basic.json b/recipe_modules/git/examples/full.expected/basic.json
index 4f6275f..8f5b54f 100644
--- a/recipe_modules/git/examples/full.expected/basic.json
+++ b/recipe_modules/git/examples/full.expected/basic.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -559,6 +563,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -572,7 +578,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_branch.json b/recipe_modules/git/examples/full.expected/basic_branch.json
index a139319..d37a555 100644
--- a/recipe_modules/git/examples/full.expected/basic_branch.json
+++ b/recipe_modules/git/examples/full.expected/basic_branch.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -561,6 +565,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -574,7 +580,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_branch_cache.json b/recipe_modules/git/examples/full.expected/basic_branch_cache.json
index 7a6825f..4da1faf 100644
--- a/recipe_modules/git/examples/full.expected/basic_branch_cache.json
+++ b/recipe_modules/git/examples/full.expected/basic_branch_cache.json
@@ -319,7 +319,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -603,7 +605,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -899,6 +903,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -912,7 +918,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_cache.json b/recipe_modules/git/examples/full.expected/basic_cache.json
index c4c7168..68fbf1e 100644
--- a/recipe_modules/git/examples/full.expected/basic_cache.json
+++ b/recipe_modules/git/examples/full.expected/basic_cache.json
@@ -319,7 +319,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -603,7 +605,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -898,6 +902,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -911,7 +917,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_ci.json b/recipe_modules/git/examples/full.expected/basic_ci.json
index d3fb0aa..9dab5bf 100644
--- a/recipe_modules/git/examples/full.expected/basic_ci.json
+++ b/recipe_modules/git/examples/full.expected/basic_ci.json
@@ -254,7 +254,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -492,7 +494,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "luci_context": {
@@ -1077,6 +1081,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -1102,7 +1108,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "luci_context": {
diff --git a/recipe_modules/git/examples/full.expected/basic_cq.json b/recipe_modules/git/examples/full.expected/basic_cq.json
index 1ab7bdb..4cf64fd 100644
--- a/recipe_modules/git/examples/full.expected/basic_cq.json
+++ b/recipe_modules/git/examples/full.expected/basic_cq.json
@@ -262,7 +262,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -535,7 +537,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -798,7 +802,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "luci_context": {
@@ -1381,6 +1387,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -1406,7 +1414,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "luci_context": {
diff --git a/recipe_modules/git/examples/full.expected/basic_depth_cache.json b/recipe_modules/git/examples/full.expected/basic_depth_cache.json
index 9667a46..046c528 100644
--- a/recipe_modules/git/examples/full.expected/basic_depth_cache.json
+++ b/recipe_modules/git/examples/full.expected/basic_depth_cache.json
@@ -323,7 +323,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -611,7 +613,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -906,6 +910,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -919,7 +925,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_file.json b/recipe_modules/git/examples/full.expected/basic_file.json
index 14dfe62..c7abdee 100644
--- a/recipe_modules/git/examples/full.expected/basic_file.json
+++ b/recipe_modules/git/examples/full.expected/basic_file.json
@@ -149,7 +149,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -269,7 +271,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -564,6 +568,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -577,7 +583,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_hash.json b/recipe_modules/git/examples/full.expected/basic_hash.json
index 3a925a7..431019e 100644
--- a/recipe_modules/git/examples/full.expected/basic_hash.json
+++ b/recipe_modules/git/examples/full.expected/basic_hash.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -264,7 +266,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -560,6 +564,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -573,7 +579,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_hash_cache.json b/recipe_modules/git/examples/full.expected/basic_hash_cache.json
index 5e9af51..530661a 100644
--- a/recipe_modules/git/examples/full.expected/basic_hash_cache.json
+++ b/recipe_modules/git/examples/full.expected/basic_hash_cache.json
@@ -319,7 +319,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -602,7 +604,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -898,6 +902,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -911,7 +917,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_path.json b/recipe_modules/git/examples/full.expected/basic_path.json
index d3d54b5..54dba09 100644
--- a/recipe_modules/git/examples/full.expected/basic_path.json
+++ b/recipe_modules/git/examples/full.expected/basic_path.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/foo",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/foo",
     "name": "submodule.git submodule update",
@@ -560,6 +564,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -573,7 +579,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/foo",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_ref.json b/recipe_modules/git/examples/full.expected/basic_ref.json
index bbad2a7..690d224 100644
--- a/recipe_modules/git/examples/full.expected/basic_ref.json
+++ b/recipe_modules/git/examples/full.expected/basic_ref.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -561,6 +565,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -574,7 +580,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/basic_ref_cache.json b/recipe_modules/git/examples/full.expected/basic_ref_cache.json
index b534c0c..d4e806a 100644
--- a/recipe_modules/git/examples/full.expected/basic_ref_cache.json
+++ b/recipe_modules/git/examples/full.expected/basic_ref_cache.json
@@ -319,7 +319,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -603,7 +605,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -899,6 +903,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -912,7 +918,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
diff --git a/recipe_modules/git/examples/full.expected/snap.json b/recipe_modules/git/examples/full.expected/snap.json
index 76344e9..38ba608 100644
--- a/recipe_modules/git/examples/full.expected/snap.json
+++ b/recipe_modules/git/examples/full.expected/snap.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -560,6 +564,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -573,7 +579,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
@@ -1139,7 +1147,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/snap_branch_tmp_1",
     "name": "snap branch.submodule.git submodule update",
diff --git a/recipe_modules/git/examples/full.expected/snap_path.json b/recipe_modules/git/examples/full.expected/snap_path.json
index 4e0d75d..77cd14a 100644
--- a/recipe_modules/git/examples/full.expected/snap_path.json
+++ b/recipe_modules/git/examples/full.expected/snap_path.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -560,6 +564,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -573,7 +579,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
@@ -1139,7 +1147,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/snap_workdir",
     "name": "snap branch.submodule.git submodule update",
diff --git a/recipe_modules/git/examples/full.expected/snap_to_same_ref.json b/recipe_modules/git/examples/full.expected/snap_to_same_ref.json
index 29ebef6..13a79ad 100644
--- a/recipe_modules/git/examples/full.expected/snap_to_same_ref.json
+++ b/recipe_modules/git/examples/full.expected/snap_to_same_ref.json
@@ -147,7 +147,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "infra_step": true,
@@ -265,7 +267,9 @@
       "update",
       "--init",
       "--recursive",
-      "--force"
+      "--force",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "submodule.git submodule update",
@@ -560,6 +564,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "a",
       "b",
       "c"
@@ -573,7 +579,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia",
     "name": "git submodule update (2)"
@@ -1139,7 +1147,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/snap_branch_tmp_1",
     "name": "snap branch.submodule.git submodule update",
diff --git a/recipes/contrib/binutils.expected/build_fail.json b/recipes/contrib/binutils.expected/build_fail.json
index 94bb543..6fc6724 100644
--- a/recipes/contrib/binutils.expected/build_fail.json
+++ b/recipes/contrib/binutils.expected/build_fail.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/binutils.expected/configure_fail.json b/recipes/contrib/binutils.expected/configure_fail.json
index b2be361..7b8b7a8 100644
--- a/recipes/contrib/binutils.expected/configure_fail.json
+++ b/recipes/contrib/binutils.expected/configure_fail.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/binutils.expected/linux_arm.json b/recipes/contrib/binutils.expected/linux_arm.json
index 50fd540..83fef1f 100644
--- a/recipes/contrib/binutils.expected/linux_arm.json
+++ b/recipes/contrib/binutils.expected/linux_arm.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/binutils.expected/linux_intel.json b/recipes/contrib/binutils.expected/linux_intel.json
index f46fc3d..2000e95 100644
--- a/recipes/contrib/binutils.expected/linux_intel.json
+++ b/recipes/contrib/binutils.expected/linux_intel.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/binutils.expected/mac_intel.json b/recipes/contrib/binutils.expected/mac_intel.json
index aa6ff7e..48b269a 100644
--- a/recipes/contrib/binutils.expected/mac_intel.json
+++ b/recipes/contrib/binutils.expected/mac_intel.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/binutils.expected/prod.json b/recipes/contrib/binutils.expected/prod.json
index 23ef701..ebd1099 100644
--- a/recipes/contrib/binutils.expected/prod.json
+++ b/recipes/contrib/binutils.expected/prod.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
diff --git a/recipes/contrib/bloaty.expected/linux_ci.json b/recipes/contrib/bloaty.expected/linux_ci.json
index 2b67b9b..e02e305 100644
--- a/recipes/contrib/bloaty.expected/linux_ci.json
+++ b/recipes/contrib/bloaty.expected/linux_ci.json
@@ -593,7 +593,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/bloaty_src",
     "infra_step": true,
diff --git a/recipes/contrib/bloaty.expected/mac_try.json b/recipes/contrib/bloaty.expected/mac_try.json
index 53ea569..516ef31 100644
--- a/recipes/contrib/bloaty.expected/mac_try.json
+++ b/recipes/contrib/bloaty.expected/mac_try.json
@@ -786,7 +786,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/bloaty_src",
     "infra_step": true,
@@ -1350,7 +1352,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/bloaty_src",
     "infra_step": true,
diff --git a/recipes/contrib/breakpad_tools.expected/default.json b/recipes/contrib/breakpad_tools.expected/default.json
index e9dbb00..f5e5497 100644
--- a/recipes/contrib/breakpad_tools.expected/default.json
+++ b/recipes/contrib/breakpad_tools.expected/default.json
@@ -292,7 +292,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/depot_tools",
     "infra_step": true,
diff --git a/recipes/contrib/cargo_build.expected/ci.json b/recipes/contrib/cargo_build.expected/ci.json
index 3fa2d44..51c49c4 100644
--- a/recipes/contrib/cargo_build.expected/ci.json
+++ b/recipes/contrib/cargo_build.expected/ci.json
@@ -349,7 +349,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust-bindgen",
     "infra_step": true,
diff --git a/recipes/contrib/cargo_build.expected/prod.json b/recipes/contrib/cargo_build.expected/prod.json
index 72674da..b2739e8 100644
--- a/recipes/contrib/cargo_build.expected/prod.json
+++ b/recipes/contrib/cargo_build.expected/prod.json
@@ -349,7 +349,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust-bindgen",
     "infra_step": true,
diff --git a/recipes/contrib/clang_ml_training.expected/bootstrap.json b/recipes/contrib/clang_ml_training.expected/bootstrap.json
index 214e2a4..05f0edb 100644
--- a/recipes/contrib/clang_ml_training.expected/bootstrap.json
+++ b/recipes/contrib/clang_ml_training.expected/bootstrap.json
@@ -550,7 +550,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/ml-compiler-opt",
     "infra_step": true,
@@ -1706,7 +1708,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/clang_ml_training.expected/first.json b/recipes/contrib/clang_ml_training.expected/first.json
index 41b0a52..e6ab289 100644
--- a/recipes/contrib/clang_ml_training.expected/first.json
+++ b/recipes/contrib/clang_ml_training.expected/first.json
@@ -550,7 +550,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/ml-compiler-opt",
     "infra_step": true,
diff --git a/recipes/contrib/clang_ml_training.expected/last.json b/recipes/contrib/clang_ml_training.expected/last.json
index da9b20d..6a157a0 100644
--- a/recipes/contrib/clang_ml_training.expected/last.json
+++ b/recipes/contrib/clang_ml_training.expected/last.json
@@ -550,7 +550,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/ml-compiler-opt",
     "infra_step": true,
diff --git a/recipes/contrib/clang_toolchain.expected/ci_linux_x64.json b/recipes/contrib/clang_toolchain.expected/ci_linux_x64.json
index a65e151..994695f 100644
--- a/recipes/contrib/clang_toolchain.expected/ci_linux_x64.json
+++ b/recipes/contrib/clang_toolchain.expected/ci_linux_x64.json
@@ -689,7 +689,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1392,7 +1394,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "env": {
@@ -2197,7 +2201,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "env": {
diff --git a/recipes/contrib/clang_toolchain.expected/ci_mac_x64.json b/recipes/contrib/clang_toolchain.expected/ci_mac_x64.json
index 71c9bd7..76805b1 100644
--- a/recipes/contrib/clang_toolchain.expected/ci_mac_x64.json
+++ b/recipes/contrib/clang_toolchain.expected/ci_mac_x64.json
@@ -683,7 +683,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1552,7 +1554,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "env": {
@@ -2351,7 +2355,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "env": {
diff --git a/recipes/contrib/clang_toolchain.expected/linux_arm64.json b/recipes/contrib/clang_toolchain.expected/linux_arm64.json
index f3afddb..e624c92 100644
--- a/recipes/contrib/clang_toolchain.expected/linux_arm64.json
+++ b/recipes/contrib/clang_toolchain.expected/linux_arm64.json
@@ -647,7 +647,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1230,7 +1232,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "luci_context": {
@@ -1934,7 +1938,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "luci_context": {
diff --git a/recipes/contrib/clang_toolchain.expected/mac_lld.json b/recipes/contrib/clang_toolchain.expected/mac_lld.json
index c859ef6..a624b79 100644
--- a/recipes/contrib/clang_toolchain.expected/mac_lld.json
+++ b/recipes/contrib/clang_toolchain.expected/mac_lld.json
@@ -683,7 +683,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1552,7 +1554,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "env": {
@@ -2351,7 +2355,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "env": {
diff --git a/recipes/contrib/clang_toolchain.expected/prod_linux_x64.json b/recipes/contrib/clang_toolchain.expected/prod_linux_x64.json
index 025f6c7..622392a 100644
--- a/recipes/contrib/clang_toolchain.expected/prod_linux_x64.json
+++ b/recipes/contrib/clang_toolchain.expected/prod_linux_x64.json
@@ -689,7 +689,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1392,7 +1394,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "env": {
@@ -2197,7 +2201,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "env": {
diff --git a/recipes/contrib/clang_toolchain.expected/prod_mac_x64.json b/recipes/contrib/clang_toolchain.expected/prod_mac_x64.json
index ca5e5ec..917baaa 100644
--- a/recipes/contrib/clang_toolchain.expected/prod_mac_x64.json
+++ b/recipes/contrib/clang_toolchain.expected/prod_mac_x64.json
@@ -683,7 +683,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
@@ -1552,7 +1554,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/zlib/src",
     "env": {
@@ -2351,7 +2355,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/libxml2/src",
     "env": {
diff --git a/recipes/contrib/clang_toolchain.expected/windows_amd64.json b/recipes/contrib/clang_toolchain.expected/windows_amd64.json
index e69ae8d..c4f8ea2 100644
--- a/recipes/contrib/clang_toolchain.expected/windows_amd64.json
+++ b/recipes/contrib/clang_toolchain.expected/windows_amd64.json
@@ -637,7 +637,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]\\llvm-project",
     "infra_step": true,
@@ -1467,7 +1469,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]\\zlib\\src",
     "env": {
@@ -2369,7 +2373,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]\\libxml2\\src",
     "env": {
diff --git a/recipes/contrib/cmake.expected/linux.json b/recipes/contrib/cmake.expected/linux.json
index 7c26a70..3dee4fa 100644
--- a/recipes/contrib/cmake.expected/linux.json
+++ b/recipes/contrib/cmake.expected/linux.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/cmake",
     "infra_step": true,
diff --git a/recipes/contrib/cmake.expected/mac.json b/recipes/contrib/cmake.expected/mac.json
index b638741..04e7055 100644
--- a/recipes/contrib/cmake.expected/mac.json
+++ b/recipes/contrib/cmake.expected/mac.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/cmake",
     "infra_step": true,
diff --git a/recipes/contrib/cmake.expected/win.json b/recipes/contrib/cmake.expected/win.json
index 1753100..c1f579c 100644
--- a/recipes/contrib/cmake.expected/win.json
+++ b/recipes/contrib/cmake.expected/win.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]\\cmake",
     "infra_step": true,
diff --git a/recipes/contrib/crashpad_roller.expected/DEPS_parsing_error.json b/recipes/contrib/crashpad_roller.expected/DEPS_parsing_error.json
index 5e626e1..4561e48 100644
--- a/recipes/contrib/crashpad_roller.expected/DEPS_parsing_error.json
+++ b/recipes/contrib/crashpad_roller.expected/DEPS_parsing_error.json
@@ -662,7 +662,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/crashpad_roller.expected/crashpad.json b/recipes/contrib/crashpad_roller.expected/crashpad.json
index 20f4069..2061d17 100644
--- a/recipes/contrib/crashpad_roller.expected/crashpad.json
+++ b/recipes/contrib/crashpad_roller.expected/crashpad.json
@@ -662,7 +662,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/crashpad_roller.expected/crashpad_and_mini_chromium.json b/recipes/contrib/crashpad_roller.expected/crashpad_and_mini_chromium.json
index 885ba99..266178b 100644
--- a/recipes/contrib/crashpad_roller.expected/crashpad_and_mini_chromium.json
+++ b/recipes/contrib/crashpad_roller.expected/crashpad_and_mini_chromium.json
@@ -662,7 +662,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/crashpad_roller.expected/crashpad_mini_chromium_and_lss.json b/recipes/contrib/crashpad_roller.expected/crashpad_mini_chromium_and_lss.json
index aeec7e2..76b827d 100644
--- a/recipes/contrib/crashpad_roller.expected/crashpad_mini_chromium_and_lss.json
+++ b/recipes/contrib/crashpad_roller.expected/crashpad_mini_chromium_and_lss.json
@@ -662,7 +662,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/crashpad_roller.expected/crashpad_roll_with_lockfile.json b/recipes/contrib/crashpad_roller.expected/crashpad_roll_with_lockfile.json
index 908be6e..50ee8ec 100644
--- a/recipes/contrib/crashpad_roller.expected/crashpad_roll_with_lockfile.json
+++ b/recipes/contrib/crashpad_roller.expected/crashpad_roll_with_lockfile.json
@@ -662,7 +662,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/crashpad_roller.expected/missing_revision.json b/recipes/contrib/crashpad_roller.expected/missing_revision.json
index f85ef39..27d34aa 100644
--- a/recipes/contrib/crashpad_roller.expected/missing_revision.json
+++ b/recipes/contrib/crashpad_roller.expected/missing_revision.json
@@ -671,7 +671,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/git_checkout_tmp_1/crashpad",
     "name": "submodule.git submodule update",
diff --git a/recipes/contrib/docsgen.expected/basic.json b/recipes/contrib/docsgen.expected/basic.json
index bfc5222..533d2e8 100644
--- a/recipes/contrib/docsgen.expected/basic.json
+++ b/recipes/contrib/docsgen.expected/basic.json
@@ -2347,7 +2347,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/reference-docs",
     "luci_context": {
diff --git a/recipes/contrib/docsgen.expected/dryrun.json b/recipes/contrib/docsgen.expected/dryrun.json
index b3546c2..8764b6e 100644
--- a/recipes/contrib/docsgen.expected/dryrun.json
+++ b/recipes/contrib/docsgen.expected/dryrun.json
@@ -2347,7 +2347,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/reference-docs",
     "luci_context": {
diff --git a/recipes/contrib/firebase_docs.expected/firebase_docs.json b/recipes/contrib/firebase_docs.expected/firebase_docs.json
index e1f5c98..c6ba33a 100644
--- a/recipes/contrib/firebase_docs.expected/firebase_docs.json
+++ b/recipes/contrib/firebase_docs.expected/firebase_docs.json
@@ -619,7 +619,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/api-docs-resources",
     "luci_context": {
diff --git a/recipes/contrib/firebase_docs.expected/firebase_docs_failing_rustdoc.json b/recipes/contrib/firebase_docs.expected/firebase_docs_failing_rustdoc.json
index 0436c5b..7d0ea1b 100644
--- a/recipes/contrib/firebase_docs.expected/firebase_docs_failing_rustdoc.json
+++ b/recipes/contrib/firebase_docs.expected/firebase_docs_failing_rustdoc.json
@@ -619,7 +619,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/api-docs-resources",
     "luci_context": {
diff --git a/recipes/contrib/gcc_toolchain.expected/binutils_build_fail.json b/recipes/contrib/gcc_toolchain.expected/binutils_build_fail.json
index 2a1e037..a7401f9 100644
--- a/recipes/contrib/gcc_toolchain.expected/binutils_build_fail.json
+++ b/recipes/contrib/gcc_toolchain.expected/binutils_build_fail.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/binutils_configure_fail.json b/recipes/contrib/gcc_toolchain.expected/binutils_configure_fail.json
index 4e324a3..810ea21 100644
--- a/recipes/contrib/gcc_toolchain.expected/binutils_configure_fail.json
+++ b/recipes/contrib/gcc_toolchain.expected/binutils_configure_fail.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/binutils_test_fail.json b/recipes/contrib/gcc_toolchain.expected/binutils_test_fail.json
index a84d485..42baa67 100644
--- a/recipes/contrib/gcc_toolchain.expected/binutils_test_fail.json
+++ b/recipes/contrib/gcc_toolchain.expected/binutils_test_fail.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/gcc_test_fail.json b/recipes/contrib/gcc_toolchain.expected/gcc_test_fail.json
index ced4f89..51b7275 100644
--- a/recipes/contrib/gcc_toolchain.expected/gcc_test_fail.json
+++ b/recipes/contrib/gcc_toolchain.expected/gcc_test_fail.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/linux_arm.json b/recipes/contrib/gcc_toolchain.expected/linux_arm.json
index c4001ef..25d469f 100644
--- a/recipes/contrib/gcc_toolchain.expected/linux_arm.json
+++ b/recipes/contrib/gcc_toolchain.expected/linux_arm.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/linux_intel.json b/recipes/contrib/gcc_toolchain.expected/linux_intel.json
index adab793..c90a537 100644
--- a/recipes/contrib/gcc_toolchain.expected/linux_intel.json
+++ b/recipes/contrib/gcc_toolchain.expected/linux_intel.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/mac_intel.json b/recipes/contrib/gcc_toolchain.expected/mac_intel.json
index 29de032..9239cdb 100644
--- a/recipes/contrib/gcc_toolchain.expected/mac_intel.json
+++ b/recipes/contrib/gcc_toolchain.expected/mac_intel.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/gcc_toolchain.expected/prod.json b/recipes/contrib/gcc_toolchain.expected/prod.json
index 22e9818..e1c9a7e 100644
--- a/recipes/contrib/gcc_toolchain.expected/prod.json
+++ b/recipes/contrib/gcc_toolchain.expected/prod.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/binutils-gdb",
     "infra_step": true,
@@ -1109,7 +1111,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/gcc",
     "infra_step": true,
diff --git a/recipes/contrib/go_toolchain.expected/ci.json b/recipes/contrib/go_toolchain.expected/ci.json
index 223f682..3073998 100644
--- a/recipes/contrib/go_toolchain.expected/ci.json
+++ b/recipes/contrib/go_toolchain.expected/ci.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/go",
     "infra_step": true,
diff --git a/recipes/contrib/go_toolchain.expected/cq.json b/recipes/contrib/go_toolchain.expected/cq.json
index 14405de..44d1652 100644
--- a/recipes/contrib/go_toolchain.expected/cq.json
+++ b/recipes/contrib/go_toolchain.expected/cq.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/go",
     "infra_step": true,
diff --git a/recipes/contrib/goma_client.expected/default.json b/recipes/contrib/goma_client.expected/default.json
index 956db47..d835457 100644
--- a/recipes/contrib/goma_client.expected/default.json
+++ b/recipes/contrib/goma_client.expected/default.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/depot_tools",
     "infra_step": true,
diff --git a/recipes/contrib/goma_client.expected/default_with_buildset.json b/recipes/contrib/goma_client.expected/default_with_buildset.json
index 1fce6a6..5740b58 100644
--- a/recipes/contrib/goma_client.expected/default_with_buildset.json
+++ b/recipes/contrib/goma_client.expected/default_with_buildset.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/depot_tools",
     "infra_step": true,
diff --git a/recipes/contrib/goma_client.expected/dry_run.json b/recipes/contrib/goma_client.expected/dry_run.json
index db438f3..01c171b 100644
--- a/recipes/contrib/goma_client.expected/dry_run.json
+++ b/recipes/contrib/goma_client.expected/dry_run.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/depot_tools",
     "infra_step": true,
diff --git a/recipes/contrib/gomatools_builder.expected/default.json b/recipes/contrib/gomatools_builder.expected/default.json
index 4eaa426..a13ab60 100644
--- a/recipes/contrib/gomatools_builder.expected/default.json
+++ b/recipes/contrib/gomatools_builder.expected/default.json
@@ -537,7 +537,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/go/src/go.chromium.org/goma/server",
     "luci_context": {
diff --git a/recipes/contrib/gomatools_builder.expected/dry_run_off.json b/recipes/contrib/gomatools_builder.expected/dry_run_off.json
index 6177ef4..6d52e3c 100644
--- a/recipes/contrib/gomatools_builder.expected/dry_run_off.json
+++ b/recipes/contrib/gomatools_builder.expected/dry_run_off.json
@@ -537,7 +537,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/go/src/go.chromium.org/goma/server",
     "luci_context": {
diff --git a/recipes/contrib/jq.expected/linux_dry_run.json b/recipes/contrib/jq.expected/linux_dry_run.json
index ac934d9..058ef8c 100644
--- a/recipes/contrib/jq.expected/linux_dry_run.json
+++ b/recipes/contrib/jq.expected/linux_dry_run.json
@@ -377,7 +377,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/jq",
     "infra_step": true,
diff --git a/recipes/contrib/jq.expected/mac.json b/recipes/contrib/jq.expected/mac.json
index 13482f3..c62dfed 100644
--- a/recipes/contrib/jq.expected/mac.json
+++ b/recipes/contrib/jq.expected/mac.json
@@ -371,7 +371,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/jq",
     "infra_step": true,
diff --git a/recipes/contrib/llvm.expected/fuchsia.json b/recipes/contrib/llvm.expected/fuchsia.json
index fa6676c..151a133 100644
--- a/recipes/contrib/llvm.expected/fuchsia.json
+++ b/recipes/contrib/llvm.expected/fuchsia.json
@@ -642,7 +642,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/llvm.expected/linux_amd64.json b/recipes/contrib/llvm.expected/linux_amd64.json
index f1f7da7..fc8af8e 100644
--- a/recipes/contrib/llvm.expected/linux_amd64.json
+++ b/recipes/contrib/llvm.expected/linux_amd64.json
@@ -642,7 +642,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/llvm.expected/linux_arm64.json b/recipes/contrib/llvm.expected/linux_arm64.json
index ab8a8dd..eee2e14 100644
--- a/recipes/contrib/llvm.expected/linux_arm64.json
+++ b/recipes/contrib/llvm.expected/linux_arm64.json
@@ -642,7 +642,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/llvm.expected/linux_arm64_host.json b/recipes/contrib/llvm.expected/linux_arm64_host.json
index 3af3ee4..64121f5 100644
--- a/recipes/contrib/llvm.expected/linux_arm64_host.json
+++ b/recipes/contrib/llvm.expected/linux_arm64_host.json
@@ -596,7 +596,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/llvm.expected/mac_amd64.json b/recipes/contrib/llvm.expected/mac_amd64.json
index 91c1594..7990ded 100644
--- a/recipes/contrib/llvm.expected/mac_amd64.json
+++ b/recipes/contrib/llvm.expected/mac_amd64.json
@@ -636,7 +636,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-project",
     "infra_step": true,
diff --git a/recipes/contrib/llvm_test_suite.expected/cipd.json b/recipes/contrib/llvm_test_suite.expected/cipd.json
index 07592bd..b9a1c06 100644
--- a/recipes/contrib/llvm_test_suite.expected/cipd.json
+++ b/recipes/contrib/llvm_test_suite.expected/cipd.json
@@ -649,7 +649,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-test-suite",
     "infra_step": true,
diff --git a/recipes/contrib/llvm_test_suite.expected/isolate.json b/recipes/contrib/llvm_test_suite.expected/isolate.json
index ac013b1..c9192b8 100644
--- a/recipes/contrib/llvm_test_suite.expected/isolate.json
+++ b/recipes/contrib/llvm_test_suite.expected/isolate.json
@@ -746,7 +746,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/llvm-test-suite",
     "infra_step": true,
diff --git a/recipes/contrib/ninja.expected/linux.json b/recipes/contrib/ninja.expected/linux.json
index b088047..de5b454 100644
--- a/recipes/contrib/ninja.expected/linux.json
+++ b/recipes/contrib/ninja.expected/linux.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/ninja",
     "infra_step": true,
diff --git a/recipes/contrib/ninja.expected/mac.json b/recipes/contrib/ninja.expected/mac.json
index ddf6850..c2da28c 100644
--- a/recipes/contrib/ninja.expected/mac.json
+++ b/recipes/contrib/ninja.expected/mac.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/ninja",
     "infra_step": true,
diff --git a/recipes/contrib/ninja.expected/win.json b/recipes/contrib/ninja.expected/win.json
index dd34aa1..2a45ad2 100644
--- a/recipes/contrib/ninja.expected/win.json
+++ b/recipes/contrib/ninja.expected/win.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]\\ninja",
     "infra_step": true,
diff --git a/recipes/contrib/ovmf.expected/basic.json b/recipes/contrib/ovmf.expected/basic.json
index 871fb07..e5c8015 100644
--- a/recipes/contrib/ovmf.expected/basic.json
+++ b/recipes/contrib/ovmf.expected/basic.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/edk2",
     "name": "checkout edk2.submodule.git submodule update",
diff --git a/recipes/contrib/qemu.expected/linux.json b/recipes/contrib/qemu.expected/linux.json
index 9f9f6b4..a588afa 100644
--- a/recipes/contrib/qemu.expected/linux.json
+++ b/recipes/contrib/qemu.expected/linux.json
@@ -2144,7 +2144,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/qemu/src",
     "env": {
diff --git a/recipes/contrib/qemu.expected/linux_arm64.json b/recipes/contrib/qemu.expected/linux_arm64.json
index c76d293..904e4f7 100644
--- a/recipes/contrib/qemu.expected/linux_arm64.json
+++ b/recipes/contrib/qemu.expected/linux_arm64.json
@@ -2186,7 +2186,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/qemu/src",
     "env": {
diff --git a/recipes/contrib/qemu.expected/mac.json b/recipes/contrib/qemu.expected/mac.json
index ac9f195..b0d16e6 100644
--- a/recipes/contrib/qemu.expected/mac.json
+++ b/recipes/contrib/qemu.expected/mac.json
@@ -2473,7 +2473,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/qemu/src",
     "env": {
diff --git a/recipes/contrib/rust_toolchain.expected/failing_tests.json b/recipes/contrib/rust_toolchain.expected/failing_tests.json
index bd4a035..c50ba5e 100644
--- a/recipes/contrib/rust_toolchain.expected/failing_tests.json
+++ b/recipes/contrib/rust_toolchain.expected/failing_tests.json
@@ -397,7 +397,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust",
     "infra_step": true,
diff --git a/recipes/contrib/rust_toolchain.expected/rust_arm_linux.json b/recipes/contrib/rust_toolchain.expected/rust_arm_linux.json
index 0952191..36e9470 100644
--- a/recipes/contrib/rust_toolchain.expected/rust_arm_linux.json
+++ b/recipes/contrib/rust_toolchain.expected/rust_arm_linux.json
@@ -357,7 +357,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust",
     "infra_step": true,
diff --git a/recipes/contrib/rust_toolchain.expected/rust_intel_linux.json b/recipes/contrib/rust_toolchain.expected/rust_intel_linux.json
index b3b7bb8..b18f724 100644
--- a/recipes/contrib/rust_toolchain.expected/rust_intel_linux.json
+++ b/recipes/contrib/rust_toolchain.expected/rust_intel_linux.json
@@ -397,7 +397,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust",
     "infra_step": true,
diff --git a/recipes/contrib/rust_toolchain.expected/rust_intel_mac.json b/recipes/contrib/rust_toolchain.expected/rust_intel_mac.json
index 9486bb8..6b600ff 100644
--- a/recipes/contrib/rust_toolchain.expected/rust_intel_mac.json
+++ b/recipes/contrib/rust_toolchain.expected/rust_intel_mac.json
@@ -391,7 +391,9 @@
       "submodule",
       "update",
       "--init",
-      "--recursive"
+      "--recursive",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/rust",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer.expected/ci_failure.json b/recipes/contrib/salt_packer.expected/ci_failure.json
index 8f24f6c..c3b0651 100644
--- a/recipes/contrib/salt_packer.expected/ci_failure.json
+++ b/recipes/contrib/salt_packer.expected/ci_failure.json
@@ -547,7 +547,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer.expected/ci_success.json b/recipes/contrib/salt_packer.expected/ci_success.json
index 912e615..b3669ea 100644
--- a/recipes/contrib/salt_packer.expected/ci_success.json
+++ b/recipes/contrib/salt_packer.expected/ci_success.json
@@ -547,7 +547,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer.expected/try_failure.json b/recipes/contrib/salt_packer.expected/try_failure.json
index c35a408..86331df 100644
--- a/recipes/contrib/salt_packer.expected/try_failure.json
+++ b/recipes/contrib/salt_packer.expected/try_failure.json
@@ -740,7 +740,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
@@ -1304,7 +1306,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer.expected/try_success.json b/recipes/contrib/salt_packer.expected/try_success.json
index c7c63e8..9f43006 100644
--- a/recipes/contrib/salt_packer.expected/try_success.json
+++ b/recipes/contrib/salt_packer.expected/try_success.json
@@ -740,7 +740,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
@@ -1304,7 +1306,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer_base_image_roller.expected/get_latest_failure.json b/recipes/contrib/salt_packer_base_image_roller.expected/get_latest_failure.json
index 4caa5c4..887b6ee 100644
--- a/recipes/contrib/salt_packer_base_image_roller.expected/get_latest_failure.json
+++ b/recipes/contrib/salt_packer_base_image_roller.expected/get_latest_failure.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/contrib/salt_packer_base_image_roller.expected/update.json b/recipes/contrib/salt_packer_base_image_roller.expected/update.json
index 2a51400..5335e74 100644
--- a/recipes/contrib/salt_packer_base_image_roller.expected/update.json
+++ b/recipes/contrib/salt_packer_base_image_roller.expected/update.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/salt",
     "infra_step": true,
diff --git a/recipes/luci_config.expected/cq_new_builder.json b/recipes/luci_config.expected/cq_new_builder.json
index b9014d6..3100163 100644
--- a/recipes/luci_config.expected/cq_new_builder.json
+++ b/recipes/luci_config.expected/cq_new_builder.json
@@ -538,7 +538,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
@@ -1088,7 +1090,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/luci_config.expected/deleting_cq_builder.json b/recipes/luci_config.expected/deleting_cq_builder.json
index 9896e41..7c5a964 100644
--- a/recipes/luci_config.expected/deleting_cq_builder.json
+++ b/recipes/luci_config.expected/deleting_cq_builder.json
@@ -538,7 +538,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
@@ -1088,7 +1090,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/luci_config.expected/deleting_includable_only_builder.json b/recipes/luci_config.expected/deleting_includable_only_builder.json
index 01a20d7..161a41a 100644
--- a/recipes/luci_config.expected/deleting_includable_only_builder.json
+++ b/recipes/luci_config.expected/deleting_includable_only_builder.json
@@ -538,7 +538,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
@@ -1088,7 +1090,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/luci_config.expected/first_file_invalid.json b/recipes/luci_config.expected/first_file_invalid.json
index 5123c8e..6090f80 100644
--- a/recipes/luci_config.expected/first_file_invalid.json
+++ b/recipes/luci_config.expected/first_file_invalid.json
@@ -538,7 +538,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
@@ -1088,7 +1090,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/luci_config.expected/non_main_branch.json b/recipes/luci_config.expected/non_main_branch.json
index cd1b254..96c99dd 100644
--- a/recipes/luci_config.expected/non_main_branch.json
+++ b/recipes/luci_config.expected/non_main_branch.json
@@ -531,7 +531,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/luci_config.expected/starlark.json b/recipes/luci_config.expected/starlark.json
index 980870f..aea67ec 100644
--- a/recipes/luci_config.expected/starlark.json
+++ b/recipes/luci_config.expected/starlark.json
@@ -530,7 +530,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "luci_context": {
diff --git a/recipes/recipe_bootstrap_test/parent.expected/basic.json b/recipes/recipe_bootstrap_test/parent.expected/basic.json
index c4a8f94..176f65b 100644
--- a/recipes/recipe_bootstrap_test/parent.expected/basic.json
+++ b/recipes/recipe_bootstrap_test/parent.expected/basic.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/infra",
     "infra_step": true,
diff --git a/recipes/recipe_bootstrap_test/parent.expected/missing_output_property.json b/recipes/recipe_bootstrap_test/parent.expected/missing_output_property.json
index 23d92a2..9b09f4e 100644
--- a/recipes/recipe_bootstrap_test/parent.expected/missing_output_property.json
+++ b/recipes/recipe_bootstrap_test/parent.expected/missing_output_property.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/infra",
     "infra_step": true,
diff --git a/recipes/recipe_bootstrap_test/parent.expected/recipe_bootstrap_broken.json b/recipes/recipe_bootstrap_test/parent.expected/recipe_bootstrap_broken.json
index a337e7b..81ad0a4 100644
--- a/recipes/recipe_bootstrap_test/parent.expected/recipe_bootstrap_broken.json
+++ b/recipes/recipe_bootstrap_test/parent.expected/recipe_bootstrap_broken.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/infra",
     "infra_step": true,
diff --git a/recipes/recipe_bootstrap_test/parent.expected/subbuild_fails.json b/recipes/recipe_bootstrap_test/parent.expected/subbuild_fails.json
index 36971ba..e17900c 100644
--- a/recipes/recipe_bootstrap_test/parent.expected/subbuild_fails.json
+++ b/recipes/recipe_bootstrap_test/parent.expected/subbuild_fails.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/infra",
     "infra_step": true,
diff --git a/recipes/recipe_bootstrap_test/parent.expected/subbuild_infra_fails.json b/recipes/recipe_bootstrap_test/parent.expected/subbuild_infra_fails.json
index 0e7e0a3..f5617c3 100644
--- a/recipes/recipe_bootstrap_test/parent.expected/subbuild_infra_fails.json
+++ b/recipes/recipe_bootstrap_test/parent.expected/subbuild_infra_fails.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/infra",
     "infra_step": true,
diff --git a/recipes/recipe_tools_roller.expected/roll_tool.json b/recipes/recipe_tools_roller.expected/roll_tool.json
index f9a4a0a..1ec6cb2 100644
--- a/recipes/recipe_tools_roller.expected/roll_tool.json
+++ b/recipes/recipe_tools_roller.expected/roll_tool.json
@@ -544,7 +544,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/release/increment_version.expected/increment_version.json b/recipes/release/increment_version.expected/increment_version.json
index ef43ebb..e9e8ea6 100644
--- a/recipes/release/increment_version.expected/increment_version.json
+++ b/recipes/release/increment_version.expected/increment_version.json
@@ -153,7 +153,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "name": "checkout base revision.submodule.git submodule update",
diff --git a/recipes/release/increment_version.expected/release_version_conflict.json b/recipes/release/increment_version.expected/release_version_conflict.json
index a1e59c8..37750b4 100644
--- a/recipes/release/increment_version.expected/release_version_conflict.json
+++ b/recipes/release/increment_version.expected/release_version_conflict.json
@@ -153,7 +153,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "infra_step": true,
     "name": "checkout base revision.submodule.git submodule update",
diff --git a/recipes/release/platform_version_roller.expected/invalid_platform_version.json b/recipes/release/platform_version_roller.expected/invalid_platform_version.json
index a2bf0ac..b6374bf 100644
--- a/recipes/release/platform_version_roller.expected/invalid_platform_version.json
+++ b/recipes/release/platform_version_roller.expected/invalid_platform_version.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/integration_tmp_1",
     "name": "checkout integration.submodule.git submodule update",
diff --git a/recipes/release/platform_version_roller.expected/no_branches.json b/recipes/release/platform_version_roller.expected/no_branches.json
index 88acd8f..5047905 100644
--- a/recipes/release/platform_version_roller.expected/no_branches.json
+++ b/recipes/release/platform_version_roller.expected/no_branches.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/integration_tmp_1",
     "name": "checkout integration.submodule.git submodule update",
diff --git a/recipes/release/platform_version_roller.expected/non_integer_platform_version.json b/recipes/release/platform_version_roller.expected/non_integer_platform_version.json
index a8de302..4ad22e8 100644
--- a/recipes/release/platform_version_roller.expected/non_integer_platform_version.json
+++ b/recipes/release/platform_version_roller.expected/non_integer_platform_version.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/integration_tmp_1",
     "name": "checkout integration.submodule.git submodule update",
diff --git a/recipes/release/platform_version_roller.expected/nothing_to_roll.json b/recipes/release/platform_version_roller.expected/nothing_to_roll.json
index f4ed711..e40df67 100644
--- a/recipes/release/platform_version_roller.expected/nothing_to_roll.json
+++ b/recipes/release/platform_version_roller.expected/nothing_to_roll.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/integration_tmp_1",
     "name": "checkout integration.submodule.git submodule update",
diff --git a/recipes/release/platform_version_roller.expected/roll.json b/recipes/release/platform_version_roller.expected/roll.json
index 744d2b7..52a935b 100644
--- a/recipes/release/platform_version_roller.expected/roll.json
+++ b/recipes/release/platform_version_roller.expected/roll.json
@@ -303,7 +303,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/integration_tmp_1",
     "name": "checkout integration.submodule.git submodule update",
diff --git a/recipes/release/publish.expected/failed_publish.json b/recipes/release/publish.expected/failed_publish.json
index cd91a9d..3234701 100644
--- a/recipes/release/publish.expected/failed_publish.json
+++ b/recipes/release/publish.expected/failed_publish.json
@@ -140,7 +140,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "name": "checkout.submodule.git submodule update",
diff --git a/recipes/release/publish.expected/invalid_target_branch_state.json b/recipes/release/publish.expected/invalid_target_branch_state.json
index 2d0d184..24c6037 100644
--- a/recipes/release/publish.expected/invalid_target_branch_state.json
+++ b/recipes/release/publish.expected/invalid_target_branch_state.json
@@ -140,7 +140,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "name": "checkout.submodule.git submodule update",
diff --git a/recipes/release/publish.expected/publish_from_release_version.json b/recipes/release/publish.expected/publish_from_release_version.json
index e82c9c8..a45ed91 100644
--- a/recipes/release/publish.expected/publish_from_release_version.json
+++ b/recipes/release/publish.expected/publish_from_release_version.json
@@ -140,7 +140,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "name": "checkout.submodule.git submodule update",
diff --git a/recipes/release/publish.expected/publish_from_target_branch.json b/recipes/release/publish.expected/publish_from_target_branch.json
index d949b99..ff92ae1 100644
--- a/recipes/release/publish.expected/publish_from_target_branch.json
+++ b/recipes/release/publish.expected/publish_from_target_branch.json
@@ -140,7 +140,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "name": "checkout.submodule.git submodule update",
diff --git a/recipes/release/publish.expected/stop_rollout.json b/recipes/release/publish.expected/stop_rollout.json
index 6e49d00..8d45c95 100644
--- a/recipes/release/publish.expected/stop_rollout.json
+++ b/recipes/release/publish.expected/stop_rollout.json
@@ -140,7 +140,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "name": "checkout.submodule.git submodule update",
diff --git a/recipes/release/snap_branch.expected/lkgr_from_main.json b/recipes/release/snap_branch.expected/lkgr_from_main.json
index 1a167a3..1c7f34c 100644
--- a/recipes/release/snap_branch.expected/lkgr_from_main.json
+++ b/recipes/release/snap_branch.expected/lkgr_from_main.json
@@ -618,7 +618,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia/integration",
     "infra_step": true,
@@ -1074,7 +1076,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/foo",
     "infra_step": true,
@@ -1543,7 +1547,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/bar",
     "infra_step": true,
diff --git a/recipes/release/snap_branch.expected/mismatched_milestones.json b/recipes/release/snap_branch.expected/mismatched_milestones.json
index 0a8744c..4922489 100644
--- a/recipes/release/snap_branch.expected/mismatched_milestones.json
+++ b/recipes/release/snap_branch.expected/mismatched_milestones.json
@@ -606,7 +606,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[CLEANUP]/tmp_tmp_1",
     "infra_step": true,
diff --git a/recipes/release/snap_branch.expected/revision_from_main.json b/recipes/release/snap_branch.expected/revision_from_main.json
index 582bee7..286c1ea 100644
--- a/recipes/release/snap_branch.expected/revision_from_main.json
+++ b/recipes/release/snap_branch.expected/revision_from_main.json
@@ -520,7 +520,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia/integration",
     "infra_step": true,
@@ -976,7 +978,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/foo",
     "infra_step": true,
@@ -1445,7 +1449,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/bar",
     "infra_step": true,
diff --git a/recipes/release/snap_branch.expected/rollback.json b/recipes/release/snap_branch.expected/rollback.json
index c23d52e..c627c02 100644
--- a/recipes/release/snap_branch.expected/rollback.json
+++ b/recipes/release/snap_branch.expected/rollback.json
@@ -524,7 +524,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia/integration",
     "infra_step": true,
@@ -980,7 +982,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/foo",
     "infra_step": true,
@@ -1449,7 +1453,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/bar",
     "infra_step": true,
diff --git a/recipes/release/snap_branch.expected/version_to_version.json b/recipes/release/snap_branch.expected/version_to_version.json
index fc49e14..38d8bc3 100644
--- a/recipes/release/snap_branch.expected/version_to_version.json
+++ b/recipes/release/snap_branch.expected/version_to_version.json
@@ -520,7 +520,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/fuchsia/integration",
     "infra_step": true,
@@ -976,7 +978,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/foo",
     "infra_step": true,
@@ -1445,7 +1449,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/local/path/to/bar",
     "infra_step": true,
diff --git a/recipes/run_script.expected/attempt_roll.json b/recipes/run_script.expected/attempt_roll.json
index 96a004a..2207f03 100644
--- a/recipes/run_script.expected/attempt_roll.json
+++ b/recipes/run_script.expected/attempt_roll.json
@@ -316,7 +316,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/ci.json b/recipes/run_script.expected/ci.json
index ea4a2e8..6079c78 100644
--- a/recipes/run_script.expected/ci.json
+++ b/recipes/run_script.expected/ci.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/ci_upload.json b/recipes/run_script.expected/ci_upload.json
index 9813f78..2ed6fd6 100644
--- a/recipes/run_script.expected/ci_upload.json
+++ b/recipes/run_script.expected/ci_upload.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/cq.json b/recipes/run_script.expected/cq.json
index e234014..93d2b56 100644
--- a/recipes/run_script.expected/cq.json
+++ b/recipes/run_script.expected/cq.json
@@ -551,7 +551,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
@@ -1115,7 +1117,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/no_buildbucket_input.json b/recipes/run_script.expected/no_buildbucket_input.json
index 59b23c7..4e852cd 100644
--- a/recipes/run_script.expected/no_buildbucket_input.json
+++ b/recipes/run_script.expected/no_buildbucket_input.json
@@ -316,7 +316,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/script_failed.json b/recipes/run_script.expected/script_failed.json
index 8be0ddb..9da0828 100644
--- a/recipes/run_script.expected/script_failed.json
+++ b/recipes/run_script.expected/script_failed.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/run_script.expected/use_json_cipd_manifest.json b/recipes/run_script.expected/use_json_cipd_manifest.json
index 0718c41..33618d8 100644
--- a/recipes/run_script.expected/use_json_cipd_manifest.json
+++ b/recipes/run_script.expected/use_json_cipd_manifest.json
@@ -543,7 +543,9 @@
       "git",
       "submodule",
       "update",
-      "--init"
+      "--init",
+      "--jobs",
+      "4"
     ],
     "cwd": "[START_DIR]/checkout",
     "infra_step": true,
diff --git a/recipes/submodule_update.expected/basic.json b/recipes/submodule_update.expected/basic.json
index 0016a4c..24a65b0 100644
--- a/recipes/submodule_update.expected/basic.json
+++ b/recipes/submodule_update.expected/basic.json
@@ -1097,6 +1097,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "integration"
     ],
     "cwd": "[START_DIR]/super_project",
diff --git a/recipes/submodule_update.expected/commit_already_exists.json b/recipes/submodule_update.expected/commit_already_exists.json
index 126b3bc..2cf1185 100644
--- a/recipes/submodule_update.expected/commit_already_exists.json
+++ b/recipes/submodule_update.expected/commit_already_exists.json
@@ -1076,6 +1076,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "integration"
     ],
     "cwd": "[START_DIR]/super_project",
diff --git a/recipes/submodule_update.expected/push_change.json b/recipes/submodule_update.expected/push_change.json
index 27e58bd..40f3a2d 100644
--- a/recipes/submodule_update.expected/push_change.json
+++ b/recipes/submodule_update.expected/push_change.json
@@ -1076,6 +1076,8 @@
       "submodule",
       "update",
       "--init",
+      "--jobs",
+      "4",
       "integration"
     ],
     "cwd": "[START_DIR]/super_project",