libsnapshot: configure threshold size
Test: th
Change-Id: Iba59fdc3e1188dd343314d129806d2c4c94aa8c5
diff --git a/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_verify.cpp b/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_verify.cpp
index 6817340..957c6a8 100644
--- a/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_verify.cpp
+++ b/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_verify.cpp
@@ -20,6 +20,7 @@
#include <android-base/scopeguard.h>
#include <android-base/strings.h>
+#include "android-base/properties.h"
#include "snapuserd_core.h"
namespace android {
@@ -104,7 +105,9 @@
}
loff_t file_offset = offset;
- const uint64_t read_sz = kBlockSizeVerify;
+ auto verify_block_size = android::base::GetUintProperty<uint>("ro.virtual_ab.verify_block_size",
+ kBlockSizeVerify);
+ const uint64_t read_sz = verify_block_size;
void* addr;
ssize_t page_size = getpagesize();
@@ -130,7 +133,7 @@
}
bytes_read += to_read;
- file_offset += (skip_blocks * kBlockSizeVerify);
+ file_offset += (skip_blocks * verify_block_size);
if (file_offset >= dev_sz) {
break;
}
@@ -184,7 +187,9 @@
* latency.
*/
int num_threads = kMinThreadsToVerify;
- if (dev_sz > kThresholdSize) {
+ auto verify_threshold_size = android::base::GetUintProperty<uint>(
+ "ro.virtual_ab.verify_threshold_size", kThresholdSize);
+ if (dev_sz > verify_threshold_size) {
num_threads = kMaxThreadsToVerify;
}
@@ -192,11 +197,13 @@
off_t start_offset = 0;
const int skip_blocks = num_threads;
+ auto verify_block_size =
+ android::base::GetUintProperty("ro.virtual_ab.verify_block_size", kBlockSizeVerify);
while (num_threads) {
threads.emplace_back(std::async(std::launch::async, &UpdateVerify::VerifyBlocks, this,
partition_name, dm_block_device, start_offset, skip_blocks,
dev_sz));
- start_offset += kBlockSizeVerify;
+ start_offset += verify_block_size;
num_threads -= 1;
if (start_offset >= dev_sz) {
break;