Synth 3.09 and 88 hyperthreads
At ${WORK}
we have a so-called “monster server” as our resident FreeBSD builder. Unpatched Synth 3.09 handles up to 64 hyperthreads, i.e. 64 scanners and 128 builders. Our builder has 88 hyperthreads, necessitating an expansion to 88 scanners and 176 builders.
Below is a “Git diff” ready for git apply
.
diff --git a/ports-mgmt/synth/files/patch-src_definitions.ads b/ports-mgmt/synth/files/patch-src_definitions.ads new file mode 100644 index 000000000000..041e66248235 --- /dev/null +++ b/ports-mgmt/synth/files/patch-src_definitions.ads @@ -0,0 +1,11 @@ +--- src/definitions.ads.orig 2025-02-13 02:08:58 UTC ++++ src/definitions.ads +@@ -18,7 +18,7 @@ package Definitions is + chroot_make_program : constant String := chroot_make; + jobs_per_cpu : constant := 2; + +- type cpu_range is range 1 .. 64; ++ type cpu_range is range 1 .. 88; + type scanners is range cpu_range'First .. cpu_range'Last; + type builders is range cpu_range'First .. cpu_range'Last * jobs_per_cpu; + type package_system is (ports_collection, pkgsrc); diff --git a/ports-mgmt/synth/files/patch-src_display.adb b/ports-mgmt/synth/files/patch-src_display.adb new file mode 100644 index 000000000000..e194244adbae --- /dev/null +++ b/ports-mgmt/synth/files/patch-src_display.adb @@ -0,0 +1,12 @@ +--- src/display.adb.orig 2025-02-13 02:08:58 UTC ++++ src/display.adb +@@ -556,6 +556,9 @@ package body Display is + for bld in builders (33) .. builders (64) loop + c_slave (bld) := c_slave (bld - 32); + end loop; ++ for bld in builders (65) .. builders (88) loop ++ c_slave (bld) := c_slave (bld - 64); ++ end loop; + + return True; + diff --git a/ports-mgmt/synth/files/patch-src_portscan-ops.adb b/ports-mgmt/synth/files/patch-src_portscan-ops.adb new file mode 100644 index 000000000000..99d5de6db178 --- /dev/null +++ b/ports-mgmt/synth/files/patch-src_portscan-ops.adb @@ -0,0 +1,59 @@ +--- src/portscan-ops.adb.orig 2025-02-13 02:08:58 UTC ++++ src/portscan-ops.adb +@@ -240,6 +240,56 @@ package body PortScan.Ops is + builder_127 : build (builder => 127); + builder_128 : build (builder => 128); + ++ -- Expansion of cpu_range from 64 to 88 means 176 possible builders ++ builder_129 : build (builder => 129); ++ builder_130 : build (builder => 130); ++ builder_131 : build (builder => 131); ++ builder_132 : build (builder => 132); ++ builder_133 : build (builder => 133); ++ builder_134 : build (builder => 134); ++ builder_135 : build (builder => 135); ++ builder_136 : build (builder => 136); ++ builder_137 : build (builder => 137); ++ builder_138 : build (builder => 138); ++ builder_139 : build (builder => 139); ++ builder_140 : build (builder => 140); ++ builder_141 : build (builder => 141); ++ builder_142 : build (builder => 142); ++ builder_143 : build (builder => 143); ++ builder_144 : build (builder => 144); ++ builder_145 : build (builder => 145); ++ builder_146 : build (builder => 146); ++ builder_147 : build (builder => 147); ++ builder_148 : build (builder => 148); ++ builder_149 : build (builder => 149); ++ builder_150 : build (builder => 150); ++ builder_151 : build (builder => 151); ++ builder_152 : build (builder => 152); ++ builder_153 : build (builder => 153); ++ builder_154 : build (builder => 154); ++ builder_155 : build (builder => 155); ++ builder_156 : build (builder => 156); ++ builder_157 : build (builder => 157); ++ builder_158 : build (builder => 158); ++ builder_159 : build (builder => 159); ++ builder_160 : build (builder => 160); ++ builder_161 : build (builder => 161); ++ builder_162 : build (builder => 162); ++ builder_163 : build (builder => 163); ++ builder_164 : build (builder => 164); ++ builder_165 : build (builder => 165); ++ builder_166 : build (builder => 166); ++ builder_167 : build (builder => 167); ++ builder_168 : build (builder => 168); ++ builder_169 : build (builder => 169); ++ builder_170 : build (builder => 170); ++ builder_171 : build (builder => 171); ++ builder_172 : build (builder => 172); ++ builder_173 : build (builder => 173); ++ builder_174 : build (builder => 174); ++ builder_175 : build (builder => 175); ++ builder_176 : build (builder => 176); ++ + begin + loop + all_idle := True; diff --git a/ports-mgmt/synth/files/patch-src_portscan-packages.adb b/ports-mgmt/synth/files/patch-src_portscan-packages.adb new file mode 100644 index 000000000000..bd79cbaf380b --- /dev/null +++ b/ports-mgmt/synth/files/patch-src_portscan-packages.adb @@ -0,0 +1,69 @@ +--- src/portscan-packages.adb.orig 2025-02-13 02:08:58 UTC ++++ src/portscan-packages.adb +@@ -1022,6 +1022,32 @@ package body PortScan.Packages is + scan_63 : scan (lot => 63); + scan_64 : scan (lot => 64); + ++ -- Expansion of cpu_range from 64 to 88 means 88 possible scanners ++ scan_65 : scan (lot => 65); ++ scan_66 : scan (lot => 66); ++ scan_67 : scan (lot => 67); ++ scan_68 : scan (lot => 68); ++ scan_69 : scan (lot => 69); ++ scan_70 : scan (lot => 70); ++ scan_71 : scan (lot => 71); ++ scan_72 : scan (lot => 72); ++ scan_73 : scan (lot => 73); ++ scan_74 : scan (lot => 74); ++ scan_75 : scan (lot => 75); ++ scan_76 : scan (lot => 76); ++ scan_77 : scan (lot => 77); ++ scan_78 : scan (lot => 78); ++ scan_79 : scan (lot => 79); ++ scan_80 : scan (lot => 80); ++ scan_81 : scan (lot => 81); ++ scan_82 : scan (lot => 82); ++ scan_83 : scan (lot => 83); ++ scan_84 : scan (lot => 84); ++ scan_85 : scan (lot => 85); ++ scan_86 : scan (lot => 86); ++ scan_87 : scan (lot => 87); ++ scan_88 : scan (lot => 88); ++ + begin + while combined_wait loop + delay 1.0; +@@ -1167,6 +1193,33 @@ package body PortScan.Packages is + scan_62 : scan (lot => 62); + scan_63 : scan (lot => 63); + scan_64 : scan (lot => 64); ++ ++ -- Expansion of cpu_range from 64 to 88 means 88 possible scanners ++ scan_65 : scan (lot => 65); ++ scan_66 : scan (lot => 66); ++ scan_67 : scan (lot => 67); ++ scan_68 : scan (lot => 68); ++ scan_69 : scan (lot => 69); ++ scan_70 : scan (lot => 70); ++ scan_71 : scan (lot => 71); ++ scan_72 : scan (lot => 72); ++ scan_73 : scan (lot => 73); ++ scan_74 : scan (lot => 74); ++ scan_75 : scan (lot => 75); ++ scan_76 : scan (lot => 76); ++ scan_77 : scan (lot => 77); ++ scan_78 : scan (lot => 78); ++ scan_79 : scan (lot => 79); ++ scan_80 : scan (lot => 80); ++ scan_81 : scan (lot => 81); ++ scan_82 : scan (lot => 82); ++ scan_83 : scan (lot => 83); ++ scan_84 : scan (lot => 84); ++ scan_85 : scan (lot => 85); ++ scan_86 : scan (lot => 86); ++ scan_87 : scan (lot => 87); ++ scan_88 : scan (lot => 88); ++ + begin + while combined_wait loop + delay 1.0; diff --git a/ports-mgmt/synth/files/patch-src_portscan.adb b/ports-mgmt/synth/files/patch-src_portscan.adb new file mode 100644 index 000000000000..76404bf9ea21 --- /dev/null +++ b/ports-mgmt/synth/files/patch-src_portscan.adb @@ -0,0 +1,60 @@ +--- src/portscan.adb.orig 2025-02-13 02:08:58 UTC ++++ src/portscan.adb +@@ -365,6 +368,33 @@ package body PortScan is + scan_62 : scan (lot => 62); + scan_63 : scan (lot => 63); + scan_64 : scan (lot => 64); ++ ++ -- Expansion of cpu_range from 64 to 88 means 88 possible scanners ++ scan_65 : scan (lot => 65); ++ scan_66 : scan (lot => 66); ++ scan_67 : scan (lot => 67); ++ scan_68 : scan (lot => 68); ++ scan_69 : scan (lot => 69); ++ scan_70 : scan (lot => 70); ++ scan_71 : scan (lot => 71); ++ scan_72 : scan (lot => 72); ++ scan_73 : scan (lot => 73); ++ scan_74 : scan (lot => 74); ++ scan_75 : scan (lot => 75); ++ scan_76 : scan (lot => 76); ++ scan_77 : scan (lot => 77); ++ scan_78 : scan (lot => 78); ++ scan_79 : scan (lot => 79); ++ scan_80 : scan (lot => 80); ++ scan_81 : scan (lot => 81); ++ scan_82 : scan (lot => 82); ++ scan_83 : scan (lot => 83); ++ scan_84 : scan (lot => 84); ++ scan_85 : scan (lot => 85); ++ scan_86 : scan (lot => 86); ++ scan_87 : scan (lot => 87); ++ scan_88 : scan (lot => 88); ++ + begin + TIO.Put_Line ("Scanning entire ports tree."); + while combined_wait loop