From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: ncunningham@cyclades.com, Daniel Phillips <phillips@arcor.de>,
Linux Kernel Mailing List <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>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [RFC][patch 0/2] mm: remove PageReserved
Date: Tue, 9 Aug 2005 20:40:17 +0100 [thread overview]
Message-ID: <20050809204016.A29945@flint.arm.linux.org.uk> (raw)
In-Reply-To: <42F8777A.2090609@yahoo.com.au>; from nickpiggin@yahoo.com.au on Tue, Aug 09, 2005 at 07:29:30PM +1000
On Tue, Aug 09, 2005 at 07:29:30PM +1000, Nick Piggin wrote:
> Russell King wrote:
> > The usage of "valid ram" here is confusing - that's not what PageReserved
> > is all about. It's about valid RAM which is managed by method other
> > than the usual page counting. Non-reserved RAM is also valid RAM, but
> > is managed by the kernel in the usual way.
>
> Well that is one usage of the PageReserved flag. That one tends
> to be easily covered by VM_RESERVED (ie. it is no longer used that
> way after the patches).
>
> The remaining problem is, in fact, these "other" uses of PageReserved.
> One usage definitely appears to be "is this page valid RAM?".
Hmm, that sounds like an architecture specific extension above the
basic requirements.
> > The former is available for remap_pfn_range and ioremap, the latter is
> > not.
>
> I thought ioremap was attempting to avoid remapping physical
> RAM with that check. All drivers I have looked at which allocate
> physical memory then SetPageReserved the pages use remap_pfn_range
> but I admit that's not a huge number (that I have looked at).
They do this because:
1. they want to control when this RAM is freed.
2. remap_pfn_range refuses to map RAM that isn't marked reserved.
To put it another way, they fiddle with the reserved bit because
that's what the current interfaces forces upon them. I would
dearly like that to go away though.
> > On the other hand, the validity of an apparant RAM address can only be
> > tested using its pfn with pfn_valid().
>
> I'm fairly sure that's not the case on i386 at least. I think
> pfn_valid will be true if the pfn points to a struct page.
> See arch/i386/mm/init.c:one_highpage_init()
This sounds like i386 is doing something which is a superset of the
base requirements, which is an architecture specific extension. No
problem with that, but that's i386 folk's problem. 8)
Ok, but I still disagree with replacing something called reserved
with something which leads one to believe that it's intended for
checking whether a struct page is "valid" RAM or not when there's
other interfaces which are supposed to be used for that.
I wonder if we can optimise out the useless "valid" RAM checks
on architectures which don't require this insanity...
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
WARNING: multiple messages have this Message-ID (diff)
From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: ncunningham@cyclades.com, Daniel Phillips <phillips@arcor.de>,
Linux Kernel Mailing List <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>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [RFC][patch 0/2] mm: remove PageReserved
Date: Tue, 9 Aug 2005 20:40:17 +0100 [thread overview]
Message-ID: <20050809204016.A29945@flint.arm.linux.org.uk> (raw)
In-Reply-To: <42F8777A.2090609@yahoo.com.au>; from nickpiggin@yahoo.com.au on Tue, Aug 09, 2005 at 07:29:30PM +1000
On Tue, Aug 09, 2005 at 07:29:30PM +1000, Nick Piggin wrote:
> Russell King wrote:
> > The usage of "valid ram" here is confusing - that's not what PageReserved
> > is all about. It's about valid RAM which is managed by method other
> > than the usual page counting. Non-reserved RAM is also valid RAM, but
> > is managed by the kernel in the usual way.
>
> Well that is one usage of the PageReserved flag. That one tends
> to be easily covered by VM_RESERVED (ie. it is no longer used that
> way after the patches).
>
> The remaining problem is, in fact, these "other" uses of PageReserved.
> One usage definitely appears to be "is this page valid RAM?".
Hmm, that sounds like an architecture specific extension above the
basic requirements.
> > The former is available for remap_pfn_range and ioremap, the latter is
> > not.
>
> I thought ioremap was attempting to avoid remapping physical
> RAM with that check. All drivers I have looked at which allocate
> physical memory then SetPageReserved the pages use remap_pfn_range
> but I admit that's not a huge number (that I have looked at).
They do this because:
1. they want to control when this RAM is freed.
2. remap_pfn_range refuses to map RAM that isn't marked reserved.
To put it another way, they fiddle with the reserved bit because
that's what the current interfaces forces upon them. I would
dearly like that to go away though.
> > On the other hand, the validity of an apparant RAM address can only be
> > tested using its pfn with pfn_valid().
>
> I'm fairly sure that's not the case on i386 at least. I think
> pfn_valid will be true if the pfn points to a struct page.
> See arch/i386/mm/init.c:one_highpage_init()
This sounds like i386 is doing something which is a superset of the
base requirements, which is an architecture specific extension. No
problem with that, but that's i386 folk's problem. 8)
Ok, but I still disagree with replacing something called reserved
with something which leads one to believe that it's intended for
checking whether a struct page is "valid" RAM or not when there's
other interfaces which are supposed to be used for that.
I wonder if we can optimise out the useless "valid" RAM checks
on architectures which don't require this insanity...
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
--
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 19:40 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
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 [this message]
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=20050809204016.A29945@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--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=ncunningham@cyclades.com \
--cc=nickpiggin@yahoo.com.au \
--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.