[LEDE-DEV] make -j 4: race between Image/Prepare and device images?

Rafał Miłecki zajec5 at gmail.com
Tue Oct 25 01:31:05 PDT 2016


Hi,

I just discovered why I was getting some crazy results during my various kernel
tests. It seems that LEDE doesn't rebuild images as expected with make -j N.

I think that some/all images may be generated before Image/Prepare step.


// I did initial build with CONFIG_KERNEL_KALLSYMS=y
$ ls -l build_dir/target-*/linux-*/vmlinux.lzma
-rw-r--r-- 1 zajec users 1229437 Oct 25 10:10 build_dir/target-mipsel_mips32_musl-1.1.15/linux-brcm47xx_legacy/vmlinux.lzma
$ ls -l bin/targets/brcm47xx/legacy/*standard*trx bin/targets/brcm47xx/legacy/*wrt300n*trx
-rw-r--r-- 1 zajec users 3608576 Oct 25 10:11 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-linksys-wrt300n-v1-squashfs.trx
-rw-r--r-- 1 zajec users 4132864 Oct 25 10:11 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-noloader-gz-squashfs.trx
-rw-r--r-- 1 zajec users 3608576 Oct 25 10:11 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-squashfs.trx


// I disabled CONFIG_KERNEL_KALLSYMS and decided to rebuild
$ make -j 4
  make[1] world
  make[2] package/cleanup
  make[2] target/compile
  make[3] -C target/linux compile
  make[2] package/compile
  make[3] -C package/kernel/gpio-button-hotplug compile
  make[3] -C package/libs/toolchain compile
  make[3] -C package/system/usign host-compile
  make[3] -C package/libs/libjson-c compile
  make[3] -C package/libs/libnl-tiny compile
  make[3] -C package/utils/lua compile
  make[3] -C package/libs/lzo compile
  make[3] -C package/libs/zlib compile
  make[3] -C package/utils/util-linux compile
  make[3] -C package/system/lede-keyring compile
  make[3] -C package/firmware/b43legacy-firmware compile
  make[3] -C package/firmware/linux-firmware compile
  make[3] -C package/firmware/prism54-firmware compile
  make[3] -C package/network/utils/iw compile
  make[3] -C package/libs/mbedtls compile
  make[3] -C package/libs/polarssl compile
  make[3] -C package/network/ipv6/odhcp6c compile
  make[3] -C package/network/services/dnsmasq compile
  make[3] -C package/network/services/dropbear compile
  make[3] -C package/libs/libpcap compile
  make[3] -C package/network/utils/linux-atm compile
  make[3] -C package/network/utils/resolveip compile
  make[3] -C package/utils/busybox compile
  make[3] -C package/utils/nvram compile
  make[3] -C package/utils/otrx compile
  make[3] -C package/libs/libubox compile
  make[3] -C package/utils/mtd-utils compile
  make[3] -C package/kernel/linux compile
  make[3] -C package/system/ubus compile
  make[3] -C package/system/uci compile
  make[3] -C package/utils/jsonfilter compile
  make[3] -C package/system/usign compile
  make[3] -C package/libs/ustream-ssl compile
  make[3] -C package/network/config/swconfig compile
  make[3] -C package/network/services/odhcpd compile
  make[3] -C package/network/utils/iwinfo compile
  make[3] -C package/system/mtd compile
  make[3] -C package/network/config/netifd compile
  make[3] -C package/system/ubox compile
  make[3] -C package/network/services/hostapd compile
  make[3] -C package/libs/uclient compile
  make[3] -C package/system/fstools compile
  make[3] -C package/system/procd compile
  make[3] -C package/system/opkg compile
  make[3] -C package/base-files compile
  make[3] -C package/kernel/mac80211 compile
  make[3] -C package/network/utils/iptables compile
  make[3] -C package/network/services/ppp compile
  make[3] -C package/network/config/firewall compile
  make[2] package/install
  make[3] -C package/system/opkg host-install
  make[3] package/preconfig
  make[2] target/install
  make[3] -C target/linux install
  make[6] -C target/linux/brcm47xx/image/lzma-loader clean install
  make[2] package/index
  make[2] checksum


// vmlinux.lzma is now smaller as expected, but TRX images remained big!
$ ls -l build_dir/target-*/linux-*/vmlinux.lzma
-rw-r--r-- 1 zajec users 1140021 Oct 25 10:17 build_dir/target-mipsel_mips32_musl-1.1.15/linux-brcm47xx_legacy/vmlinux.lzma
$ ls -l bin/targets/brcm47xx/legacy/*standard*trx bin/targets/brcm47xx/legacy/*wrt300n*trx
-rw-r--r-- 1 zajec users 3608576 Oct 25 10:17 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-linksys-wrt300n-v1-squashfs.trx
-rw-r--r-- 1 zajec users 4132864 Oct 25 10:17 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-noloader-gz-squashfs.trx
-rw-r--r-- 1 zajec users 3608576 Oct 25 10:17 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-squashfs.trx


// Another try
$ make -j 4
  make[1] world
  make[2] package/cleanup
  make[2] target/compile
  make[3] -C target/linux compile
  make[2] package/compile
  make[3] -C package/system/usign host-compile
  make[3] -C package/kernel/gpio-button-hotplug compile
  make[3] -C package/libs/toolchain compile
  make[3] -C package/utils/lua compile
  make[3] -C package/libs/lzo compile
  make[3] -C package/libs/libnl-tiny compile
  make[3] -C package/libs/libjson-c compile
  make[3] -C package/libs/zlib compile
  make[3] -C package/utils/util-linux compile
  make[3] -C package/system/lede-keyring compile
  make[3] -C package/firmware/b43legacy-firmware compile
  make[3] -C package/firmware/linux-firmware compile
  make[3] -C package/firmware/prism54-firmware compile
  make[3] -C package/network/utils/iw compile
  make[3] -C package/libs/mbedtls compile
  make[3] -C package/libs/polarssl compile
  make[3] -C package/network/ipv6/odhcp6c compile
  make[3] -C package/network/services/dnsmasq compile
  make[3] -C package/network/services/dropbear compile
  make[3] -C package/libs/libpcap compile
  make[3] -C package/network/utils/linux-atm compile
  make[3] -C package/network/utils/resolveip compile
  make[3] -C package/utils/busybox compile
  make[3] -C package/utils/nvram compile
  make[3] -C package/utils/otrx compile
  make[3] -C package/libs/libubox compile
  make[3] -C package/utils/mtd-utils compile
  make[3] -C package/kernel/linux compile
  make[3] -C package/system/uci compile
  make[3] -C package/system/ubus compile
  make[3] -C package/utils/jsonfilter compile
  make[3] -C package/system/usign compile
  make[3] -C package/libs/ustream-ssl compile
  make[3] -C package/network/config/swconfig compile
  make[3] -C package/network/services/odhcpd compile
  make[3] -C package/network/utils/iwinfo compile
  make[3] -C package/system/mtd compile
  make[3] -C package/network/config/netifd compile
  make[3] -C package/system/ubox compile
  make[3] -C package/network/services/hostapd compile
  make[3] -C package/libs/uclient compile
  make[3] -C package/system/fstools compile
  make[3] -C package/system/procd compile
  make[3] -C package/system/opkg compile
  make[3] -C package/base-files compile
  make[3] -C package/kernel/mac80211 compile
  make[3] -C package/network/services/ppp compile
  make[3] -C package/network/utils/iptables compile
  make[3] -C package/network/config/firewall compile
  make[2] package/install
  make[3] -C package/system/opkg host-install
  make[3] package/preconfig
  make[2] target/install
  make[3] -C target/linux install
  make[6] -C target/linux/brcm47xx/image/lzma-loader clean install
  make[2] package/index
  make[2] checksum


// Now TRX files got smaller as expected
$ ls -l build_dir/target-*/linux-*/vmlinux.lzma
-rw-r--r-- 1 zajec users 1140021 Oct 25 10:18 build_dir/target-mipsel_mips32_musl-1.1.15/linux-brcm47xx_legacy/vmlinux.lzma
$ ls -l bin/targets/brcm47xx/legacy/*standard*trx bin/targets/brcm47xx/legacy/*wrt300n*trx
-rw-r--r-- 1 zajec users 3543040 Oct 25 10:18 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-linksys-wrt300n-v1-squashfs.trx
-rw-r--r-- 1 zajec users 4001792 Oct 25 10:18 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-noloader-gz-squashfs.trx
-rw-r--r-- 1 zajec users 3543040 Oct 25 10:18 bin/targets/brcm47xx/legacy/lede-brcm47xx-legacy-standard-squashfs.trx



More information about the Lede-dev mailing list