diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-03-04 21:28:14 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-01 12:25:02 +0200 |
commit | 32eb57dd9a19254565a0792ab9b627a3dac319f9 (patch) | |
tree | c86314fda1e36f2231f352ec0f372aef7d3d9b0a /include | |
parent | 6b1020ef3e034cbb6e0fa4cd984b181c0dd414ff (diff) |
libsquashfs: remove the default block writer alignment feature
The idea of the block align feature was to allow micro-managing that
some files are forcefully aligned to 1k/4k ("device block") boundaries,
hoping to improve access time at the cost of data density. The feature
was not exposed in the tools for a long time and eventuall added to the
sort file. Measurement and experimentation showed, that it in fact
worsened the read performance on a test system with an old micro SD
card as the bottle neck.
The feature is removed, and if needed, can be brought back simply by
wrapping/sub-classing the default block writer, if need be..
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r-- | include/sqfs/block.h | 16 | ||||
-rw-r--r-- | include/sqfs/block_writer.h | 8 |
2 files changed, 4 insertions, 20 deletions
diff --git a/include/sqfs/block.h b/include/sqfs/block.h index 30f181c..639fb68 100644 --- a/include/sqfs/block.h +++ b/include/sqfs/block.h @@ -72,12 +72,9 @@ typedef enum { SQFS_BLK_DONT_COMPRESS = 0x0001, /** - * @brief Align the block on disk to device block size. - * - * If set, the @ref sqfs_block_processor_t will add padding before the - * first block of the affected file and after the last block. + * @brief Don't compute block data checksums. */ - SQFS_BLK_ALIGN = 0x0002, + SQFS_BLK_DONT_HASH = 0x0002, /** * @brief Don't add the tail end of a file to a fragment block. @@ -105,11 +102,6 @@ typedef enum { SQFS_BLK_IGNORE_SPARSE = 0x0010, /** - * @brief Don't compute block data checksums. - */ - SQFS_BLK_DONT_HASH = 0x0020, - - /** * @brief Set by the @ref sqfs_block_processor_t if it determines a * block of a file to be sparse, i.e. only zero bytes. */ @@ -148,9 +140,9 @@ typedef enum { /** * @brief The combination of all flags that are user settable. */ - SQFS_BLK_USER_SETTABLE_FLAGS = 0x003F, + SQFS_BLK_USER_SETTABLE_FLAGS = 0x001F, - SQFS_BLK_FLAGS_ALL = 0xFC3F, + SQFS_BLK_FLAGS_ALL = 0xFC1F, } SQFS_BLK_FLAGS; #endif /* SQFS_BLOCK_H */ diff --git a/include/sqfs/block_writer.h b/include/sqfs/block_writer.h index 6376d2e..84e6973 100644 --- a/include/sqfs/block_writer.h +++ b/include/sqfs/block_writer.h @@ -52,11 +52,6 @@ struct sqfs_block_writer_t { * @ref SQFS_BLK_LAST_BLOCK flag is set, it uses those stored locations * to do block deduplication. * - * If the flag @ref SQFS_BLK_ALIGN is set in combination with the - * @ref SQFS_BLK_FIRST_BLOCK, the file size is padded to a multiple of - * the device block size before writing. If it is set together with the - * @ref SQFS_BLK_LAST_BLOCK flag, the padding is added afterwards. - * * @param wr A pointer to a block writer. * @param user An optional user data pointer. * The @ref sqfs_block_processor_t can be told to pass this @@ -126,15 +121,12 @@ extern "C" { * @memberof sqfs_block_writer_t * * @param file A pointer to a file object that data should be appended to. - * @param devblksz The underlying device block size if output data - * should be aligned. * @param flags A combination of @ref SQFS_BLOCK_WRITER_FLAGS values. If an * unknown flag is set, creation will fail. * * @return A pointer to a new block writer on success, NULL on failure. */ SQFS_API sqfs_block_writer_t *sqfs_block_writer_create(sqfs_file_t *file, - size_t devblksz, sqfs_u32 flags); #ifdef __cplusplus |