[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: btrfs module does not load on sparc64



On Mon, Jul 11, 2016 at 12:06:46PM +0200, David Sterba wrote:
> On Thu, Jul 07, 2016 at 05:29:35PM +0300, Anatoly Pugachev wrote:
> > Compiled linux kernel (git version 4.7.0-rc6+) using my own kernel
> > config file, enabling :
> > 
> > CONFIG_BTRFS_FS_RUN_SANITY_TESTS=y
> > CONFIG_BTRFS_DEBUG=y
> > CONFIG_BTRFS_ASSERT=y
> > 
> > and now I can't load btrfs module:
> > 
> > # modprobe btrfs
> > modprobe: ERROR: could not insert 'btrfs': Invalid argument
> > 
> > 
> > and in logs (and on console):
> > 
> > [1897399.942697] Btrfs loaded, crc32c=crc32c-generic, debug=on, assert=on
> > [1897400.024645] BTRFS: selftest: sectorsize: 8192  nodesize: 8192
> > [1897400.098089] BTRFS: selftest: Running btrfs free space cache tests
> > [1897400.175863] BTRFS: selftest: Running extent only tests
> > [1897400.241871] BTRFS: selftest: Running bitmap only tests
> > [1897400.307877] BTRFS: selftest: Running bitmap and extent tests
> > [1897400.380329] BTRFS: selftest: Running space stealing from bitmap to extent
> > [1897400.470517] BTRFS: selftest: Free space cache tests finished
> > [1897400.542875] BTRFS: selftest: Running extent buffer operation tests
> > [1897400.621710] BTRFS: selftest: Running btrfs_split_item tests
> > [1897400.692929] BTRFS: selftest: Running extent I/O tests
> > [1897400.757459] BTRFS: selftest: Running find delalloc tests
> > [1897401.082670] BTRFS: selftest: Running extent buffer bitmap tests
> > [1897401.161223] BTRFS: selftest: Setting straddling pages failed
> 
> The sanity tests fail at some point with EINVAL, so the module will fail
> to load in turn. Looking at the test itself (__test_eb_bitmaps), it does
> no make any assumptions about page size etc. so this "should work".
> Taking powerpc with 64k page size for another reference where the tests
> work, I'm not sure what exactly could be wrong here.

This is an endianness problem with the test. It's not showing up on
powerpc because ed9e4afdb055 ("Btrfs: self-tests: Execute page
straddling test only when nodesize < PAGE_SIZE") [1] disabled that chunk
of the test. It also fails on a big-endian MIPS QEMU system with 16K
pages. I'll send up a patch.

1: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ed9e4afdb0551e3ef4ee8433fe664433a20ef73a

-- 
Omar


Reply to: