Re: [RFC][PATCH] radix_tree: radix_tree_gang_lookup_tag_slot maynot return forever.
From: Toshiyuki Okajima
Date: Tue Jan 25 2011 - 00:45:24 EST
Hi Andrew,
On Fri, 21 Jan 2011 15:31:54 -0800
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 21 Jan 2011 15:34:31 +0900
> Toshiyuki Okajima <toshi.okajima@xxxxxxxxxxxxxx> wrote:
>
> > Hi.
> >
> > I executed fsstress and then found that the system hung up.
> > At that time, I took the crash dump. Here is the backtrace of the process
> > which causes this hangup.
> >
> > [long description]
> >
> > --- a/lib/radix-tree.c
> > +++ b/lib/radix-tree.c
> > @@ -736,10 +736,11 @@ next:
> > }
> > }
> > /*
> > - * The iftag must have been set somewhere because otherwise
> > - * we would return immediated at the beginning of the function
> > + * We need not to tag the root tag if there is no tag which is set with
> > + * settag within the range from *first_indexp to last_index.
> > */
> > - root_tag_set(root, settag);
> > + if (tagged > 0)
> > + root_tag_set(root, settag);
> > *first_indexp = index;
> >
> > return tagged;
>
> Thanks.
>
> It should be fairly simple to reproduce this hang with the userspace
> test harness (http://userweb.kernel.org/~akpm/stuff/rtth.tar.gz) and to
> then demonstrate that the fix fixes it.
>
> If you have time, could you please do that and then send the rtth
> updates to me?
>
I add regression2_test for this bug into your testset (rtth.tar.gz).
This is originated from regression1_test.
Regards,
Toshiyuki Okajima
Attachment:
rtth.patch
Description: Binary data