linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Nick Piggin <npiggin@suse.de>
Cc: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	Greg KH <gregkh@suse.de>
Subject: Re: [patch] mm: bug in set_page_dirty_buffers
Date: Tue, 10 Oct 2006 09:11:03 +0200	[thread overview]
Message-ID: <1160464263.27479.13.camel@taijtu> (raw)
In-Reply-To: <20061010065927.GA14557@wotan.suse.de>

On Tue, 2006-10-10 at 08:59 +0200, Nick Piggin wrote:
> On Tue, Oct 10, 2006 at 08:48:56AM +0200, Peter Zijlstra wrote:
> > On Tue, 2006-10-10 at 07:22 +0200, Nick Piggin wrote:
> > > 
> > > I disagree because it will lead to horrible hacks because many callers
> > > can't sleep. If anything I would much prefer an innermost-spinlock in
> > > page->flags that specifically excludes truncate. Actually tree_lock can
> > > do that now, provided we pin mapping in all callers to set_page_dirty
> > > (which we should do).
> > 
> > Yeah, but we're hard working to eradicate tree lock; I have ran into
> 
> Well yeah, but until then the tree_lock works.

True, and your latest patch looks nice, will have to go over it in more
than a cursory glance though.

> > this problem before; that is, zap_pte_range and co. not being able to
> > lock the page. I'd really like to see that fixed.
> 
> What's your problem with zap_pte_range?

well, not only zap_pte_range, also page_remove_rmap and
try_to_unmap_cluster etc.. Basically all those who fiddle with the page
without holding the page lock.

Because with concurrent pagecache, there is no tree lock anymore to
protect/pin the whole mapping, I need to go pin individual pages.
Perhaps having an inner page bit-spinlock (PG_pin) isn't a bad thing,
I'd just raised the issue to see if it would be doable/a-good-thing to
try and merge these two.

> > In my current concurrent pagecache patches I've abused your PG_nonewrefs
> > and made it this page internal (bit)spinlock, but it just doesn't look
> > nice to have both this lock and PG_locked.
> 
> Regardless of whether or not they spin, PG_locked is an outermost, and
> set_page_dirty is called innermost. 

Yes, indeed, and changing it is going to be hard and painful, hence I'll
stick with PG_pin for now.

> I don't see why we'd particularly
> want to mush them together now, just because we're worried a filesystem
> writer wrote buggy code.
> 
> It is all well and good to tell me I'm wrong unless I audit all
> filesystems, but the fact is that I'm not a filesystem expert, and if
> this is what it has come to then either the process has failed, or
> we have a large number of filesystems to cull from the tree as
> unmaintained.

With you on that, no/little filesystems knowledge here either.

--
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>

  reply	other threads:[~2006-10-10  7:11 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-10  2:36 Nick Piggin
2006-10-10  3:06 ` Linus Torvalds
2006-10-10  3:19   ` Nick Piggin
2006-10-10  3:20   ` Andrew Morton
2006-10-10  3:34     ` Nick Piggin
2006-10-10  3:50       ` Andrew Morton
2006-10-10  3:58         ` Nick Piggin
2006-10-10  4:14           ` Andrew Morton
2006-10-10  4:21             ` Nick Piggin
2006-10-10  4:38               ` Andrew Morton
2006-10-10  4:47                 ` Nick Piggin
2006-10-10  5:01                   ` Andrew Morton
2006-10-10  5:22                     ` Nick Piggin
2006-10-10  5:29                       ` Andrew Morton
2006-10-10  5:48                         ` Nick Piggin
2006-10-10  6:08                           ` Andrew Morton
2006-10-10  6:19                             ` Nick Piggin
2006-10-10  6:27                               ` Andrew Morton
2006-10-10  6:39                                 ` Nick Piggin
2006-10-10  6:52                                   ` Nick Piggin
2006-10-10  7:06                                     ` Andrew Morton
2006-10-10  7:21                                       ` Nick Piggin
2006-10-10  8:07                                         ` Andrew Morton
2006-10-10  8:18                                           ` Nick Piggin
2006-10-10  8:41                                             ` Andrew Morton
2006-10-10  8:49                                               ` Nick Piggin
2006-10-10  9:07                                                 ` Andrew Morton
2006-10-10  9:23                                                   ` Nick Piggin
2006-10-10  6:48                       ` Peter Zijlstra
2006-10-10  6:59                         ` Nick Piggin
2006-10-10  7:11                           ` Peter Zijlstra [this message]
2006-10-10  7:30                             ` Nick Piggin
2006-10-10  4:11         ` Nick Piggin
2006-10-10  3:37     ` Andrew Morton
2006-10-10  3:42       ` Nick Piggin
2006-10-10  7:42 ` patch mm-bug-in-set_page_dirty_buffers.patch queued to -stable tree gregkh

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=1160464263.27479.13.camel@taijtu \
    --to=a.p.zijlstra@chello.nl \
    --cc=akpm@osdl.org \
    --cc=gregkh@suse.de \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    --cc=torvalds@osdl.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