From: Maneesh Soni <maneesh@in.ibm.com>
To: Walt H <waltabbyh@comcast.net>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>
Subject: Re: 2.6.1-mm2: BUG in kswapd?
Date: Fri, 16 Jan 2004 15:10:37 +0530 [thread overview]
Message-ID: <20040116094037.GA1276@in.ibm.com> (raw)
In-Reply-To: <400762F9.5010908@comcast.net>
On Thu, Jan 15, 2004 at 08:05:13PM -0800, Walt H wrote:
> Hi Maneesh,
>
> I've had a pretty repeatible case of the BUG in list.h from attempting
> backups via rsync. This has persisted thru 2.6.1-mm3. I reverted the
> race fix patch at:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.1/2.6.1-mm3/broken-out/sysfs_remove_dir-vs-dcache_readdir-race-fix.patch
>
> Which allows my rsync to finish properly.
Hi Walt,
This patch is needed for a different race. We get hangs when we read and
remove a sysfs directory at the same time on an SMP box. It is easily
recreated by running following two loops. (Obviously without this fix)
while true; do insmod drivers/net/dummy.ko; rmmod dummy; done
while true; do find /sys/class/net > /dev/null; done
I am still not convinced that this fix will cause any problem.
The kswapd problem what I have understood so far, is happening because of a
bad d_child pointer in the dentry. As it is hitting the list_del BUG(), and the
only list_del in prune_dcache() is for d_child list pointer. I suspect dentry
from d_child list is being deleted more than once.
Can you elaborate on the recreation scenario a little bit more or if possible
run this debug patch on top of -mm3. This should print some info about the
bad dentry.
Thanks
Maneesh
fs/dcache.c | 7 +++++++
1 files changed, 7 insertions(+)
diff -puN fs/dcache.c~prune_dcache-debug fs/dcache.c
--- linux-2.6.1-mm3/fs/dcache.c~prune_dcache-debug 2004-01-16 14:36:00.000000000 +0530
+++ linux-2.6.1-mm3-maneesh/fs/dcache.c 2004-01-16 15:03:25.000000000 +0530
@@ -344,6 +344,13 @@ static inline void prune_one_dentry(stru
struct dentry * parent;
__d_drop(dentry);
+ if (dentry->d_child.next->prev != &dentry->d_child) {
+ printk("Bad dentry for %s flags %lx, %d\n", dentry->d_name.name,
+ dentry->d_vfs_flags, atomic_read(&dentry->d_count));
+ if (dentry->d_sb)
+ printk("Super block magic %lx\n", dentry->d_sb->s_magic);
+ BUG();
+ }
list_del(&dentry->d_child);
dentry_stat.nr_dentry--; /* For d_free, below */
dentry_iput(dentry);
_
--
Maneesh Soni
Linux Technology Center,
IBM Software Lab, Bangalore, India
email: maneesh@in.ibm.com
Phone: 91-80-5044999 Fax: 91-80-5268553
T/L : 9243696
next prev parent reply other threads:[~2004-01-16 9:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-26 16:03 Oops in kobject_put during rsync backup on 2.6.2-rc1-mm3 Walt H
2004-01-16 4:05 ` 2.6.1-mm2: BUG in kswapd? Walt H
2004-01-16 9:40 ` Maneesh Soni [this message]
2004-01-16 10:03 ` Maneesh Soni
2004-01-16 10:22 ` Maneesh Soni
2004-01-16 16:00 ` Walt H
[not found] ` <20040128111333.GA2990@in.ibm.com>
2004-01-28 15:53 ` 2.6.1-mm2: BUG in kswapd? / Oops in kobject_put during rsync Walt H
-- strict thread matches above, loose matches on Subject: below --
2004-01-12 4:50 2.6.1-mm2: BUG in kswapd? Walt H
2004-01-11 17:33 Jan Ischebeck
2004-01-11 22:21 ` Max Valdez
2004-01-12 12:00 ` Maneesh Soni
2004-01-12 12:40 ` Jan Ischebeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040116094037.GA1276@in.ibm.com \
--to=maneesh@in.ibm.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=waltabbyh@comcast.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.