public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Dike <jdike@karaya.com>
To: linux-kernel@vger.kernel.org
Subject: [RFC] Arch option to touch newly allocated pages
Date: Sun, 03 Mar 2002 16:12:38 -0500	[thread overview]
Message-ID: <200203032112.QAA03497@ccure.karaya.com> (raw)

What I'd like is for the arch to have __alloc_pages touch all pages that it 
has allocated and is about to return.

The reason for this is that for UML, those pages are backed by host memory,
which may or may not be available when they are finally touched at some
arbitrary place in the kernel.  I hit this by tmpfs running out of room
because my UMLs have their memory backed by tmpfs mounted on /tmp.  So, I
want to be able to dirty those pages before they are seen by any other code.

My first guess at what I want in the code is for all the places that 
__alloc_pages says this:

			if (page)
				return page;

to change to this:

			if (page)
				return arch_validate(page);

arch_validate would be defined as basically empty somewhere in a
include/linux/*.h unless the arch has defined one already.  And I may want
to add order to the arg list if it can't be inferred from the page alignment.

My arch_validate would look something like this:

struct page_struct *arch_validate(page_struct *page)
{
	unsigned long zero = 0;
	unsigned long addr = page_address(page);

	set_fs(USER_DS);
	for(i = 0; i < 1 << order; i++){
		if(copy_to_user(addr + i * PAGE_SIZE, &zero, sizeof(zero))){
			set_fs(KERNEL_DS);
			free_pages(addr, order);
			return(NULL);
		}
	}
	set_fs(KERNEL_DS);
	return(page);
}

The use of set_fs/copy_to_user is somewhat hokey, but that's exactly the
effect that I want.  Is there a better way of doing that?

So, is this a reasonable thing to do, and is the above the right way of
getting it?

				Jeff

             reply	other threads:[~2002-03-03 21:09 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-03 21:12 Jeff Dike [this message]
2002-03-03 22:01 ` [RFC] Arch option to touch newly allocated pages Alan Cox
2002-03-03 23:27   ` Jeff Dike
2002-03-03 23:48     ` Alan Cox
2002-03-04  3:16       ` Jeff Dike
2002-03-04  3:35         ` Alan Cox
2002-03-04  5:04           ` Jeff Dike
2002-03-04 15:09             ` Alan Cox
2002-03-04 17:42               ` Jeff Dike
2002-03-04 18:29                 ` Alan Cox
2002-03-04 18:36                   ` Jeff Dike
2002-03-04 18:49                     ` Alan Cox
2002-03-04 20:46                       ` Jeff Dike
2002-03-04 22:49                         ` Alan Cox
2002-03-04 17:46             ` H. Peter Anvin
2002-03-04 18:34               ` Jeff Dike
2002-03-04 18:33                 ` H. Peter Anvin
2002-03-04 20:36                   ` Jeff Dike
2002-03-04 22:51                     ` Alan Cox
2002-03-05  4:15                       ` Jeff Dike
2002-03-05  4:28                         ` Benjamin LaHaise
2002-03-05  4:40                           ` Jeff Dike
2002-03-05  5:34                             ` H. Peter Anvin
2002-03-05 14:43                               ` Jeff Dike
2002-03-05 16:37                                 ` H. Peter Anvin
2002-03-05 16:56                                   ` Wayne Whitney
2002-03-05 18:12                                   ` Jeff Dike
2002-03-05 18:30                                     ` Benjamin LaHaise
2002-03-06 14:59                                       ` Daniel Phillips
2002-03-06 15:24                                         ` Benjamin LaHaise
2002-03-06 15:24                                           ` Daniel Phillips
2002-03-06 16:36                                             ` Benjamin LaHaise
2002-03-06 23:14                                               ` Daniel Phillips
2002-03-06 23:20                                                 ` Benjamin LaHaise
2002-03-06 23:26                                                   ` Daniel Phillips
2002-03-06 23:33                                                     ` H. Peter Anvin
2002-03-07  0:08                                                       ` Daniel Phillips
2002-03-07  1:27                                                   ` Jeff Dike
2002-03-07  1:52                                                     ` Benjamin LaHaise
2002-03-08 19:17                                                       ` Jeff Dike
2002-03-08 21:22                                                         ` Benjamin LaHaise
2002-03-07 13:49                                                     ` Alan Cox
2002-03-07 13:36                                                       ` Daniel Phillips
2002-03-07 14:04                                                         ` yodaiken
2002-03-07 14:21                                                           ` Daniel Phillips
2002-03-07 14:38                                                             ` yodaiken
2002-03-07 15:31                                                               ` Daniel Phillips
2002-03-07 16:50                                                                 ` yodaiken
2002-03-07 18:07                                                                   ` Daniel Phillips
2002-03-07 18:15                                                                     ` yodaiken
2002-03-07 19:22                                                                     ` Alan Cox
2002-03-07 22:43                                                                       ` David Woodhouse
2002-03-07 23:09                                                                         ` Alan Cox
2002-03-07 22:57                                                                           ` David Woodhouse
2002-03-07 14:43                                                             ` Alan Cox
2002-03-07 15:32                                                               ` Daniel Phillips
2002-03-07 16:19                                                                 ` Alan Cox
2002-03-07 17:54                                                                   ` Daniel Phillips
2002-03-07 15:34                                                               ` Daniel Phillips
2002-03-07 19:18                                                                 ` Andrew Morton
2002-03-07 20:10                                                                   ` Rik van Riel
2002-03-07 20:56                                                                     ` Andrew Morton
2002-03-07 21:23                                                                       ` Rik van Riel
2002-03-07 22:02                                                                         ` Andrew Morton
2002-03-07 22:10                                                                           ` Rik van Riel
2002-03-07 22:23                                                                             ` Andrew Morton
2002-03-07 22:27                                                                               ` Rik van Riel
2002-03-07 22:41                                                                                 ` Andrew Morton
2002-03-07 22:42                                                                                 ` David Lang
2002-03-06 16:03                                         ` Jesse Pollard
2002-03-06 17:08                                           ` Jeff Dike
2002-03-06 17:33                                             ` Alan Cox
2002-03-07  0:28                                               ` Jeff Dike
2002-03-07  0:44                                                 ` Alan Cox
2002-03-05 18:46                                     ` H. Peter Anvin
2002-03-06  1:30                                     ` Alan Cox
2002-03-06 10:49                                     ` David Woodhouse
2002-03-06 14:26                                       ` Jeff Dike
2002-03-06 16:50                                       ` Alan Cox
2002-03-06 20:25                                         ` Jeff Dike
2002-03-06 20:54                                           ` Alan Cox
2002-03-06 21:27                                             ` Malcolm Beattie
2002-03-06 23:26                                               ` Jeff Dike
2002-03-06 21:27                                           ` David Woodhouse
2002-03-06 22:25                                             ` Joseph Malicki
2002-03-07  0:04                                             ` Richard Gooch
2002-03-07  0:28                                             ` Jeff Dike
2002-03-07  0:44                                               ` Alan Cox
2002-03-06 22:21                                         ` Pavel Machek
2002-03-07 11:30                                           ` Dave Jones
2002-03-07 18:21                                           ` H. Peter Anvin
2002-03-05 14:43                           ` Jeff Dike
2002-03-05 16:57                             ` H. Peter Anvin
2002-03-05 18:14                               ` Jeff Dike
2002-03-05 18:45                                 ` H. Peter Anvin
2002-03-05 17:30                             ` Jan Harkes

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=200203032112.QAA03497@ccure.karaya.com \
    --to=jdike@karaya.com \
    --cc=linux-kernel@vger.kernel.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