[LU-99] fail to register backing_dev_info under RHEL6 Created: 25/Feb/11  Updated: 03/Mar/11  Resolved: 03/Mar/11

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.1.0
Fix Version/s: Lustre 2.1.0

Type: Bug Priority: Minor
Reporter: Ned Bass Assignee: Zhenyu Xu
Resolution: Duplicate Votes: 0
Labels: None
Environment:

RHEL6


Severity: 3
Rank (Obsolete): 10431

 Description   

We get the following warning and stacktrace under RHEL6 and Lustre 2.1 (in this
case triggered by 'ls -al' in the root of the mounted Lustre filesystem).

WARNING: at fs/fs-writeback.c:967 __mark_inode_dirty+0x108/0x160() (Tainted: G W ---------------- )
Hardware name: X8DTH-i/6/iF/6F
Modules linked in: osd_ldiskfs fsfilt_ldiskfs lustre ldiskfs lmv obdfilter ost cmm mdt mdd mds exportfs mgs mgc ext4 lov osc lquota mdc fid fld ko2iblnd ptlrpc obdclass lvfs lnet libcfs mbcache jbd2 ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_addr ib_sa mlx4_ib ib_mad ib_core sg sd_mod crc_t10dif dm_mirror dm_region_hash dm_log dm_mod video output sbs sbshc power_meter hwmon acpi_pad parport serio_raw i2c_i801 i2c_core ata_generic pata_acpi ata_piix iTCO_wdt iTCO_vendor_support ioatdma i7core_edac edac_core mpt2sas scsi_transport_sas raid_class ipv6 nfs lockd fscache nfs_acl auth_rpcgss sunrpc mlx4_core igb dca [last unloaded: ldiskfs]
Pid: 17095, comm: ls Tainted: G W ---------------- 2.6.32-14chaos #1
Call Trace:
[<ffffffff8106b8f7>] warn_slowpath_common+0x87/0xc0
[<ffffffff8106b94a>] warn_slowpath_null+0x1a/0x20
[<ffffffff81195218>] __mark_inode_dirty+0x108/0x160
[<ffffffff81185d3d>] touch_atime+0x12d/0x170
[<ffffffffa07df467>] ll_readdir+0x297/0x540 [lustre]
[<ffffffff81256941>] ? cpumask_any_but+0x31/0x50
[<ffffffff8117fc60>] ? filldir+0x0/0xe0
[<ffffffff8117fc60>] ? filldir+0x0/0xe0
[<ffffffff8117fee0>] vfs_readdir+0xc0/0xe0
[<ffffffff81180069>] sys_getdents+0x89/0xf0
[<ffffffff814c9705>] ? page_fault+0x25/0x30
[<ffffffff81013172>] system_call_fastpath+0x16/0x1b
--[ end trace 608329aca724c430 ]--
bdi-(null) not registered

In lustre/llite/llite_lib.c:ll_fill_super() we have

#ifdef HAVE_NEW_BACKING_DEV_INFO
lsi->bdi.name = "lustre";
lsi->bdi.capabilities = BDI_CAP_MAP_COPY;
err = bdi_register(&lsi->bdi, NULL, "lustre-%d",
atomic_inc_return(&ll_bdi_num));
sb->s_bdi = &lsi->bdi;
#endif

where HAVE_NEW_BACKING_DEV_INFO is defined at configure time if struct
backing_dev_info has member wb_cnt. However, RHEL6 has a backport of the
following patch which changes the write back thread queue interface and removes
wb_cnt.

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=83ba7b071f30f7c01f72518ad72d5cd203c27502

So the superblock bdi is never properly registered and we trigger the
warning in __mark_inode_dirty().



 Comments   
Comment by Lai Siyao [ 25/Feb/11 ]

Please check http://jira.whamcloud.com/browse/LU-37, the fix has been landed to 1.8.

Comment by Ned Bass [ 26/Feb/11 ]

Thanks, can we land the fix in 2.x as well?

Comment by Lai Siyao [ 27/Feb/11 ]

Hmm, I think it can be landed to 2.x along with other RHEL6 support code in LU-73.

Comment by Peter Jones [ 28/Feb/11 ]

Assign to Bobijam

Comment by Ned Bass [ 03/Mar/11 ]

Rebase of the 1.8 patch submitted:

http://review.whamcloud.com/296

Comment by Zhenyu Xu [ 03/Mar/11 ]

patch will be include in LU-73

Generated at Sat Feb 10 01:03:45 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.