Skip to content

Comments

feat: remove rootfs.tar compression/decompression step#253

Open
gagath wants to merge 1 commit intoqualcomm-linux:mainfrom
gagath:reduce-compression-cycles
Open

feat: remove rootfs.tar compression/decompression step#253
gagath wants to merge 1 commit intoqualcomm-linux:mainfrom
gagath:reduce-compression-cycles

Conversation

@gagath
Copy link
Contributor

@gagath gagath commented Feb 20, 2026

gzip compression only uses a single core, and we are decompressing the rootfs right after when building an image taking the rootfs as its input.

On my build machine, here are the timings saved:

  • compression: 128 s
  • decompression: 48 s

The Makefile rules are updated to reflect the change.

The CI workflow is updated to compress the rootfs before staging it as an artifact for upload, saving some bandwidth and storage space only where it seems necessary.

This commit is the first work regarding trying to reduce the number of compression/decompression cycles described in #246.

@gagath gagath marked this pull request as draft February 20, 2026 10:37
gzip compression only uses a single core, and we are decompressing the
rootfs right after when building an image taking the rootfs as its
input.

On my build machine, here are the timings saved:

- compression: 128 s
- decompression: 48 s

The Makefile rules are updated to reflect the change.

The CI workflow is updated to compress the rootfs before staging it as
an artifact for upload, saving some bandwidth and storage space only
where it seems necessary.

This commit is the first work regarding trying to reduce the number of
compression/decompression cycles described in qualcomm-linux#246.

Signed-off-by: Agathe Porte <agathe.porte@oss.qualcomm.com>
@gagath gagath force-pushed the reduce-compression-cycles branch from 9a07a3c to 3470ded Compare February 20, 2026 10:39
@github-actions
Copy link

Test jobs for commit 9a07a3c

@github-actions
Copy link

Test Results

 2 files  ±0   6 suites  ±0   2m 54s ⏱️ ±0s
20 tests ±0  19 ✅ ±0  0 💤 ±0  1 ❌ ±0 
61 runs  ±0  60 ✅ ±0  0 💤 ±0  1 ❌ ±0 

For more details on these failures, see this check.

Results for commit 3470ded. ± Comparison against base commit aa30037.

@github-actions
Copy link

Test jobs for commit 3470ded

@koenkooi
Copy link

FWIW, pigz is a drop-in replacement and does support multithreading. Another way to save time is to look at the compression level versus size and time. The default level (6) is not always the best tradeoff between size and time, especially when we have a lot of space taken up by /lib/firmware.

@gagath
Copy link
Contributor Author

gagath commented Feb 20, 2026

FWIW, pigz is a drop-in replacement and does support multithreading. Another way to save time is to look at the compression level versus size and time. The default level (6) is not always the best tradeoff between size and time, especially when we have a lot of space taken up by /lib/firmware.

We would still be compressing to decompress it right away. I even considered lz4 to go super fast, but what’s the point? The only use of compressing it seems to be to reduce artifacts size in CI.

@gagath
Copy link
Contributor Author

gagath commented Feb 20, 2026

Removing draft status, the CI failure is a false positive now documented in #254.

@gagath gagath marked this pull request as ready for review February 20, 2026 14:26
@basak-qcom
Copy link
Contributor

Looks good. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants