# git gc Expanding reachable commits in commit graph: 51897 Expanding reachable commits in commit graph: 107742 Expanding reachable commits in commit graph: 162313 Expanding reachable commits in commit graph: 219979 Expanding reachable commits in commit graph: 274001 Expanding reachable commits in commit graph: 332722 Expanding reachable commits in commit graph: 391341 Expanding reachable commits in commit graph: 450528 Expanding reachable commits in commit graph: 510711 Expanding reachable commits in commit graph: 562347 Expanding reachable commits in commit graph: 625249 Expanding reachable commits in commit graph: 688437 Expanding reachable commits in commit graph: 751581 Expanding reachable commits in commit graph: 816430 Expanding reachable commits in commit graph: 883129 Expanding reachable commits in commit graph: 950626 Expanding reachable commits in commit graph: 1018823 Expanding reachable commits in commit graph: 1065982 Expanding reachable commits in commit graph: 1138683 Expanding reachable commits in commit graph: 1210873 Expanding reachable commits in commit graph: 1284172 Expanding reachable commits in commit graph: 1294237, done. Finding extra edges in commit graph: 53% (697700/1294237) Finding extra edges in commit graph: 54% (698888/1294237) Finding extra edges in commit graph: 55% (711831/1294237) Finding extra edges in commit graph: 56% (724773/1294237) Finding extra edges in commit graph: 57% (737716/1294237) Finding extra edges in commit graph: 58% (750658/1294237) Finding extra edges in commit graph: 59% (763600/1294237) Finding extra edges in commit graph: 60% (776543/1294237) Finding extra edges in commit graph: 61% (789485/1294237) Finding extra edges in commit graph: 62% (802427/1294237) Finding extra edges in commit graph: 63% (815370/1294237) Finding extra edges in commit graph: 64% (828312/1294237) Finding extra edges in commit graph: 65% (841255/1294237) Finding extra edges in commit graph: 66% (854197/1294237) Finding extra edges in commit graph: 67% (867139/1294237) Finding extra edges in commit graph: 68% (880082/1294237) Finding extra edges in commit graph: 69% (893024/1294237) Finding extra edges in commit graph: 70% (905966/1294237) Finding extra edges in commit graph: 71% (918909/1294237) Finding extra edges in commit graph: 72% (931851/1294237) Finding extra edges in commit graph: 73% (944794/1294237) Finding extra edges in commit graph: 74% (957736/1294237) Finding extra edges in commit graph: 75% (970678/1294237) Finding extra edges in commit graph: 76% (983621/1294237) Finding extra edges in commit graph: 77% (996563/1294237) Finding extra edges in commit graph: 78% (1009505/1294237) Finding extra edges in commit graph: 79% (1022448/1294237) Finding extra edges in commit graph: 80% (1035390/1294237) Finding extra edges in commit graph: 81% (1048332/1294237) Finding extra edges in commit graph: 82% (1061275/1294237) Finding extra edges in commit graph: 83% (1074217/1294237) Finding extra edges in commit graph: 84% (1087160/1294237) Finding extra edges in commit graph: 85% (1100102/1294237) Finding extra edges in commit graph: 86% (1113044/1294237) Finding extra edges in commit graph: 87% (1125987/1294237) Finding extra edges in commit graph: 88% (1138929/1294237) Finding extra edges in commit graph: 89% (1151871/1294237) Finding extra edges in commit graph: 90% (1164814/1294237) Finding extra edges in commit graph: 91% (1177756/1294237) Finding extra edges in commit graph: 92% (1190699/1294237) Finding extra edges in commit graph: 93% (1203641/1294237) Finding extra edges in commit graph: 94% (1216583/1294237) Finding extra edges in commit graph: 95% (1229526/1294237) Finding extra edges in commit graph: 96% (1242468/1294237) Finding extra edges in commit graph: 97% (1255410/1294237) Finding extra edges in commit graph: 98% (1268353/1294237) Finding extra edges in commit graph: 99% (1281295/1294237) Finding extra edges in commit graph: 100% (1294237/1294237) Finding extra edges in commit graph: 100% (1294237/1294237), done. Writing out commit graph in 4 passes: 54% (2811913/5176948) Writing out commit graph in 4 passes: 55% (2847322/5176948) Writing out commit graph in 4 passes: 56% (2899091/5176948) Writing out commit graph in 4 passes: 57% (2950861/5176948) Writing out commit graph in 4 passes: 58% (3002630/5176948) Writing out commit graph in 4 passes: 59% (3054400/5176948) Writing out commit graph in 4 passes: 60% (3106169/5176948) Writing out commit graph in 4 passes: 60% (3150901/5176948) Writing out commit graph in 4 passes: 61% (3157939/5176948) Writing out commit graph in 4 passes: 62% (3209708/5176948) Writing out commit graph in 4 passes: 63% (3261478/5176948) Writing out commit graph in 4 passes: 64% (3313247/5176948) Writing out commit graph in 4 passes: 65% (3365017/5176948) Writing out commit graph in 4 passes: 66% (3416786/5176948) Writing out commit graph in 4 passes: 67% (3468556/5176948) Writing out commit graph in 4 passes: 67% (3490096/5176948) Writing out commit graph in 4 passes: 68% (3520325/5176948) Writing out commit graph in 4 passes: 69% (3572095/5176948) Writing out commit graph in 4 passes: 70% (3623864/5176948) Writing out commit graph in 4 passes: 71% (3675634/5176948) Writing out commit graph in 4 passes: 72% (3727403/5176948) Writing out commit graph in 4 passes: 73% (3779173/5176948) Writing out commit graph in 4 passes: 73% (3822343/5176948) Writing out commit graph in 4 passes: 74% (3830942/5176948) Writing out commit graph in 4 passes: 75% (3882711/5176948) Writing out commit graph in 4 passes: 76% (3934481/5176948) Writing out commit graph in 4 passes: 77% (3986250/5176948) Writing out commit graph in 4 passes: 78% (4038020/5176948) Writing out commit graph in 4 passes: 79% (4089789/5176948) Writing out commit graph in 4 passes: 80% (4141559/5176948) Writing out commit graph in 4 passes: 81% (4193328/5176948) Writing out commit graph in 4 passes: 82% (4245098/5176948) Writing out commit graph in 4 passes: 83% (4296867/5176948) Writing out commit graph in 4 passes: 84% (4348637/5176948) Writing out commit graph in 4 passes: 85% (4400406/5176948) Writing out commit graph in 4 passes: 86% (4452176/5176948) Writing out commit graph in 4 passes: 87% (4503945/5176948) Writing out commit graph in 4 passes: 88% (4555715/5176948) Writing out commit graph in 4 passes: 89% (4607484/5176948) Writing out commit graph in 4 passes: 90% (4659254/5176948) Writing out commit graph in 4 passes: 91% (4711023/5176948) Writing out commit graph in 4 passes: 92% (4762793/5176948) Writing out commit graph in 4 passes: 93% (4814562/5176948) Writing out commit graph in 4 passes: 94% (4866332/5176948) Writing out commit graph in 4 passes: 95% (4918101/5176948) Writing out commit graph in 4 passes: 96% (4969871/5176948) Writing out commit graph in 4 passes: 97% (5021640/5176948) Writing out commit graph in 4 passes: 98% (5073410/5176948) Writing out commit graph in 4 passes: 99% (5125179/5176948) Writing out commit graph in 4 passes: 100% (5176948/5176948) Writing out commit graph in 4 passes: 100% (5176948/5176948), done. # git rev-parse -q --verify 3a7e02c040b130b5545e4b115aada7bacd80a2b6^{commit} 3a7e02c040b130b5545e4b115aada7bacd80a2b6 already have revision, skipping fetch # git checkout -q -f -B kisskb 3a7e02c040b130b5545e4b115aada7bacd80a2b6 # git clean -qxdf # < git log -1 # commit 3a7e02c040b130b5545e4b115aada7bacd80a2b6 # Author: Linus Torvalds # Date: Fri Jul 26 15:32:27 2024 -0700 # # minmax: avoid overly complicated constant expressions in VM code # # The minmax infrastructure is overkill for simple constants, and can # cause huge expansions because those simple constants are then used by # other things. # # For example, 'pageblock_order' is a core VM constant, but because it was # implemented using 'min_t()' and all the type-checking that involves, it # actually expanded to something like 2.5kB of preprocessor noise. # # And when that simple constant was then used inside other expansions: # # #define pageblock_nr_pages (1UL << pageblock_order) # #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) # # and we then use that inside a 'max()' macro: # # case ISOLATE_SUCCESS: # update_cached = false; # last_migrated_pfn = max(cc->zone->zone_start_pfn, # pageblock_start_pfn(cc->migrate_pfn - 1)); # # the end result was that one statement expanding to 253kB in size. # # There are probably other cases of this, but this one case certainly # stood out. # # I've added 'MIN_T()' and 'MAX_T()' macros for this kind of "core simple # constant with specific type" use. These macros skip the type checking, # and as such need to be very sparingly used only for obvious cases that # have active issues like this. # # Reported-by: Lorenzo Stoakes # Link: https://lore.kernel.org/all/36aa2cad-1db1-4abf-8dd2-fb20484aabc3@lucifer.local/ # Cc: David Laight # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 3a7e02c040b130b5545e4b115aada7bacd80a2b6 # make -s -j 24 ARCH=powerpc O=/kisskb/build/linus_powernv_defconfig+THIN_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- powernv_defconfig # Added to kconfig CONFIG_USE_THIN_ARCHIVES=y # < make -s -j 24 ARCH=powerpc O=/kisskb/build/linus_powernv_defconfig+THIN_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 24 ARCH=powerpc O=/kisskb/build/linus_powernv_defconfig+THIN_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 24 ARCH=powerpc O=/kisskb/build/linus_powernv_defconfig+THIN_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/linus_powernv_defconfig+THIN_powerpc-gcc13 # Build took: 0:13:27.719095