This installs snapuserd to /system/bin/snapuserd_ramdisk instead of
/system/bin/snapuserd
Test: th
Bug: 219841787
Change-Id: I517e251bf1f895b9de993ec7e5f57f11205172c8
When BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT is set,
snapuserd.recovery will be installed to vendor ramdisk, which we don't
want. To remove snapuserd from vendor ramdisk, remove
snapuserd.recovery. And only include it if dedicated recovery partition
is enabled. For non-dedicated recovery case, boot partition contains
snapuserd.
Test: th
Test: acloud create --local-image --local-instance, install OTA, reboot
Change-Id: Ib8173f68a1f43b736fe609977a36ad4851e0c367
1. android_t_baseline.mk enables baseline features, such as io_uring,
userspace merge, etc. But sets compression method to none. T
launching devices should include this. It also moves snapuserd from
vendor_ramdisk to init_boot
2. To add compression, set PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD to
gz/brotli
Test: th
Bug: 219841787
Change-Id: I6ae4d951b0a64f142acd4c152ce96375d47ecf74
If the async merge has a temporary failure, gracefully fallback
to synchronous I/O without failing the OTA merge.
Bug: 220991038
Test: 1: OTA on CF pre-submit runs
2: OTA on O6, R4 and Bramble with the following flow on TP builds:
BUILD-1 (without-this-patch) -> BUILD-2 (with this patch) -> BUILD-3 (with this patch)
Verified the failure path of async merge on all three devices
Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: I0b499d2cc81f44c74f85745f9165b81d0ce34eba
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