Re: Zone's in Linux



deepak wrote:
On Aug 21, 6:08 pm, Alexander Krizhanovsky <a.krizhanov...@xxxxxxxxx>
wrote:

On Aug 21, 12:39 pm, deepak <deepakpj...@xxxxxxxxx> wrote:


Hi,

I read a document where main memory in Linux will be logically divided
into zones
called as NORMAL, DMA, HIGH memory zones.

Why in linux we are dividing memory into zones?

ZONE_DMA places in first 16MB of memory because some devices need
exactly that addresses for mapping.
x86 can't directly map pages with address over 1GB, so we need
ZONE_HIGHMEM for indirect mapping.


I learned about this from Linux kernel programming by R.Love.
In that author specified that x86 won't be able to access above 868MB.
Why x86 is not able to access this and how they are resolving this
through
DMA_HIGH zone concept?

This is simply not true.
All 32 bit x86 processors are able to access at least 4 GB of physical memory. There may be hardware (i.e. board) restrictions like video buffers or PCI buffers which are placed at the upper end of the 4GB area, but for all practical purposes, 4GB is the limit, not 868MB.
With PAE (Physical Address Extension), x86 processors are able to address 64GB of physical memory, although in all cases, 4GB is the virtual address range.
In the latter case, however, most peripherals which can do DMA cannot access the physical memory above 4GB, as they only have 32 address lines, so Linux provides means to allocate memory which is DMA-able by these devices.
--
These are my personal views and not those of Fujitsu Siemens Computers!
Josef Möllers (Pinguinpfleger bei FSC)
If failure had no penalty success would not be a prize (T. Pratchett)
Company Details: http://www.fujitsu-siemens.com/imprint.html

.



Relevant Pages

  • [PATCH 3/7] Have x86 use add_active_range() and free_area_init_nodes
    ... Size zones and holes in an architecture independent manner for x86. ... -/* For each node run the memory list to determine whether there are ...
    (Linux-Kernel)
  • Re: How to dynamically set max-rss size for a local zone?
    ... Three local zones in a Veritas cluster. ... I need to be able to dynamically change memory ... but i need to do this for physical memory and I can't see that there ... The resource property is called "capped-memory" ...
    (comp.unix.solaris)
  • Re: [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19
    ... If your and other kernel developer's kernel ... Ingo Molnar says that zones work for him. ... and memory associated with still others. ... allocating and freeing large or small blocks of memory or it could be ...
    (Linux-Kernel)
  • Re: Blocking undesirable domains using BIND
    ... So hosts seemed easier, but apparently Bind never looks at hosts. ... server is now consuming 208 MB of ram. ... to the exact same thing it seems to be needlessly wasting memory. ... My experience, albeit with a smaller number of zones, is a bit different. ...
    (freebsd-questions)
  • Re: 16/32 processor operating mode
    ... Okay, x86 it is. ... hardware perspective, as I already mentioned, most memory accesses are ... called a "cache line") in a single operation. ... much of the data bus is active when accessing stuff on the bus. ...
    (alt.lang.asm)