From: Nick Piggin <nickpiggin@yahoo.com.au>
To: chuck.lever@oracle.com
Cc: Andrew Morton <akpm@osdl.org>,
Trond Myklebust <Trond.Myklebust@netapp.com>,
Steve Dickson <steved@redhat.com>,
linux-mm@kvack.org
Subject: Re: Checking page_count(page) in invalidate_complete_page
Date: Fri, 29 Sep 2006 10:37:00 +1000 [thread overview]
Message-ID: <451C6AAC.1080203@yahoo.com.au> (raw)
In-Reply-To: <451C01C8.7020104@oracle.com>
Chuck Lever wrote:
> Andrew Morton wrote:
>
>> lru_add_drain_all() is a nasty, hacky, not-exported-to-modules
>> thing. It
>> equates to lru_add_drain() if !CONFIG_NUMA.
>
It should drain on all CPUs though, I can't remember why it doesn't.
Not that I disagree that throwing IPIs around is a hack ;)
>>
>> Sigh, we're not getting there, are we?
>>
>> I'm still thinking we add invalidate_complete_page2() to get us out of
>> trouble and park the problem :(. That'd be a good approach for
>> 2.6.18.x,
>> which I assume is fairly urgent.
>
>
> Choosing which fix to include is above my pay grade. Both of these
> proposals address the NFS readdir cache invalidation problem.
>
> But it seems like there is a real problem here -- the pages that are
> waiting to be added the LRU will always have a page count that is too
> high for invalidate_inode_pages to work on them.
If you do the lru_add_drain_all, then the vmscan problem should be probably
mostly fixable by detecting failure, waiting, and retrying a few times.
After that, making an invalidate_complete_page2 ignore the page count or
dirty status would only save you from a very small number of cases, and they
would be likely to be a data loss / corruption case.
OTOH, we haven't had many complains before, so for 2.6.18, an
invalidate_complete_page2 may indeed be the best option?
--
Send instant messages to your online friends http://au.messenger.yahoo.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2006-09-29 0:37 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4518333E.2060101@oracle.com>
2006-09-25 21:10 ` Checking page_count(page) in invalidate_complete_page Andrew Morton
2006-09-25 22:30 ` Chuck Lever
2006-09-25 22:53 ` Andrew Morton
2006-09-25 22:57 ` Steve Dickson
2006-09-25 23:14 ` Nick Piggin
2006-09-25 22:40 ` Chuck Lever
2006-09-25 23:02 ` Andrew Morton
2006-09-25 22:50 ` Steve Dickson
2006-09-25 22:51 ` Nick Piggin
2006-09-25 23:14 ` Chuck Lever
2006-09-25 23:21 ` Nick Piggin
2006-09-26 0:01 ` Chuck Lever
2006-09-26 0:13 ` Nick Piggin
2006-09-26 1:33 ` Chuck Lever
2006-09-26 1:48 ` Nick Piggin
2006-09-28 16:26 ` Chuck Lever
2006-09-28 16:36 ` Andrew Morton
2006-09-28 16:40 ` Andrew Morton
2006-09-28 16:42 ` Chuck Lever
2006-09-28 17:03 ` Andrew Morton
2006-09-28 17:09 ` Chuck Lever
2006-09-29 0:37 ` Nick Piggin [this message]
2006-09-29 20:34 ` Chuck Lever
2006-09-29 20:45 ` Peter Zijlstra
2006-09-29 21:02 ` Chuck Lever
2006-09-29 21:17 ` Peter Zijlstra
2006-09-29 21:44 ` Andrew Morton
2006-09-29 21:48 ` Chuck Lever
2006-09-29 22:29 ` Andrew Morton
2006-09-29 23:05 ` Chuck Lever
2006-10-01 4:21 ` Chuck Lever
2006-10-02 12:01 ` Steve Dickson
2006-10-02 13:25 ` Trond Myklebust
2006-10-02 16:57 ` Andrew Morton
2006-10-02 17:02 ` Steve Dickson
2006-10-02 18:20 ` Andrew Morton
2006-10-02 19:02 ` Steve Dickson
2006-10-03 2:14 ` Chuck Lever
2006-10-03 4:18 ` Trond Myklebust
2006-10-03 4:24 ` Andrew Morton
2006-10-03 18:50 ` Chuck Lever
2006-10-03 19:10 ` Trond Myklebust
2006-10-03 19:21 ` Chuck Lever
2006-10-03 21:37 ` Andrew Morton
2006-10-04 19:29 ` Chuck Lever
2006-10-04 19:43 ` Andrew Morton
2006-10-04 19:53 ` Steve Dickson
2006-09-28 16:41 ` Chuck Lever
2006-09-26 6:25 ` Nick Piggin
2006-09-26 13:12 ` Chuck Lever
2006-09-27 4:47 ` Nick Piggin
2006-09-27 8:25 ` Andrew Morton
2006-09-27 8:39 ` Nick Piggin
2006-09-27 16:03 ` Andrew Morton
2006-09-27 15:54 ` Chuck Lever
2006-09-25 22:56 ` Chuck Lever
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=451C6AAC.1080203@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=Trond.Myklebust@netapp.com \
--cc=akpm@osdl.org \
--cc=chuck.lever@oracle.com \
--cc=linux-mm@kvack.org \
--cc=steved@redhat.com \
/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.