[openwrt/openwrt] build: image: support specifying mksquashfs4 parallel threads

LEDE Commits lede-commits at lists.infradead.org
Thu Jun 5 12:28:55 PDT 2025


nick pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a9972ae53efcdd67b919f7bcd223af972a865b50

commit a9972ae53efcdd67b919f7bcd223af972a865b50
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Wed Jun 4 18:16:12 2025 +0800

    build: image: support specifying mksquashfs4 parallel threads
    
    By enabling multi-threading file reading, the squashfs rootfs build
    process can be greatly accelerated. We use 4 as the default thread
    number. This is the default value for squashfs4 tool 4.7 if we don't
    append "-block-readers" or "-small-readers" options.
    
    For more test results:
    https://github.com/plougher/squashfs-tools/blob/4.7/Documentation/4.7/README
    
    Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
    Link: https://github.com/openwrt/openwrt/pull/19019
    Signed-off-by: Nick Hainke <vincent at systemli.org>
---
 config/Config-images.in | 16 ++++++++++++++++
 include/image.mk        |  2 ++
 2 files changed, 18 insertions(+)

diff --git a/config/Config-images.in b/config/Config-images.in
index 47f3dfc0d9..21ce0b8d28 100644
--- a/config/Config-images.in
+++ b/config/Config-images.in
@@ -160,6 +160,22 @@ menu "Target Images"
 			  Select squashfs block size, must be one of:
 			    4, 8, 16, 32, 64, 128, 256, 512, 1024
 
+		config TARGET_SQUASHFS_BLOCK_READERS
+			int "mksquashfs tool parallel block reader threads"
+			depends on TARGET_ROOTFS_SQUASHFS
+			default 4
+			help
+			  Specify the number of parallel block reader threads
+			  (for files equal or larger than the squashfs block size).
+
+		config TARGET_SQUASHFS_SMALL_READERS
+			int "mksquashfs tool parallel small file reader threads"
+			depends on TARGET_ROOTFS_SQUASHFS
+			default 4
+			help
+			  Specify the number of parallel small file reader threads
+			  (for files less than the squashfs block size).
+
 	menuconfig TARGET_ROOTFS_UBIFS
 		bool "ubifs"
 		default y if USES_UBIFS
diff --git a/include/image.mk b/include/image.mk
index 98a440be3c..2eca62a664 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -86,6 +86,8 @@ SQUASHFS_BLOCKSIZE := $(CONFIG_TARGET_SQUASHFS_BLOCK_SIZE)k
 SQUASHFSOPT := -b $(SQUASHFS_BLOCKSIZE)
 SQUASHFSOPT += -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1'
 SQUASHFSOPT += $(if $(CONFIG_SELINUX),-xattrs,-no-xattrs)
+SQUASHFSOPT += -block-readers $(CONFIG_TARGET_SQUASHFS_BLOCK_READERS)
+SQUASHFSOPT += -small-readers $(CONFIG_TARGET_SQUASHFS_SMALL_READERS)
 SQUASHFSCOMP := gzip
 LZMA_XZ_OPTIONS := -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2
 ifeq ($(CONFIG_SQUASHFS_XZ),y)




More information about the lede-commits mailing list