public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Why is there limited number of permanent memory mappings in kernel on x86?
@ 2006-11-09  9:34 gniuxiao
  2006-11-09 13:59 ` Ralf Baechle
  0 siblings, 1 reply; 2+ messages in thread
From: gniuxiao @ 2006-11-09  9:34 UTC (permalink / raw)
  To: linux-kernel

So we have to use kmap() to map high memory to kernel address???

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

* Re: Why is there limited number of permanent memory mappings in kernel on x86?
  2006-11-09  9:34 Why is there limited number of permanent memory mappings in kernel on x86? gniuxiao
@ 2006-11-09 13:59 ` Ralf Baechle
  0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2006-11-09 13:59 UTC (permalink / raw)
  To: gniuxiao; +Cc: linux-kernel

On Thu, Nov 09, 2006 at 05:34:30PM +0800, gniuxiao wrote:

> So we have to use kmap() to map high memory to kernel address???

Several reasons:

 o on i386 kernel address space is limited to just 1GB of which most that
   is on the order of 970MB is used for mapping lowmem.  The remainder is
   used for ioremap'ed memory, vmalloc'ed memory, highmem mappings and
   fixmap mappings, so there really on is very little address space.
 o highmem mappings are assumed to be very shortlived so at any time there
   will only be a small number of mappings active.
 o The algorithm to allocate a virtual address for a non-atomic kmap is
   somewhat simpleminded with O(n) worst case where n is the max. number
   of mappable pages and will be the slower the more pages are actually
   mapped.

  Ralf

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

end of thread, other threads:[~2006-11-09 13:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-09  9:34 Why is there limited number of permanent memory mappings in kernel on x86? gniuxiao
2006-11-09 13:59 ` Ralf Baechle

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