# git rev-parse -q --verify bba7d682277c09373b56b0461b0abbd0b3d1e872^{commit} bba7d682277c09373b56b0461b0abbd0b3d1e872 already have revision, skipping fetch # git checkout -q -f -B kisskb bba7d682277c09373b56b0461b0abbd0b3d1e872 # git clean -qxdf # < git log -1 # commit bba7d682277c09373b56b0461b0abbd0b3d1e872 # Merge: a64a325bf631 2a09b575074f # Author: Linus Torvalds # Date: Tue Nov 2 12:42:56 2021 -0700 # # Merge tag 'xfs-5.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux # # Pull xfs updates from Darrick Wong: # "This cycle we've worked on fixing bugs and improving XFS' memory # footprint. # # The most notable fixes include: fixing a corruption warning (and free # space accounting skew) if copy on write fails; fixing slab cache # misuse if SLOB is enabled, which apparently was broken for years # without anybody noticing; and fixing a potential race with online # shrinkfs. # # Otherwise, the bulk of the changes here involve setting up separate # slab caches for frequently used items such as btree cursors and log # intent items, and compacting the structures to reduce memory usage of # those items substantially. This also sets us up to support larger # btrees in future kernels. We also switch parts of online fsck to # allocate scrub context information from the heap instead of using # stack space. # # Summary: # # - Bug fixes and cleanups for kernel memory allocation usage, this # time without touching the mm code. # # - Refactor the log recovery mechanism that preserves held resources # across a transaction roll so that it uses the exact same mechanism # that we use for that during regular runtime. # # - Fix bugs and tighten checking around btree heights. # # - Remove more old typedefs. # # - Fix perag reference leaks when racing with growfs. # # - Remove unused fields from xfs_btree_cur. # # - Allocate various scrub structures on the heap to reduce stack # usage. # # - Pack xfs_btree_cur fields and rearrange to support arbitrary # heights. # # - Compute maximum possible heights for each btree height, and use # that to set up slab caches for each btree type. # # - Finally remove kmem_zone_t, since these have always been struct # kmem_cache on Linux. # # - Compact the structures used to coordinate work intent items. # # - Set up slab caches for each work intent item type. # # - Rename the "bmap_add_free" function to "free_extent_later", which # more accurately describes what it does. # # - Fix corruption warning on unmount when a CoW preallocation covers a # data fork delalloc reservation but then the CoW fails. # # - Add some more minor code improvements" # # * tag 'xfs-5.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (45 commits) # xfs: use swap() to make code cleaner # xfs: Remove duplicated include in xfs_super # xfs: punch out data fork delalloc blocks on COW writeback failure # xfs: remove unused parameter from refcount code # xfs: reduce the size of struct xfs_extent_free_item # xfs: rename xfs_bmap_add_free to xfs_free_extent_later # xfs: create slab caches for frequently-used deferred items # xfs: compact deferred intent item structures # xfs: rename _zone variables to _cache # xfs: remove kmem_zone typedef # xfs: use separate btree cursor cache for each btree type # xfs: compute absolute maximum nlevels for each btree type # xfs: kill XFS_BTREE_MAXLEVELS # xfs: compute the maximum height of the rmap btree when reflink enabled # xfs: clean up xfs_btree_{calc_size,compute_maxlevels} # xfs: compute maximum AG btree height for critical reservation calculation # xfs: rename m_ag_maxlevels to m_allocbt_maxlevels # xfs: dynamically allocate cursors based on maxlevels # xfs: encode the max btree height in the cursor # xfs: refactor btree cursor allocation function # ... # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 bba7d682277c09373b56b0461b0abbd0b3d1e872 # < make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus-rand_x86_64-randconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- randconfig # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_CC_STACKPROTECTOR_STRONG=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=n # Added to kconfig CONFIG_GCC_PLUGIN_SANCOV=n # Added to kconfig CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n # Added to kconfig CONFIG_BPF_PRELOAD=n # Added to kconfig # < make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus-rand_x86_64-randconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus-rand_x86_64-randconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig .config:6466:warning: override: reassigning to symbol STANDALONE .config:6472:warning: override: reassigning to symbol GCC_PLUGIN_LATENT_ENTROPY # make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus-rand_x86_64-randconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- vmlinux.o: warning: objtool: do_machine_check()+0xf9b: call to queue_task_work() leaves .noinstr.text section Completed OK # rm -rf /kisskb/build/linus-rand_x86_64-randconfig_x86_64-gcc8 # Build took: 0:04:24.022820