On 2021/6/10 下午1:23, Christophe Leroy wrote:
With a config having PAGE_SIZE set to 256K, BTRFS build fails with the following message include/linux/compiler_types.h:326:38: error: call to '__compiletime_assert_791' declared with attribute error: BUILD_BUG_ON failed: (BTRFS_MAX_COMPRESSED % PAGE_SIZE) != 0 BTRFS_MAX_COMPRESSED being 128K, BTRFS cannot support platforms with 256K pages at the time being. There are two platforms that can select 256K pages: - hexagon - powerpc Disable BTRFS when 256K page size is selected. Reported-by: kernel test robot <l...@intel.com> Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu> --- fs/btrfs/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig index 68b95ad82126..520a0f6a7d9e 100644 --- a/fs/btrfs/Kconfig +++ b/fs/btrfs/Kconfig @@ -18,6 +18,8 @@ config BTRFS_FS select RAID6_PQ select XOR_BLOCKS select SRCU + depends on !PPC_256K_PAGES # powerpc + depends on !PAGE_SIZE_256KB # hexagon
I'm OK to disable page size other than 4K, 16K, 32K, 64K for now. Although for other reasons. Not only for the BUILD_BUG_ON(), but for the fact that btrfs only support 4K, 16K, 32K, 64K sectorsize, and requires PAGE_SIZE == sectorsize. Although we're adding subpage support, the subpage support only comes with 4K sectorsize on 64K page size. Until variable length version is introduced, 256K/128K page size won't be support. Thus I'm fine to disable BTRFS for any arch outside of the supported page sizes for now. Thanks, Qu
help Btrfs is a general purpose copy-on-write filesystem with extents,