From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: Hans de Bruin <jmdebruin@xmsnet.nl>
Cc: Linux NFS mailing list <linux-nfs@vger.kernel.org>
Subject: Re: nfsroot client will not start firefox or thunderbird from 3.4.0 nfsserver
Date: Mon, 04 Jun 2012 14:31:09 +0400 [thread overview]
Message-ID: <4FCC8E6D.9020106@openvz.org> (raw)
In-Reply-To: <4FCB7C11.7070300@xmsnet.nl>
[-- Attachment #1: Type: text/plain, Size: 1778 bytes --]
Hans de Bruin wrote:
> On 06/01/2012 09:11 PM, Hans de Bruin wrote:
>> On 05/29/2012 12:19 AM, Hans de Bruin wrote:
>>> I just upgraded my home server from kernel 3.3.5 to 3.4.0 and ran into
>>> some trouble. My laptop, a nfsroot client, will not run firefox and
>>> thunderbird anymore. When I start these programs from an xterm, the
>>> cursor goes to the next line and waits indefinitely.
>>>
>>> I do not know if there is any order is lsof's output. A lsof | grep
>>> firefox or thunderbird shows ......./.parentlock as the last line.
>>>
>>> It does not matter whether the client is running a 3.4.0 or a 3.3.0
>>> kernel, or if the server is running on top of xen or not.
>>>
>>> There is some noise in the servers dmesg:
>>>
>>> [ 241.256684] INFO: task kworker/u:2:801 blocked for more than 120
>>> seconds.
>>> [ 241.256691] "echo 0> /proc/sys/kernel/hung_task_timeout_secs"
>>
>> ...
>>
>> On a almost identical testsystem firefox en thunderbird segfault after
>> upgrading to 3.4.0. I would have been nice if it would behave exaclty
>> like my home server. I bisected the segfault to:
>>
>> commit 0fc9d1040313047edf6a39fd4d7c7defdca97c62
>> Author: Konstantin Khlebnikov<khlebnikov@openvz.org>
>> Date: Wed Mar 28 14:42:54 2012 -0700
>>
>> radix-tree: use iterators in find_get_pages* functions
>>
>>
>> When I revert that on top of 3.4.0 the segfaults are gone but both
>> firefox en thunderbird go in the lets wait indefinitely mode like the
>> homeserver.
>>
>> I am going to make a bit-wise copy from from my homeserver to my
>> testserver and try again.
>>
>
> The bit-wise copy also segfaults firefox and thunderbird at the same
> commit.
>
I think bug somewhere in NFS, that patch only highlighted it.
Please, try to run it with debug patch from attachment.
[-- Attachment #2: mm-debug-fing_get_pages-speculative-restart --]
[-- Type: text/plain, Size: 1793 bytes --]
mm: debug fing_get_pages speculative restart
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
---
mm/filemap.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mm/filemap.c b/mm/filemap.c
index a4a5260..a8cffef 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -815,6 +815,7 @@ unsigned find_get_pages(struct address_space *mapping, pgoff_t start,
struct radix_tree_iter iter;
void **slot;
unsigned ret = 0;
+ int nr_found = 0;
if (unlikely(!nr_pages))
return 0;
@@ -846,6 +847,7 @@ repeat:
continue;
}
+ nr_found++;
if (!page_cache_get_speculative(page))
goto repeat;
@@ -861,6 +863,7 @@ repeat:
}
rcu_read_unlock();
+ WARN_ON(!ret && nr_found);
return ret;
}
@@ -882,6 +885,7 @@ unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index,
struct radix_tree_iter iter;
void **slot;
unsigned int ret = 0;
+ int nr_found = 0;
if (unlikely(!nr_pages))
return 0;
@@ -913,6 +917,7 @@ repeat:
break;
}
+ nr_found++;
if (!page_cache_get_speculative(page))
goto repeat;
@@ -937,6 +942,7 @@ repeat:
break;
}
rcu_read_unlock();
+ WARN_ON(!ret && nr_found);
return ret;
}
EXPORT_SYMBOL(find_get_pages_contig);
@@ -958,6 +964,7 @@ unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index,
struct radix_tree_iter iter;
void **slot;
unsigned ret = 0;
+ int nr_found = 0;
if (unlikely(!nr_pages))
return 0;
@@ -988,6 +995,7 @@ repeat:
BUG();
}
+ nr_found++;
if (!page_cache_get_speculative(page))
goto repeat;
@@ -1007,6 +1015,7 @@ repeat:
if (ret)
*index = pages[ret - 1]->index + 1;
+ WARN_ON(!ret && nr_found);
return ret;
}
EXPORT_SYMBOL(find_get_pages_tag);
next prev parent reply other threads:[~2012-06-04 10:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-28 22:19 nfsroot client will not start firefox or thunderbird from 3.4.0 nfsserver Hans de Bruin
2012-06-01 19:11 ` Hans de Bruin
2012-06-03 15:00 ` Hans de Bruin
2012-06-04 10:31 ` Konstantin Khlebnikov [this message]
2012-06-04 20:13 ` Hans de Bruin
2012-06-08 20:51 ` Hans de Bruin
2012-06-10 9:52 ` Jeff Layton
2012-06-10 13:56 ` Hans de Bruin
2012-06-11 10:22 ` Jeff Layton
2012-06-11 11:11 ` Jeff Layton
2012-06-13 18:18 ` Hans de Bruin
2012-06-14 1:37 ` Jeff Layton
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=4FCC8E6D.9020106@openvz.org \
--to=khlebnikov@openvz.org \
--cc=jmdebruin@xmsnet.nl \
--cc=linux-nfs@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).