This reverts commit f72860ce18.
Reason for revert: http://b/219642530 - I/O failures seen on one specific device intermittently. Let's pause this; I will revisit it before we land it back as we don't want to hold dogfood builds.
Change-Id: I3a80ccf5f67daed01d5b2e6a502e8acea85a769f
snapuserd: Use io_uring READ/WRITE opcodes for snapshot merge.
Specifically, it is used only for readahead and ordered ops
code path.
Snapshot merge perf:
===========================================================
Incremental OTA of 300M between two git_master branches on Pixel 6:
===========================================================
On Android S (with dm-snapshot): ~15 minutes:
update_engine: [INFO:cleanup_previous_update_action.cc(330)] Merge finished with state MergeCompleted.
update_engine: [INFO:cleanup_previous_update_action.cc(130)] Stopping/suspending/completing CleanupPreviousUpdateAction
update_engine: [INFO:cleanup_previous_update_action.cc(501)] Reporting merge stats: MergeCompleted in 926508ms (resumed 0 times), using 0 bytes of COW image.
===========================================================
On Android T (with io_uring: ~38 seconds):
update_engine: [INFO:cleanup_previous_update_action.cc(330)] Merge finished with state MergeCompleted.
update_engine: [INFO:cleanup_previous_update_action.cc(130)] Stopping/suspending/completing CleanupPreviousUpdateAction
update_engine: [INFO:cleanup_previous_update_action.cc(501)] Reporting merge stats: MergeCompleted in 38868ms (resumed 0 times), using 0 bytes of COW image.
===========================================================
Bug: 202784286
Test: Full/Incremental OTA
Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: Ia6efff32898cdc6b683ca49c233ef45e8cd732e7
Bug: 202784018
Test: Full/Incremental OTA tested on CF, Pixel
OTA Merge time performance on Pixel (bramble)
==========================================================
Incremental - OTA - 389M
OTA Operations:
system - Copy-ops: 34060 Zero-ops: 678 Replace-ops: 93846 Xor-ops: 75490
product - Copy-ops: 241742 Zero-ops: 1970 Replace-ops: 292890 Xor-ops: 80763
vendor - Copy-ops: 110285 Zero-ops: 660 Replace-ops: 62163 Xor-ops: 23474
system_ext_b - Copy-ops: 44509 Zero-ops: 426 Replace-ops: 39475 Xor-ops: 44628
====================================================================
1: VAB - Compression with dm-snapshot (on Android S)
Merge-time = 344 seconds (~5.7 minutes)
2: VAB - Compression with user-snapshot (on Android T)
Merge-time = 53 seconds
3: VAB - Without compression (using kernel COW format)
Merge-time = 33 seconds
Compared to Android S, merge time improves by 84% with user-snapshots on Android T.
The 20 seconds difference between (2) and (3) is because of two phase merge during compression which essentially serializes merge start time between partitions.
On (3), there is no two phase merge as all the partition starts merge at the same time.
When there is no two phase merge involved, (2) and (3) are nearly identical.
============================================================
Full OTA - 1.8G
1: VAB - Compression with dm-snapshot (on Android S)
Merge-time = 40 seconds
2: VAB - Compression with user-snapshot (on Android T)
Merge-time = 32 seconds
3: VAB - Without compression (using kernel COW format)
Merge-time = 32 seconds
===============================================================
Presubmit OTA testing enabled on Cuttlefish for ~1 Week with
the feature enabled.
https://v2-dot-atp.googleplex.com/tests/asit/ota/incremental_mixed_resume
Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: I88d15b94a48799996f38755063319269a3d70723
Test: mm -j && mm -j dist, make sure virtual_ab_compression is set to
true in dynamic_partition_info.txt of target_File.zip
Change-Id: Id0d46bd8ed738b2b69a0c01481b7db0c7127f773
Add linker.vendor_ramdisk for Virtual A/B devices with
a vendor_ramdisk because e2fsck is dynamic.
Test: pass
Bug: 173425293
Change-Id: I0a6f5bf15362e28eaa07a4d639ea23749b94b0f5
If vendor_ramdisk exists, it is preferred to use launch_with_vendor_ramdisk.mk
because it moves e2fsck to vendor_ramdisk, making ramdisk smaller.
Devices that uses VABC is assumed to have a vendor ramdisk, so inherit
from this new makefile.
Test: pass
Change-Id: If6adad9985ca4750225fd4263edb42de1ddaf486