From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Daniel Phillips <phillips@arcor.de>,
linux-kernel <linux-kernel@vger.kernel.org>,
Linux Memory Management <linux-mm@kvack.org>,
Hugh Dickins <hugh@veritas.com>,
Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
Andrea Arcangeli <andrea@suse.de>
Subject: Re: [RFC][patch 0/2] mm: remove PageReserved
Date: Tue, 09 Aug 2005 19:49:24 +1000 [thread overview]
Message-ID: <42F87C24.4080000@yahoo.com.au> (raw)
In-Reply-To: <1123577509.30257.173.camel@gaston>
Benjamin Herrenschmidt wrote:
>
> I have no problem keeping PG_reserved for that, and _ONLY_ for that.
> (though i'd rather see it renamed then). I'm just afraid by doing so,
> some drivers will jump in the gap and abuse it again...
Sure it would be renamed (better yet may be a slower page_is_valid()
that doesn't need to use a flag).
There is always the possibility for driver abuse, I guess... however
as it is now, the tree is basically past the critical mass of self
perpetuation (ie. cut-n-paste). So getting rid of that should certianly
help get things cleaner.
> Also, we should
> make sure we kill the "trick" of refcounting only in one direction.
> Either we refcount both (but do nothing, or maybe just BUG_ON if the
> page is "reserved" -> not valid RAM), or we don't refcount at all.
>
Yep, that's done. Actually having a BUG_ON PageReserved in the refcount
functions isn't a bad idea for the initial merge, and should help allay
my fears that I might have introduced refcount leaks on PageReserved
pages.
> For things like Cell, We'll really end up needing struct page covering
> the SPUs for example. That is not valid RAM, shouldn't be refcounted,
> but we need to be able to have nopage() returning these etc...
>
In that case, remap_pfn_range should take care of it for you by
setting the VM_RESERVED flag on the vma.
Swsusp is the main "is valid ram" user I have in mind here. It
wants to know whether or not it should save and restore the
memory of a given `struct page`.
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Daniel Phillips <phillips@arcor.de>,
linux-kernel <linux-kernel@vger.kernel.org>,
Linux Memory Management <linux-mm@kvack.org>,
Hugh Dickins <hugh@veritas.com>,
Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
Andrea Arcangeli <andrea@suse.de>
Subject: Re: [RFC][patch 0/2] mm: remove PageReserved
Date: Tue, 09 Aug 2005 19:49:24 +1000 [thread overview]
Message-ID: <42F87C24.4080000@yahoo.com.au> (raw)
In-Reply-To: <1123577509.30257.173.camel@gaston>
Benjamin Herrenschmidt wrote:
>
> I have no problem keeping PG_reserved for that, and _ONLY_ for that.
> (though i'd rather see it renamed then). I'm just afraid by doing so,
> some drivers will jump in the gap and abuse it again...
Sure it would be renamed (better yet may be a slower page_is_valid()
that doesn't need to use a flag).
There is always the possibility for driver abuse, I guess... however
as it is now, the tree is basically past the critical mass of self
perpetuation (ie. cut-n-paste). So getting rid of that should certianly
help get things cleaner.
> Also, we should
> make sure we kill the "trick" of refcounting only in one direction.
> Either we refcount both (but do nothing, or maybe just BUG_ON if the
> page is "reserved" -> not valid RAM), or we don't refcount at all.
>
Yep, that's done. Actually having a BUG_ON PageReserved in the refcount
functions isn't a bad idea for the initial merge, and should help allay
my fears that I might have introduced refcount leaks on PageReserved
pages.
> For things like Cell, We'll really end up needing struct page covering
> the SPUs for example. That is not valid RAM, shouldn't be refcounted,
> but we need to be able to have nopage() returning these etc...
>
In that case, remap_pfn_range should take care of it for you by
setting the VM_RESERVED flag on the vma.
Swsusp is the main "is valid ram" user I have in mind here. It
wants to know whether or not it should save and restore the
memory of a given `struct page`.
--
SUSE Labs, Novell Inc.
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:[~2005-08-09 9:49 UTC|newest]
Thread overview: 180+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-07 3:28 [RFC][patch 0/2] mm: remove PageReserved Nick Piggin
2005-08-07 3:28 ` Nick Piggin
2005-08-07 3:29 ` [patch 1/2] mm: remap ZERO_PAGE mappings Nick Piggin
2005-08-07 3:30 ` [patch 2/2] mm: core remove PageReserved Nick Piggin
2005-08-08 21:09 ` [RFC][patch 0/2] mm: " Daniel Phillips
2005-08-08 21:09 ` Daniel Phillips
2005-08-08 21:24 ` Daniel Phillips
2005-08-08 21:24 ` Daniel Phillips
2005-08-08 21:54 ` Andrew Morton
2005-08-08 21:54 ` Andrew Morton
2005-08-09 23:23 ` [RFC][PATCH] Rename PageChecked as PageMiscFS Daniel Phillips
2005-08-09 23:23 ` Daniel Phillips
2005-08-10 7:48 ` Hugh Dickins
2005-08-10 7:48 ` Hugh Dickins
2005-08-10 8:06 ` Daniel Phillips
2005-08-10 8:06 ` Daniel Phillips
2005-08-10 13:13 ` [RFC][patch 0/2] mm: remove PageReserved David Howells
2005-08-10 13:13 ` David Howells
2005-08-10 13:34 ` Daniel Phillips
2005-08-10 13:34 ` Daniel Phillips
2005-08-10 14:27 ` David Howells
2005-08-10 14:27 ` David Howells
2005-08-10 23:19 ` Daniel Phillips
2005-08-10 23:19 ` Daniel Phillips
2005-08-11 10:49 ` David Howells
2005-08-11 10:49 ` David Howells
2005-08-12 19:34 ` Daniel Phillips
2005-08-12 19:34 ` Daniel Phillips
2005-08-15 13:15 ` David Howells
2005-08-15 13:15 ` David Howells
2005-08-16 1:53 ` Daniel Phillips
2005-08-16 1:53 ` Daniel Phillips
2005-08-16 10:28 ` David Howells
2005-08-16 10:28 ` David Howells
2005-08-10 22:12 ` [RFC][PATCH] Rename PageChecked as PageMiscFS Daniel Phillips
2005-08-10 22:12 ` Daniel Phillips
2005-08-10 22:23 ` Daniel Phillips
2005-08-10 22:23 ` Daniel Phillips
2005-08-10 22:34 ` Trond Myklebust
2005-08-10 22:34 ` Trond Myklebust
2005-08-10 22:57 ` Daniel Phillips
2005-08-10 22:57 ` Daniel Phillips
2005-08-10 23:23 ` Trond Myklebust
2005-08-10 23:23 ` Trond Myklebust
2005-08-11 9:42 ` David Howells
2005-08-11 9:42 ` David Howells
2005-08-10 23:42 ` Adrian Bunk
2005-08-10 23:42 ` Adrian Bunk
2005-08-11 9:46 ` David Howells
2005-08-11 9:46 ` David Howells
2005-08-12 2:34 ` Daniel Phillips
2005-08-12 2:34 ` Daniel Phillips
2005-08-12 12:32 ` David Howells
2005-08-11 9:31 ` David Howells
2005-08-11 9:31 ` David Howells
2005-08-11 9:26 ` David Howells
2005-08-11 9:26 ` David Howells
2005-08-12 3:29 ` Daniel Phillips
2005-08-12 3:29 ` Daniel Phillips
2005-08-12 12:41 ` David Howells
2005-08-12 12:41 ` David Howells
2005-08-12 13:28 ` Hugh Dickins
2005-08-12 13:28 ` Hugh Dickins
2005-08-16 13:59 ` Pavel Machek
2005-08-16 13:59 ` Pavel Machek
2005-08-18 14:33 ` David Howells
2005-08-18 14:33 ` David Howells
2005-08-18 22:27 ` Pavel Machek
2005-08-18 22:27 ` Pavel Machek
2005-08-19 10:04 ` David Howells
2005-08-19 10:04 ` David Howells
2005-08-19 16:31 ` Daniel Phillips
2005-08-19 16:31 ` Daniel Phillips
2005-08-20 10:45 ` David Howells
2005-08-20 10:45 ` David Howells
2005-08-20 20:21 ` Daniel Phillips
2005-08-20 20:21 ` Daniel Phillips
2005-08-09 0:15 ` [RFC][patch 0/2] mm: remove PageReserved Nick Piggin
2005-08-09 0:15 ` Nick Piggin
2005-08-09 8:51 ` Benjamin Herrenschmidt
2005-08-09 8:51 ` Benjamin Herrenschmidt
2005-08-09 9:49 ` Nick Piggin [this message]
2005-08-09 9:49 ` Nick Piggin
2005-08-09 19:19 ` Daniel Phillips
2005-08-09 19:19 ` Daniel Phillips
2005-08-09 19:22 ` Daniel Phillips
2005-08-09 19:22 ` Daniel Phillips
2005-08-10 21:50 ` Pavel Machek
2005-08-10 21:50 ` Pavel Machek
2005-08-10 21:56 ` Martin J. Bligh
2005-08-10 21:56 ` Martin J. Bligh
2005-08-11 10:36 ` Rafael J. Wysocki
2005-08-11 10:36 ` Rafael J. Wysocki
2005-08-12 19:56 ` Daniel Phillips
2005-08-12 19:56 ` Daniel Phillips
2005-08-12 22:20 ` Rafael J. Wysocki
2005-08-12 22:20 ` Rafael J. Wysocki
2005-08-12 23:04 ` Daniel Phillips
2005-08-12 23:04 ` Daniel Phillips
2005-08-13 7:06 ` Rafael J. Wysocki
2005-08-13 7:06 ` Rafael J. Wysocki
2005-08-11 10:26 ` Rafael J. Wysocki
2005-08-11 10:26 ` Rafael J. Wysocki
2005-08-09 11:25 ` Hugh Dickins
2005-08-09 11:25 ` Hugh Dickins
2005-08-09 14:31 ` Benjamin Herrenschmidt
2005-08-09 14:31 ` Benjamin Herrenschmidt
2005-08-09 14:50 ` Hugh Dickins
2005-08-09 14:50 ` Hugh Dickins
2005-08-09 14:49 ` Benjamin Herrenschmidt
2005-08-09 14:49 ` Benjamin Herrenschmidt
2005-08-09 15:36 ` Hugh Dickins
2005-08-09 15:36 ` Hugh Dickins
2005-08-09 21:27 ` Daniel Phillips
2005-08-09 21:27 ` Daniel Phillips
2005-08-09 19:14 ` Daniel Phillips
2005-08-09 19:14 ` Daniel Phillips
2005-08-09 20:17 ` Hugh Dickins
2005-08-09 20:17 ` Hugh Dickins
2005-08-09 20:52 ` Daniel Phillips
2005-08-09 20:52 ` Daniel Phillips
2005-08-09 4:39 ` Nigel Cunningham
2005-08-09 4:39 ` Nigel Cunningham
2005-08-09 4:59 ` Nick Piggin
2005-08-09 4:59 ` Nick Piggin
2005-08-09 5:11 ` Nigel Cunningham
2005-08-09 5:11 ` Nigel Cunningham
2005-08-09 5:20 ` Nick Piggin
2005-08-09 5:20 ` Nick Piggin
2005-08-09 5:30 ` Nigel Cunningham
2005-08-09 5:30 ` Nigel Cunningham
2005-08-09 7:08 ` Russell King
2005-08-09 7:08 ` Russell King
2005-08-09 8:38 ` Arjan van de Ven
2005-08-09 8:38 ` Arjan van de Ven
2005-08-09 9:31 ` Nick Piggin
2005-08-09 9:31 ` Nick Piggin
2005-08-09 9:49 ` Arjan van de Ven
2005-08-09 9:49 ` Arjan van de Ven
2005-08-09 9:57 ` Nick Piggin
2005-08-09 9:57 ` Nick Piggin
2005-08-09 10:24 ` Rafael J. Wysocki
2005-08-09 10:24 ` Rafael J. Wysocki
2005-08-09 8:53 ` Benjamin Herrenschmidt
2005-08-09 8:53 ` Benjamin Herrenschmidt
2005-08-09 9:15 ` Hugh Dickins
2005-08-09 9:15 ` Hugh Dickins
2005-08-09 10:27 ` Nick Piggin
2005-08-09 10:27 ` Nick Piggin
2005-08-09 11:15 ` Hugh Dickins
2005-08-09 11:15 ` Hugh Dickins
2005-08-09 13:15 ` Nick Piggin
2005-08-09 13:15 ` Nick Piggin
2005-08-09 13:26 ` Arjan van de Ven
2005-08-09 13:26 ` Arjan van de Ven
2005-08-09 14:28 ` Benjamin Herrenschmidt
2005-08-09 14:28 ` Benjamin Herrenschmidt
2005-08-09 14:47 ` Hugh Dickins
2005-08-09 14:47 ` Hugh Dickins
2005-08-09 19:49 ` Roman Zippel
2005-08-09 19:49 ` Roman Zippel
2005-08-09 9:29 ` Nick Piggin
2005-08-09 9:29 ` Nick Piggin
2005-08-09 19:40 ` Russell King
2005-08-09 19:40 ` Russell King
2005-08-09 14:38 ` Martin J. Bligh
2005-08-09 14:38 ` Martin J. Bligh
2005-08-09 19:41 ` Russell King
2005-08-09 19:41 ` Russell King
2005-08-09 20:51 ` Linus Torvalds
2005-08-09 20:51 ` Linus Torvalds
2005-08-09 21:16 ` Martin J. Bligh
2005-08-09 21:16 ` Martin J. Bligh
2005-08-09 21:51 ` Martin J. Bligh
2005-08-09 21:51 ` Martin J. Bligh
2005-08-10 9:27 ` Benjamin Herrenschmidt
2005-08-10 9:27 ` Benjamin Herrenschmidt
2005-08-11 9:09 ` Nick Piggin
2005-08-11 9:09 ` Nick Piggin
2005-08-09 22:14 ` Daniel Phillips
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=42F87C24.4080000@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@osdl.org \
--cc=andrea@suse.de \
--cc=benh@kernel.crashing.org \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=phillips@arcor.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 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.