I played a little with btrfs on debian sparc64 (V240).
I created a LV from my volumegroup and mounted it.
At this moment I got a warning from the kernel as follow:
[ 624.857466] device fsid 5defc44f31f449af-b797a325301d119a devid 1
transid 502 /dev/mapper/vgsys-debian64
[ 624.983823] ------------[ cut here ]------------
[ 625.044657] WARNING: at
/build/buildd-linux-2.6_2.6.38-3-sparc-675DHN/linux-2.6-2.6.38/debian/build/source_sparc_none/fs/btrfs/extent_io.c:3787
write_extent_buffer+0xc8/0x128 [btrfs]()
[ 625.260939] Modules linked in: nfsd exportfs nfs lockd fscache
nfs_acl auth_rpcgss sunrpc ext2 loop flash ext4 mbcache jbd2 crc16
dm_mod raid1 md_mod btrfs lzo_compress zlib_deflate crc32c libcrc32c
ide_cd_mod cdrom ata_generic libata ide_pci_generic sd_mod crc_t10dif
qla1280 ohci_hcd ehci_hcd tg3 sym53c8xx scsi_transport_spi scsi_mod
usbcore libphy alim15x3 nls_base [last unloaded: scsi_wait_scan]
[ 625.725351] Call Trace:
[ 625.757411] [00000000103f5cbc] write_extent_buffer+0xc8/0x128 [btrfs]
[ 625.843302] [00000000103fd7b4] btrfs_read_sys_array+0x3c/0x314 [btrfs]
[ 625.930333] [00000000103c65e0] open_ctree+0xf28/0x1884 [btrfs]
[ 626.008199] [000000001039d01c] btrfs_mount+0x238/0x43c [btrfs]
[ 626.086068] [0000000000514db8] vfs_kern_mount+0x98/0x1fc
[ 626.157071] [0000000000514f5c] do_kern_mount+0x24/0xbc
[ 626.225696] [000000000052d718] do_mount+0x830/0x898
[ 626.290889] [000000000054ed68] compat_sys_mount+0x1c8/0x204
[ 626.365229] [0000000000406114] linux_sparc_syscall32+0x34/0x40
[ 626.442999] ---[ end trace 1a1c133a476942b9 ]---
Then, after writing on the disk, I got a lot of warning:
[ 822.515875] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 825.897439] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 826.030575] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 826.565416] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 826.692390] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 841.631005] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 841.736359] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 846.774635] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 846.880038] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 847.018567] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 847.157098] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 847.262536] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 851.884641] log_unaligned: 127 callbacks suppressed
[ 851.948889] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 852.054307] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 852.227997] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
[ 852.333491] Kernel unaligned access at TPC[103c2204]
btrfs_csum_final+0x38/0x3c [btrfs]
I peeked a look at the btrf_csum_final and here's the function :
void btrfs_csum_final(u32 crc, char *result)
{
*(__le32 *)result = ~cpu_to_le32(crc);
}
I know that this problem is certainly an alignment problem and that the
sparc is prone to that kind of problem.
If someone could explain what's wrong with it?
S. Bernard
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html