All of lore.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 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.