Add --ninja_weight_source option

It has 3 options for now.
* ninja_log: uses ninja log file for data source
* evenly_distributed: pass empty list for ninja to consider every work as the same
* not_used: do not use critical path logic in ninja

In addition, I added the option in the metrics to track

Bug: 271527305
Test: m --ninja_weight_source=ninja_log|empty|not_used
Change-Id: Ib4c812c20606a34b17d3f0edb71057b477c4f90e
This commit is contained in:
Jeongik Cha
2023-03-15 00:10:45 +09:00
parent 767ce714bb
commit 0cf44d5e8d
5 changed files with 409 additions and 210 deletions

View File

@@ -153,6 +153,11 @@ message BuildConfig {
// Whether the user explicitly disabled bazel mixed builds for this build.
optional bool force_disable_bazel_mixed_build = 7;
// NOT_USED - ninja doesn't use weight list.
// NINJA_LOG - ninja uses weight list based on previous builds by ninja log
// EVENLY_DISTRIBUTED - ninja thinks every task has the same weight.
optional NinjaWeightListSource ninja_weight_list_source = 8 [default = NOT_USED];
}
message SystemResourceInfo {
@@ -337,3 +342,9 @@ message JobInfo {
// Description of a job
optional string job_description = 2;
}
enum NinjaWeightListSource {
NOT_USED = 0;
NINJA_LOG = 1;
EVENLY_DISTRIBUTED = 2;
}