summaryrefslogtreecommitdiff
path: root/trusty/coverage/coverage_test.cpp
diff options
context:
space:
mode:
authorAkilesh Kailash <akailash@google.com>2021-03-29 22:22:45 +0000
committerAkilesh Kailash <akailash@google.com>2021-04-30 06:46:33 +0000
commit580312bc953a61cf1b7d2d1d082ece759844bfcb (patch)
treec8176b7c50056d3c25694f70c13e04e7a682cc78 /trusty/coverage/coverage_test.cpp
parentd967d01f568b0eb285a239003de2b9bbe4ce0439 (diff)
libsnapshot:snapuserd: read-ahead COW copy ops
Introduce read-ahead mechanism for COW copy ops. 1: Read-ahead thread will read from base device and store the data in scratch space along with the metadata. 2: Worker threads during merge will retrieve the data from read-ahead cache 3: Fixed set of blocks are read during each cycle by the read-ahead thread. 4: When the last block in the region is merged, read-ahead thread makes forward progress. Scratch space is set to 2MB and is only used from COW copy operations. We can extend this to Replace Ops based on performance evaluation. Performance: As mentioned in bug 181883791, Incremental OTA of size 55M with 235K copy operations where every block is moved by 4k: Without read-ahead: 40 Minutes for merge completion With read-ahead: 21 Minutes for merge completion Bug: 183863613 Test: 1: Full OTA - no regression observed. 2: Incremental OTA - with older COW format. Daemon will just skip the read-ahead feature for older COW format. 3: Incremental OTA - with new COW format. 4: Reboot and crash kernel when multiple times when incremental OTA is in-flight. Verify post reboot, read-ahead thread re-constructs the data from scratch space. 5: No regression observed in RSS-Anon memory usage when merge in-flight. Signed-off-by: Akilesh Kailash <akailash@google.com> Change-Id: Ic565bfbee3e9fcfc94af694596dbf44c0877639f
Diffstat (limited to 'trusty/coverage/coverage_test.cpp')
0 files changed, 0 insertions, 0 deletions