All of lore.kernel.org
 help / color / mirror / Atom feed
From: pageexec@freemail.hu
To: "Larry H." <research@subreption.com>,
	Arjan van de Ven <arjan@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, Ingo Molnar <mingo@elte.hu>,
	Rik van Riel <riel@redhat.com>,
	linux-kernel@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>,
	linux-mm@kvack.org, Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] Support for unconditional page sanitization
Date: Sun, 24 May 2009 12:19:48 +0200	[thread overview]
Message-ID: <4A191F44.24468.2C006647@pageexec.freemail.hu> (raw)
In-Reply-To: <20090523140509.5b4a59e4@infradead.org>

On 23 May 2009 at 14:05, Arjan van de Ven wrote:

> On Sat, 23 May 2009 11:21:41 -0700
> "Larry H." <research@subreption.com> wrote:
> 
> > +static inline void sanitize_highpage(struct page *page)
> 
> any reason we're not reusing clear_highpage() for this?
> (I know it's currently slightly different, but that is fixable)

KM_USER0 users are not supposed to be called from soft/hard irq
contexts for high memory pages, something that cannot be guaranteed
at this low level of page freeing (i.e., we could be interrupting
a clear_highmem and overwrite its KM_USER0 mapping, leaving it dead
in the water when we return there). in other words, sanitization
must be able to nest within KM_USER*, so that pretty much calls for
its own slot.

the alternative is to change KM_USER* semantics and allow its use
from the same contexts as free_page et al., but given the existing
users, that may very well be considered overkill.

on a related note, one could already say that disabling interrupts
during a memset over a page or more is already bad enough for your
real-time response times, so you may want to make this whole change
depend on the kernel's preemption model or at least document it.

> also, have you checked that you stopped clearing the page in the
> normal anonymous memory pagefault handler path? If the page is 
> guaranteed to be clear already you can save that copy
> (basically you move the clear from allocate to free..)

all new page allocations end up in prep_new_page and the clear_highpage
(memset) there depends on !sanitize_all_mem.


WARNING: multiple messages have this Message-ID (diff)
From: pageexec@freemail.hu
To: "Larry H." <research@subreption.com>,
	Arjan van de Ven <arjan@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, Ingo Molnar <mingo@elte.hu>,
	Rik van Riel <riel@redhat.com>,
	linux-kernel@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>,
	linux-mm@kvack.org, Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] Support for unconditional page sanitization
Date: Sun, 24 May 2009 12:19:48 +0200	[thread overview]
Message-ID: <4A191F44.24468.2C006647@pageexec.freemail.hu> (raw)
In-Reply-To: <20090523140509.5b4a59e4@infradead.org>

On 23 May 2009 at 14:05, Arjan van de Ven wrote:

> On Sat, 23 May 2009 11:21:41 -0700
> "Larry H." <research@subreption.com> wrote:
> 
> > +static inline void sanitize_highpage(struct page *page)
> 
> any reason we're not reusing clear_highpage() for this?
> (I know it's currently slightly different, but that is fixable)

KM_USER0 users are not supposed to be called from soft/hard irq
contexts for high memory pages, something that cannot be guaranteed
at this low level of page freeing (i.e., we could be interrupting
a clear_highmem and overwrite its KM_USER0 mapping, leaving it dead
in the water when we return there). in other words, sanitization
must be able to nest within KM_USER*, so that pretty much calls for
its own slot.

the alternative is to change KM_USER* semantics and allow its use
from the same contexts as free_page et al., but given the existing
users, that may very well be considered overkill.

on a related note, one could already say that disabling interrupts
during a memset over a page or more is already bad enough for your
real-time response times, so you may want to make this whole change
depend on the kernel's preemption model or at least document it.

> also, have you checked that you stopped clearing the page in the
> normal anonymous memory pagefault handler path? If the page is 
> guaranteed to be clear already you can save that copy
> (basically you move the clear from allocate to free..)

all new page allocations end up in prep_new_page and the clear_highpage
(memset) there depends on !sanitize_all_mem.

--
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:[~2009-05-24 10:56 UTC|newest]

Thread overview: 218+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-20 18:30 [patch 0/5] Support for sanitization flag in low-level page allocator Larry H.
2009-05-20 18:30 ` Larry H.
2009-05-20 20:42 ` Peter Zijlstra
2009-05-20 20:42   ` Peter Zijlstra
2009-05-20 21:24   ` Larry H.
2009-05-20 21:24     ` Larry H.
2009-05-21 15:21     ` Robin Holt
2009-05-21 15:21       ` Robin Holt
2009-05-21 18:43       ` Larry H.
2009-05-21 18:43         ` Larry H.
2009-05-29 22:58     ` Andrew Morton
2009-05-29 22:58       ` Andrew Morton
2009-05-30  7:00       ` Larry H.
2009-05-30  7:12       ` Pekka Enberg
2009-05-30  7:12         ` Pekka Enberg
2009-05-30  7:35         ` Larry H.
2009-05-30  7:35           ` Larry H.
2009-05-30  7:39           ` Pekka Enberg
2009-05-30  7:39             ` Pekka Enberg
2009-05-21 19:08   ` Rik van Riel
2009-05-21 19:08     ` Rik van Riel
2009-05-21 19:26     ` Alan Cox
2009-05-21 19:26       ` Alan Cox
2009-05-21 19:56       ` Larry H.
2009-05-21 19:56         ` Larry H.
2009-05-21 20:47         ` Alan Cox
2009-05-21 20:47           ` Alan Cox
2009-05-21 21:46           ` Larry H.
2009-05-21 22:47             ` Alan Cox
2009-05-21 22:47               ` Alan Cox
2009-05-22 11:22               ` Larry H.
2009-05-22 11:22                 ` Larry H.
2009-05-22 13:37                 ` Alan Cox
2009-05-22 13:37                   ` Alan Cox
2009-05-26 19:02       ` Pavel Machek
2009-05-26 19:02         ` Pavel Machek
2009-05-21 19:17 ` Rik van Riel
2009-05-21 19:30   ` Larry H.
2009-05-22  7:34   ` Ingo Molnar
2009-05-22 11:38     ` Larry H.
2009-05-22 11:38       ` Larry H.
2009-05-22 13:39       ` Alan Cox
2009-05-22 13:39         ` Alan Cox
2009-05-22 18:03         ` Larry H.
2009-05-22 18:03           ` Larry H.
2009-05-22 18:21           ` Alan Cox
2009-05-22 18:21             ` Alan Cox
2009-05-22 23:25             ` [PATCH] Support for kernel memory sanitization Larry H.
2009-05-22 23:52               ` Randy Dunlap
2009-05-22 23:40             ` [patch 0/5] Support for sanitization flag in low-level page allocator Larry H.
2009-05-23  8:09               ` Alan Cox
2009-05-23  8:09                 ` Alan Cox
2009-05-23 15:56                 ` Arjan van de Ven
2009-05-23 15:56                   ` Arjan van de Ven
2009-05-23 18:21                   ` [PATCH] Support for unconditional page sanitization Larry H.
2009-05-23 18:21                     ` Larry H.
2009-05-23 21:05                     ` Arjan van de Ven
2009-05-23 21:05                       ` Arjan van de Ven
2009-05-24 10:19                       ` pageexec [this message]
2009-05-24 10:19                         ` pageexec
2009-05-24 16:38                         ` Arjan van de Ven
2009-05-24 16:38                           ` Arjan van de Ven
2009-05-28 19:36                   ` [patch 0/5] Support for sanitization flag in low-level page allocator Peter Zijlstra
2009-05-28 19:36                     ` Peter Zijlstra
2009-05-29 14:32                     ` Arjan van de Ven
2009-05-29 14:32                       ` Arjan van de Ven
2009-05-30  5:48                       ` Larry H.
2009-05-30  5:48                         ` Larry H.
2009-05-30 10:39                         ` Peter Zijlstra
2009-05-30 10:39                           ` Peter Zijlstra
2009-05-30 10:43                           ` Larry H.
2009-05-30 10:43                             ` Larry H.
2009-05-30 11:42                           ` pageexec
2009-05-30 11:42                             ` pageexec
2009-05-30 13:21                             ` Peter Zijlstra
2009-05-30 13:21                               ` Peter Zijlstra
2009-05-30 13:24                               ` Peter Zijlstra
2009-05-30 13:24                                 ` Peter Zijlstra
2009-05-30 13:54                               ` pageexec
2009-05-30 13:54                                 ` pageexec
2009-05-30 14:04                                 ` Larry H.
2009-05-30 14:04                                   ` Larry H.
2009-05-30 14:13                                 ` Rik van Riel
2009-05-30 14:13                                   ` Rik van Riel
2009-05-30 14:08                               ` Rik van Riel
2009-05-30 14:08                                 ` Rik van Riel
2009-05-30 14:30                               ` Alan Cox
2009-05-30 14:45                                 ` Peter Zijlstra
2009-05-30 14:45                                   ` Peter Zijlstra
2009-05-30 14:48                                   ` Rik van Riel
2009-05-30 14:48                                     ` Rik van Riel
2009-05-30 17:00                                     ` Larry H.
2009-05-30 17:00                                       ` Larry H.
2009-05-30 17:25                                       ` Larry H.
2009-05-30 17:25                                         ` Larry H.
2009-05-30 18:32                                         ` Ingo Molnar
2009-05-30 18:32                                           ` Ingo Molnar
2009-06-05 13:15                                   ` Pavel Machek
2009-05-31 14:38                           ` Arjan van de Ven
2009-05-31 14:38                             ` Arjan van de Ven
2009-05-31 15:03                             ` Arjan van de Ven
2009-05-31 15:03                               ` Arjan van de Ven
2009-05-22 18:37           ` Nai Xia
2009-05-22 18:37             ` Nai Xia
2009-05-22 19:18           ` Nai Xia
2009-05-22 19:18             ` Nai Xia
2009-05-23 12:49       ` Ingo Molnar
2009-05-23 12:49         ` Ingo Molnar
2009-05-23 22:28         ` Larry H.
2009-05-23 22:28           ` Larry H.
2009-05-23 22:42         ` Rik van Riel
2009-05-23 22:42           ` Rik van Riel
2009-05-25  1:17           ` [PATCH] Sanitize memory on kfree() and kmem_cache_free() Larry H.
2009-05-25  1:17             ` Larry H.
2009-05-27 22:34           ` [patch 0/5] Support for sanitization flag in low-level page allocator Ingo Molnar
2009-05-27 22:34             ` Ingo Molnar
2009-05-28  6:27             ` Alan Cox
2009-05-28  6:27               ` Alan Cox
2009-05-28  7:00               ` Larry H.
2009-05-28  7:00                 ` Larry H.
2009-05-28  9:08               ` Ingo Molnar
2009-05-28  9:08                 ` Ingo Molnar
2009-05-28 11:50                 ` Alan Cox
2009-05-28 11:50                   ` Alan Cox
2009-05-28 19:44                   ` Peter Zijlstra
2009-05-28 19:44                     ` Peter Zijlstra
2009-05-30  7:35                   ` Pekka Enberg
2009-05-30  7:35                     ` Pekka Enberg
2009-05-30  7:50                     ` Larry H.
2009-05-30  7:50                       ` Larry H.
2009-05-30  7:53                       ` Pekka Enberg
2009-05-30  7:53                         ` Pekka Enberg
2009-05-30  8:20                         ` Larry H.
2009-05-30  8:20                           ` Larry H.
2009-05-30  8:33                           ` Pekka Enberg
2009-05-30  8:33                             ` Pekka Enberg
2009-05-30 15:05                           ` Ray Lee
2009-05-30 15:05                             ` Ray Lee
2009-05-30 17:34                           ` Ingo Molnar
2009-05-30 17:34                             ` Ingo Molnar
2009-05-30 18:03                             ` Larry H.
2009-05-30 18:03                               ` Larry H.
2009-05-30 18:21                               ` Ingo Molnar
2009-05-30 18:21                                 ` Ingo Molnar
2009-05-30 18:45                                 ` Larry H.
2009-05-30 18:45                                   ` Larry H.
2009-05-30 19:08                                   ` Ingo Molnar
2009-05-30 19:08                                     ` Ingo Molnar
2009-05-30 20:39                                     ` Rik van Riel
2009-05-30 20:39                                       ` Rik van Riel
2009-05-30 20:53                                       ` Pekka Enberg
2009-05-30 20:53                                         ` Pekka Enberg
2009-05-30 21:33                                         ` Larry H.
2009-05-30 21:33                                           ` Larry H.
2009-05-30 23:13                                           ` Alan Cox
2009-05-30 23:13                                             ` Alan Cox
2009-05-30 23:18                                             ` Larry H.
2009-05-30 23:18                                               ` Larry H.
2009-05-31  6:30                                               ` Pekka Enberg
2009-05-31  6:30                                                 ` Pekka Enberg
2009-05-31 11:49                                                 ` Larry H.
2009-05-31 11:49                                                   ` Larry H.
2009-05-31  7:17                                           ` Pekka Enberg
2009-05-31  7:17                                             ` Pekka Enberg
2009-05-31 11:58                                             ` Larry H.
2009-05-31 11:58                                               ` Larry H.
2009-05-31 12:16                                               ` Pekka Enberg
2009-05-31 12:16                                                 ` Pekka Enberg
2009-05-31 12:30                                                 ` Larry H.
2009-05-31 12:30                                                   ` Larry H.
2009-05-31 12:35                                                   ` Pekka Enberg
2009-05-31 12:35                                                     ` Pekka Enberg
2009-05-30 23:10                                         ` Alan Cox
2009-05-30 23:10                                           ` Alan Cox
2009-05-31  6:14                                           ` Pekka Enberg
2009-05-31  6:14                                             ` Pekka Enberg
2009-05-31 10:24                                             ` Alan Cox
2009-05-31 10:24                                               ` Alan Cox
2009-05-31 10:24                                               ` Pekka Enberg
2009-05-31 10:24                                                 ` Pekka Enberg
2009-05-31 12:16                                             ` Larry H.
2009-05-31 12:16                                               ` Larry H.
2009-05-31 12:19                                               ` Pekka Enberg
2009-05-31 12:19                                                 ` Pekka Enberg
2009-05-31 16:25                                               ` Alan Cox
2009-05-31 16:25                                                 ` Alan Cox
2009-05-30 22:10                                       ` Ingo Molnar
2009-05-30 22:10                                         ` Ingo Molnar
2009-05-30 23:15                                         ` Alan Cox
2009-05-30 23:15                                           ` Alan Cox
2009-05-30 20:22                               ` Pekka Enberg
2009-05-30 20:22                                 ` Pekka Enberg
2009-05-30 22:14                                 ` Ingo Molnar
2009-05-30 22:14                                   ` Ingo Molnar
2009-05-30 17:39                         ` Ingo Molnar
2009-05-30 17:39                           ` Ingo Molnar
2009-05-30  7:57                       ` Pekka Enberg
2009-05-30  7:57                         ` Pekka Enberg
2009-05-30  9:05                         ` Larry H.
2009-05-30  9:05                           ` Larry H.
2009-05-30 17:46                           ` Ingo Molnar
2009-05-30 17:46                             ` Ingo Molnar
2009-05-30 18:09                             ` Larry H.
2009-05-30 18:09                               ` Larry H.
2009-05-30  8:31                     ` Alan Cox
2009-05-30  8:31                       ` Alan Cox
2009-05-30  8:35                       ` Pekka Enberg
2009-05-30  8:35                         ` Pekka Enberg
2009-05-30  9:27                         ` Larry H.
2009-05-30  9:27                           ` Larry H.
2009-05-28 18:48                 ` pageexec
2009-05-28 18:48                   ` pageexec
2009-05-30 17:50                   ` Ingo Molnar
2009-05-30 17:50                     ` Ingo Molnar
2009-05-28 12:48 ` Pavel Machek
2009-05-28 12:48   ` Pavel Machek
2009-05-28 12:55   ` Larry H.
2009-05-28 12:55     ` Larry H.

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=4A191F44.24468.2C006647@pageexec.freemail.hu \
    --to=pageexec@freemail.hu \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=research@subreption.com \
    --cc=riel@redhat.com \
    --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.