From: Nick Piggin <piggin@cyberone.com.au>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Linus Torvalds <torvalds@osdl.org>, Andi Kleen <ak@suse.de>,
Rohit Seth <rohitseth@google.com>, Andrew Morton <akpm@osdl.org>,
clameter@sgi.com, mbligh@google.com, hugh@veritas.com,
riel@redhat.com, andrea@suse.de, arjan@infradead.org,
apw@shadowen.org, mel@csn.ul.ie, marcelo@kvack.org,
anton@samba.org, paulmck@us.ibm.com,
linux-mm <linux-mm@kvack.org>
Subject: Re: [RFC][PATCH] tracking dirty pages in shared mappings
Date: Sat, 06 May 2006 23:47:51 +1000 [thread overview]
Message-ID: <445CA907.9060002@cyberone.com.au> (raw)
In-Reply-To: <1146922446.3561.20.camel@lappy>
Peter Zijlstra wrote:
>On Sat, 2006-05-06 at 23:18 +1000, Nick Piggin wrote:
>
>
>>Looks pretty good. Christoph and I were looking at ways to improve
>>performance impact of this, and skipping the extra work for particular
>>(eg. shmem) mappings might be a good idea?
>>
>>Attached is a patch with a couple of things I've currently got.
>>
>
>will merge with mine and post a new version shortly.
>
Thanks.
>>In the long run, I'd like to be able to set_page_dirty and
>>balance_dirty_pages outside of both ptl and mmap_sem, for performance
>>reasons. That will require a reworking of arch code though :(
>>
>
>That would indeed be very nice if possible.
>
Yep. Let's not distract from getting the basic mechanism working though.
balance_dirty_pages would be patch 2..n ;)
>>Index: linux-2.6/include/linux/mm.h
>>===================================================================
>>--- linux-2.6.orig/include/linux/mm.h 2006-05-06 23:05:10.000000000 +1000
>>+++ linux-2.6/include/linux/mm.h 2006-05-06 23:06:17.000000000 +1000
>>@@ -183,8 +183,7 @@ extern unsigned int kobjsize(const void
>> #define VM_SequentialReadHint(v) ((v)->vm_flags & VM_SEQ_READ)
>> #define VM_RandomReadHint(v) ((v)->vm_flags & VM_RAND_READ)
>>
>>-#define VM_SharedWritable(v) (((v)->vm_flags & (VM_SHARED | VM_MAYSHARE)) && \
>>- ((v)->vm_flags & VM_WRITE))
>>+#define VM_SharedWritable(v) ((v)->vm_flags & (VM_SHARED|VM_WRITE))
>>
>> /*
>> * mapping from the currently active vm_flags protection bits (the
>>
>
>That doesn't look right, your version is true even for unwritable
>shared, and writable non-shared VMAs.
>
Of course, thanks. I guess that should be
#define VM_SharedWritable(v) ((v)->vm_flags & (VM_SHARED|VM_WRITE) == (VM_SHARED|VM_WRITE))
BTW. It is unconventional (outside the read hints stuff) to use macros like
this. I guess real VM hackers have to know what is intended by any given esoteric
combination of flags in any given context.
Not that I hate it.
But if we're going to start using it, we should work out a sane convention and
stick to it. "StudlyCaps" seem to be out of favour, and using a vma_ prefix would
be more sensible.
--
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-05-06 13:47 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-05 20:35 [RFC][PATCH] tracking dirty pages in shared mappings Peter Zijlstra
2006-05-06 13:18 ` Nick Piggin
2006-05-06 13:34 ` Peter Zijlstra
2006-05-06 13:47 ` Nick Piggin [this message]
2006-05-06 15:29 ` Peter Zijlstra
2006-05-07 0:40 ` Nick Piggin
2006-05-07 3:43 ` Nick Piggin
2006-05-08 6:43 ` Christoph Lameter
2006-05-08 7:23 ` Peter Zijlstra
2006-05-08 19:20 ` [RFC][PATCH 1/2] tracking dirty pages in shared mappings -V3 Peter Zijlstra
2006-05-09 5:41 ` Christoph Lameter
2006-05-09 6:06 ` Peter Zijlstra
2006-05-09 20:44 ` [RFC][PATCH 1/3] tracking dirty pages in shared mappings -V4 Peter Zijlstra
2006-05-09 20:52 ` Peter Chubb
2006-05-09 20:55 ` Martin Bligh
2006-05-09 22:56 ` Brian Twichell
2006-05-10 0:24 ` Linus Torvalds
2006-05-10 0:29 ` Nick Piggin
2006-05-10 1:24 ` Linus Torvalds
2006-05-11 15:02 ` Andrew Morton
2006-05-11 16:39 ` Andy Whitcroft
2006-05-11 22:52 ` Christoph Lameter
2006-05-11 23:30 ` Linus Torvalds
2006-05-11 23:44 ` Andrew Morton
2006-05-12 0:10 ` Linus Torvalds
2006-05-12 8:07 ` Andy Whitcroft
2006-05-12 14:25 ` Martin J. Bligh
2006-05-14 15:58 ` Andy Whitcroft
2006-05-12 1:51 ` Nick Piggin
2006-05-12 4:30 ` Andrew Morton
2006-05-12 5:05 ` Nick Piggin
2006-05-12 7:06 ` Peter Zijlstra
2006-05-12 8:04 ` Nick Piggin
2006-05-12 8:52 ` Peter Zijlstra
2006-05-12 8:07 ` Nick Piggin
2006-05-12 4:51 ` Christoph Lameter
2006-05-09 20:44 ` [RFC][PATCH 2/3] throttle writers of shared mappings Peter Zijlstra
2006-05-09 22:54 ` Nick Piggin
2006-05-09 22:55 ` Nick Piggin
2006-05-10 6:25 ` Peter Zijlstra
2006-05-09 20:44 ` [RFC][PATCH 3/3] optimize follow_pages() Peter Zijlstra
2006-05-10 6:30 ` Peter Zijlstra
2006-05-08 19:24 ` [RFC][PATCH 2/2] throttle writers of shared mappings Peter Zijlstra
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=445CA907.9060002@cyberone.com.au \
--to=piggin@cyberone.com.au \
--cc=a.p.zijlstra@chello.nl \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=andrea@suse.de \
--cc=anton@samba.org \
--cc=apw@shadowen.org \
--cc=arjan@infradead.org \
--cc=clameter@sgi.com \
--cc=hugh@veritas.com \
--cc=linux-mm@kvack.org \
--cc=marcelo@kvack.org \
--cc=mbligh@google.com \
--cc=mel@csn.ul.ie \
--cc=paulmck@us.ibm.com \
--cc=riel@redhat.com \
--cc=rohitseth@google.com \
--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 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.