All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
	Daniel Phillips <phillips@arcor.de>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Linux Memory Management <linux-mm@kvack.org>,
	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 16:49:11 +0200	[thread overview]
Message-ID: <1123598952.30257.213.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.61.0508091548150.13674@goblin.wat.veritas.com>

On Tue, 2005-08-09 at 15:50 +0100, Hugh Dickins wrote:
> On Tue, 9 Aug 2005, Benjamin Herrenschmidt wrote:
> > 
> > > But you don't mind if they are refcounted, do you?
> > > Just so long as they start out from 1 so never get freed.
> > 
> > Well, a refcounting bug would let them be freed and kaboom ... That's
> > why a "PG_not_your_ram_dammit" bit would be useful. It could at least
> > BUG_ON when refcount reaches 0 :)
> 
> Okay, great, let's give every struct page two refcounts,
> so if one of them goes wrong, the other one will save us.

You are abusing here :)

 - We already have a refcount
 - We have a field where putting a flag isn't that much of a problem
 - It can be difficult to get page refcounting right when dealing with
   such things, really.

In that case, we basically have an _easy_ way to trigger a useful BUG()
in the page free path when it's a page that should never be returned to
the pool.

Since the "PG_not_in_ram" or whatever we call it flag might be used by
swsusp or others, I suppose it could be useful.

However, I agree that if the end result is to have drivers just change
"PG_reserved" to "PG_not_in_ram" and still be bogus, then we might just
go all the way & drop the flag completely, only relying on the VMA
flags.

Ben.



WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
	Daniel Phillips <phillips@arcor.de>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Linux Memory Management <linux-mm@kvack.org>,
	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 16:49:11 +0200	[thread overview]
Message-ID: <1123598952.30257.213.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.61.0508091548150.13674@goblin.wat.veritas.com>

On Tue, 2005-08-09 at 15:50 +0100, Hugh Dickins wrote:
> On Tue, 9 Aug 2005, Benjamin Herrenschmidt wrote:
> > 
> > > But you don't mind if they are refcounted, do you?
> > > Just so long as they start out from 1 so never get freed.
> > 
> > Well, a refcounting bug would let them be freed and kaboom ... That's
> > why a "PG_not_your_ram_dammit" bit would be useful. It could at least
> > BUG_ON when refcount reaches 0 :)
> 
> Okay, great, let's give every struct page two refcounts,
> so if one of them goes wrong, the other one will save us.

You are abusing here :)

 - We already have a refcount
 - We have a field where putting a flag isn't that much of a problem
 - It can be difficult to get page refcounting right when dealing with
   such things, really.

In that case, we basically have an _easy_ way to trigger a useful BUG()
in the page free path when it's a page that should never be returned to
the pool.

Since the "PG_not_in_ram" or whatever we call it flag might be used by
swsusp or others, I suppose it could be useful.

However, I agree that if the end result is to have drivers just change
"PG_reserved" to "PG_not_in_ram" and still be bogus, then we might just
go all the way & drop the flag completely, only relying on the VMA
flags.

Ben.


--
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:[~2005-08-09 14:54 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 [this message]
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=1123598952.30257.213.camel@gaston \
    --to=benh@kernel.crashing.org \
    --cc=akpm@osdl.org \
    --cc=andrea@suse.de \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --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.