android_system_core/fs_mgr/libsnapshot
Akilesh Kailash 66914e2b2e libsnapshot:snapuserd: Batch merge copy operation
Allow batch merge of copy operations during merge.
When metadata is read from COW device, assign
the chunk-id by validating there is no overlap
of copy operations. Furthermore, detect the blocks
which are contiguous and batch merge them.

No regression in merge time for full OTA (~35-40 seconds)

Merge time for incremental OTA of ~200M takes about 2 minutes
as compared to 15-20+ minutes without this change.

Add unit test to test ReadMetadata() functionality.

Multiple incremental OTA and full OTA test done on pixel.
adb reboot during merge and validate the merge resume operations.

Bug: 179629624
Test: incremental OTA and full OTA on pixel,
      cow_snapuserd_test
Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: I4cd84e4923e42afacc796b8cec01738b1bb1f420
2021-02-09 23:53:49 +00:00
..
android/snapshot libsnapshot: Communicate compression status to update_engine. 2021-02-04 18:44:08 -08:00
corpus
include/libsnapshot libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
include_test/libsnapshot libsnapshot: Add a test for when partitions shrink and grow simultaneously. 2021-01-26 14:48:09 -08:00
update_engine libsnapshot: Only enable compression when the corresponding bit is set in DeltaArchiveManifest. 2021-01-21 15:15:40 -08:00
Android.bp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
OWNERS
PowerTest.md
cow_api_test.cpp libsnapshot: Set default cluster size to 200 2021-01-12 20:06:20 -08:00
cow_decompress.cpp
cow_decompress.h
cow_format.cpp libsnapshot: Group CowOperations into clusters 2020-12-02 21:31:22 -08:00
cow_reader.cpp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
cow_snapuserd_test.cpp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
cow_writer.cpp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
device_info.cpp libsnapshot: Remove special-case code for first-stage init. 2020-11-23 04:14:08 +00:00
device_info.h libsnapshot: Remove special-case code for first-stage init. 2020-11-23 04:14:08 +00:00
dm_snapshot_internals.h
estimate_cow_from_nonab_ota.cpp
fuzz.sh
fuzz_utils.cpp
fuzz_utils.h
inspect_cow.cpp libsnapshot: Add decompression check to Inspect_Cow 2020-12-28 18:20:19 -08:00
make_cow_from_ab_ota.cpp libsnapshot: Support cluster_ops in make_cow_from_ab_ota 2020-12-02 21:31:23 -08:00
partition_cow_creator.cpp libsnapshot: Round compressed COW sizes to the nearest block. 2020-11-06 00:50:34 -08:00
partition_cow_creator.h libsnapshot: Use the COW size from the update manifest. 2020-11-02 13:24:16 -08:00
partition_cow_creator_test.cpp libsnapshot: Use the COW size from the update manifest. 2020-11-02 13:24:16 -08:00
power_test.cpp
return.cpp
run_power_test.sh
snapshot.cpp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
snapshot_fuzz.cpp
snapshot_fuzz_utils.cpp
snapshot_fuzz_utils.h libsnapshot: Remove special-case code for first-stage init. 2020-11-23 04:14:08 +00:00
snapshot_metadata_updater.cpp
snapshot_metadata_updater.h
snapshot_metadata_updater_test.cpp
snapshot_reader.cpp libsnapshot: Group CowOperations into clusters 2020-12-02 21:31:22 -08:00
snapshot_reader.h
snapshot_reader_test.cpp
snapshot_stats.cpp libsnapshot: Communicate compression status to update_engine. 2021-02-04 18:44:08 -08:00
snapshot_stub.cpp libsnapshot: Communicate compression status to update_engine. 2021-02-04 18:44:08 -08:00
snapshot_test.cpp libsnapshot: Disable the update space swap test on non-VABC. 2021-02-04 14:09:00 -08:00
snapshot_writer.cpp libsnapshot: Remove Initialize(fd, APPEND) 2020-11-05 18:38:58 -08:00
snapshotctl.cpp
snapuserd.cpp libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
snapuserd.h libsnapshot:snapuserd: Batch merge copy operation 2021-02-09 23:53:49 +00:00
snapuserd.rc Add support for compressed snapshot merges in fastboot. 2021-02-04 20:21:18 -08:00
snapuserd_client.cpp libsnaphot: Refactor cow_snapuserd test 2020-12-01 20:46:01 +00:00
snapuserd_daemon.cpp snapuserd: Add a no-socket mode. 2020-12-14 00:48:50 -08:00
snapuserd_daemon.h snapuserd: Add a no-socket mode. 2020-12-14 00:48:50 -08:00
snapuserd_server.cpp libsnapshot: No transition of snapuserd during second stage init 2021-02-09 22:45:29 +00:00
snapuserd_server.h libsnapshot: Fix a race condition in WaitForDelete. 2021-01-12 23:21:57 -08:00
test_helpers.cpp libsnapshot: Add a test for when partitions shrink and grow simultaneously. 2021-01-26 14:48:09 -08:00
utility.cpp libsnapshot: Pass the correct source device to snapuserd. 2021-01-20 18:17:08 -08:00
utility.h libsnapshot: Pass the correct source device to snapuserd. 2021-01-20 18:17:08 -08:00