platform_system_core/fs_mgr
David Anderson 2332afb31f liblp: Implement support for request queue alignment.
Block devices in the Linux kernel have a "minimum I/O request" size. The
minimum size is usually acquired by the block driver and can change
from device to device. When stacking devices (such as with
device-mapper), the kernel goes through great lengths to make sure this
alignment is respected for optimal I/O. In device-mapper's case,
misalignment can lead to kernel warnings and performance issues.

While this is unlikely to matter with a few targets, it could become
problematic on a large number of targets, and so we would prefer to
align all partition extents to the minimum I/O size.

We now support two new properties in the partition table geometry: an
"alignment", which is the minimum I/O size, and an "alignment offset",
which is an offset that when applied to sector 0, causes the sector to
be properly aligned within its parent device (for example, if a
physical partition is misaligned). All partition extents now begin on a
sector that respects this alignment.

One major caveat is that it is difficult for the initial partition table
to have the correct alignment without build system and/or flash tool
support. To accomodate this, all alignment is optional, and the lpmake
tool will support a default alignment of 1MiB as a failsafe.

Bug: 79173901
Test: liblp_test gtest
Change-Id: I5bc41b90aa085f4f30393951af0d2b37c4ac2a72
2018-07-09 18:50:28 -07:00
..
include fs_mgr: fs_mgr_update_verity_state take std::function 2018-06-28 08:43:35 -07:00
include_fstab/fstab fs_mgr: remove some unused functions 2018-06-07 16:49:01 -07:00
libdm fs_mgr: replace DM_TABLE_STATUS use with libdm. 2018-06-27 12:48:28 -07:00
liblp liblp: Implement support for request queue alignment. 2018-07-09 18:50:28 -07:00
tests fs_mgr: Add support in fs_mgr_read_fstab_file for /proc/mounts 2018-06-27 14:49:06 -07:00
tools fs_mgr: replace DM_TABLE_STATUS use with libdm. 2018-06-27 12:48:28 -07:00
.clang-format Fix-up coding style 2017-02-18 12:33:36 +08:00
Android.bp fs_mgr: remove fs_mgr_dm_ioctl 2018-06-27 12:48:29 -07:00
OWNERS Add OWNERS. 2017-12-07 13:30:03 -08:00
fs_mgr.cpp fs_mgr: fs_mgr_update_verity_state take std::function 2018-06-28 08:43:35 -07:00
fs_mgr_avb.cpp libdm: Add DmTargetVerity and use it in fs_mgr_avb. 2018-06-25 17:56:12 -07:00
fs_mgr_avb_ops.cpp fs_mgr: Adding logs when failing to wait for a device file 2017-07-06 09:51:02 +08:00
fs_mgr_boot_config.cpp fs_mgr: reorder getting boot config 2018-06-12 00:16:14 +08:00
fs_mgr_dm_linear.cpp fs_mgr: Use libdm for dm-linear devices. 2018-06-25 12:56:15 -07:00
fs_mgr_format.cpp make_f2fs: specify sector size for target image size and missing options 2018-04-04 09:24:24 -07:00
fs_mgr_fstab.cpp fs_mgr: Add support in fs_mgr_read_fstab_file for /proc/mounts 2018-06-27 14:49:06 -07:00
fs_mgr_priv.h init/fs_mgr: prototype first-stage dm-linear support 2018-05-14 12:43:42 -07:00
fs_mgr_priv_avb_ops.h fs_mgr: Update for new libavb API. 2017-05-15 12:04:18 -04:00
fs_mgr_priv_boot_config.h fs_mgr: fs_mgr_get_boot_config_from_kernel_cmdline deal with quote 2018-06-08 16:04:17 -07:00
fs_mgr_priv_sha.h fs_mgr_avb: refactors how vbmeta is loaded 2017-04-14 21:50:55 +08:00
fs_mgr_slotselect.cpp init/fs_mgr: prototype first-stage dm-linear support 2018-05-14 12:43:42 -07:00
fs_mgr_verity.cpp fs_mgr: Use libdm for fs_mgr_verity. 2018-06-26 12:41:47 -07:00