Set default max_thread to 256 am: 6fbf3bec2b am: fe1d5065c8

Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/3314883

Change-Id: I0b971fa09f2327aa2a59d5d250bc3fcdd659905b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index 86238f8..eb4e594 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -197,7 +197,7 @@
     std::vector<PartitionProcessor> partition_tasks{};
     auto thread_count = std::min<size_t>(diff_utils::GetMaxThreads(),
                                          config.target.partitions.size());
-    if (thread_count > config.max_threads) {
+    if (thread_count > config.max_threads && config.max_threads > 0) {
       thread_count = config.max_threads;
     }
     if (thread_count < 1) {
@@ -205,6 +205,8 @@
     }
     base::DelegateSimpleThreadPool thread_pool{"partition-thread-pool",
                                                static_cast<int>(thread_count)};
+    LOG(INFO) << "Using " << thread_count << " threads to process "
+              << config.target.partitions.size() << " partitions";
     for (size_t i = 0; i < config.target.partitions.size(); i++) {
       const PartitionConfig& old_part =
           config.is_delta ? config.source.partitions[i] : empty_part;
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index 798f191..549a2b7 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -677,9 +677,12 @@
 
   size_t max_threads = GetMaxThreads();
 
-  if (config.max_threads > 0) {
+  if (config.max_threads > 0 && config.max_threads < max_threads) {
     max_threads = config.max_threads;
   }
+  LOG(INFO) << "Using " << max_threads << " threads to process "
+            << file_delta_processors.size() << " files on partition "
+            << old_part.name;
 
   // Sort the files in descending order based on number of new blocks to make
   // sure we start the largest ones first.
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index 40dae87..7507ff3 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -764,10 +764,9 @@
 
   payload_config.security_patch_level = FLAGS_security_patch_level;
 
-  if (FLAGS_max_threads < 1) {
-    FLAGS_max_threads = 1;
+  if (FLAGS_max_threads > 0) {
+    payload_config.max_threads = FLAGS_max_threads;
   }
-  payload_config.max_threads = FLAGS_max_threads;
 
   if (!FLAGS_partition_timestamps.empty()) {
     CHECK(ParsePerPartitionTimestamps(FLAGS_partition_timestamps,
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index dc18641..7f107bb 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -266,7 +266,9 @@
 
   std::string security_patch_level;
 
-  uint32_t max_threads = 1;
+  // This doesn't mean we will use 256 threads, we still upper bound thread
+  // count by number of CPU cores
+  uint32_t max_threads = 256;
 
   std::vector<bsdiff::CompressorType> compressors{
       bsdiff::CompressorType::kBZ2, bsdiff::CompressorType::kBrotli};