Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f72860ce authored by Akilesh Kailash's avatar Akilesh Kailash
Browse files

Enable io_uring feature for virtual A/B OTA



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: default avatarAkilesh Kailash <akailash@google.com>
Change-Id: Ia6efff32898cdc6b683ca49c233ef45e8cd732e7
parent d183371c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_ven

PRODUCT_VENDOR_PROPERTIES += ro.virtual_ab.compression.enabled=true
PRODUCT_VENDOR_PROPERTIES += ro.virtual_ab.userspace.snapshots.enabled=true
PRODUCT_VENDOR_PROPERTIES += ro.virtual_ab.io_uring.enabled=true
PRODUCT_VIRTUAL_AB_COMPRESSION := true
PRODUCT_PACKAGES += \
    snapuserd.vendor_ramdisk \