public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kmemleak: Ignore the aperture memory hole on x86_64
Date: Sun, 16 Aug 2009 09:04:51 +0200	[thread overview]
Message-ID: <20090816070451.GA29537@elte.hu> (raw)
In-Reply-To: <1250375681.6889.25.camel@pc1117.cambridge.arm.com>


* Catalin Marinas <catalin.marinas@arm.com> wrote:

> On Sat, 2009-08-15 at 15:17 +0100, Ingo Molnar wrote:
> > * Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > +     /*
> > > +      * Kmemleak should not scan this block as it may not be mapped via the
> > > +      * kernel direct mapping.
> > > +      */
> > > +     kmemleak_ignore(p);
> > 
> > More importantly, kmemleak should _never_ do the garbage collection
> > scan for device memory (such as the agp aperture above). All the
> > aperture areas are in that category - PCI aperture, IOMMU areas,
> > etc. etc.
> > 
> > Please double check that kmemleak does not check those - there are
> > devices where pure reading of that address space can have
> > side-effects.
> 
> I'll do a grep. But would such memory still be mapped in the 
> kernel direct mapping? [...]

It should not be mapped directly - we try to map all kinds of 
resources 'precisely', so that there can be no cache aliasing 
complications due to over-mapping - but still, there are 
compatibility ranges that are always mapped (the BIOS area for 
example).

> [...] In this particular case, it was alloc_bootmem() memory which 
> seems to have been unmapped (and cause an oops), otherwise, at 
> least on some architectures, may have problems with speculative 
> fetches.
> 
> Kmemleak doesn't track other mappings like ioremap, so it should 
> not scan device memory.
> 
> Since you raised this, I realised there is a class of kmalloc'ed 
> memory blocks that may have some issues on non-coherent 
> architectures. If such blocks are used for DMA and cache 
> invalidation is only done in dma_map_single(FROM_DEVICE) (the ARM 
> case), kmemleak scanning before dma_unmap_single() may pollute the 
> cache. One solution is to invalidate the caches again in 
> dma_unmap_single(). I'm not sure ignoring GFP_DMA blocks would be 
> feasible if this flag is used for other blocks containing 
> pointers. I need to do some tests but I don't think x86 is 
> affected.

Yeah, x86 shouldnt be affected.

	Ingo

  reply	other threads:[~2009-08-16  7:05 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-29 15:26 [PATCH] kmemleak: Protect the seq start/next/stop sequence by rcu_read_lock() Catalin Marinas
2009-07-30  0:00 ` Andrew Morton
2009-07-30  8:24   ` Catalin Marinas
2009-08-02 11:14 ` Ingo Molnar
2009-08-10 15:55   ` Catalin Marinas
2009-08-10 18:45     ` Ingo Molnar
2009-08-10 22:56       ` Catalin Marinas
2009-08-11  7:32         ` Ingo Molnar
2009-08-11  8:55           ` Catalin Marinas
2009-08-12 12:17             ` Catalin Marinas
2009-08-12 15:32               ` Linus Torvalds
2009-08-12 15:39                 ` Catalin Marinas
2009-08-12 20:52               ` Ingo Molnar
2009-08-12 22:16                 ` kmemleak: Protect the seq start/next/stop sequence byrcu_read_lock() Catalin Marinas
2009-08-13  6:52                   ` Ingo Molnar
2009-08-13  9:39                     ` Catalin Marinas
2009-08-13  9:44                       ` Ingo Molnar
2009-08-13 14:44                         ` Catalin Marinas
2009-08-14 22:45                 ` Catalin Marinas
2009-08-14 22:47                   ` [PATCH] kmemleak: Allow rescheduling during an object scanning Catalin Marinas
2009-08-14 22:48                   ` [PATCH] kmemleak: Ignore the aperture memory hole on x86_64 Catalin Marinas
2009-08-15 14:17                     ` Ingo Molnar
2009-08-15 22:34                       ` Catalin Marinas
2009-08-16  7:04                         ` Ingo Molnar [this message]
2009-08-16 10:08                     ` Ingo Molnar
2009-08-16 21:48                       ` Catalin Marinas

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=20090816070451.GA29537@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.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