Re: [pre 3.16-rc1] Oops at spin_trylock(&inode->i_lock)

From: Tetsuo Handa
Date: Wed Jun 11 2014 - 07:35:57 EST


Paul E. McKenney wrote:
> On Tue, Jun 10, 2014 at 09:04:51PM +0900, Tetsuo Handa wrote:
> > Hello.
> >
> > I noticed that commit 59a3d4c363 "Merge branch 'core-rcu-for-linus' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next" causes
> > an oops when rebooting a system. Do you have any clue?
>
> Can't say that I do. However, the commits that might have made some
> difference in how RCU operates are the following. I have my doubts
> (listed below) about their being the cause, but if the oops is reproducible,
> why not try reverting each and see what happens? Or just bisect within
> the core-rcu-for-linus branches?

Thank you. This oops seems to be 100% reproducible. I tried

for i in 365187fbc04f 48a7639ce80c 595f3900f6b4 495aa969dbae a381d757d93f 5057f55e543b becb41bfe054 fa07a58f71ee a5d6d3a1b00a
do
git reset --hard $i; yes | make -sj4; make -s modules_install install
git reset --hard $i~1; yes | make -sj4; make -s modules_install install
done

on tip/tip.git but none of them built the oops kernel.

I also confirmed that the command line which triggers this oops is

mount -n -o ro,remount sysfs /sys

in /etc/init.d/halt script in CentOS 6.5.
Manually executing the command line from login shell triggers this oops.

I don't know why but commit 59a3d4c363 revealed a refcount bug
in sysfs (or maybe in vfs)?

---------- quote from /etc/init.d/halt start ----------
# Remount read only anything that's left mounted.
# echo $"Remounting remaining filesystems readonly"
mount | awk '{ print $1,$3 }' | while read dev dir; do
fstab-decode mount -n -o ro,remount $dev $dir
done
---------- quote from /etc/init.d/halt end ----------
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/