public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] Arch option to touch newly allocated pages
@ 2002-03-03 21:12 Jeff Dike
  2002-03-03 22:01 ` Alan Cox
  0 siblings, 1 reply; 96+ messages in thread
From: Jeff Dike @ 2002-03-03 21:12 UTC (permalink / raw)
  To: linux-kernel

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

^ permalink raw reply	[flat|nested] 96+ messages in thread

end of thread, other threads:[~2002-03-08 21:23 UTC | newest]

Thread overview: 96+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-03 21:12 [RFC] Arch option to touch newly allocated pages Jeff Dike
2002-03-03 22:01 ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox