Re: Tell me about ZONE_DMA

From: Helge Hafting (helgehaf@idb.hist.no)
Date: Fri Jul 07 2000 - 07:03:41 EST


> I'm trying to understand the differences between the three zones, ZONE_DMA,
> ZONE_NORMAL,and ZONE_HIGHMEM. I've searched the source code (I'm getting pretty
> good at understanding the kernel memory allocator), but I can't figure out what
> physical regions of memory belong to each zone. Where is that determined?
>
As far as I know, ZONE_DMA is the first 16M of physical RAM (or less, if
you don't have that much.) It is so named because old-fashioned
DMA from/to ISA-bus cards is possible from/to those addresses.

Device drivers dealing with ISA cards typically need this kind of
memory,
as the ISA card can't access memory on higher addresses. PCI cards
don't usually have this problem.

ZONE_NORMAL is ordinary memory that may be used for anything (except ISA
DMA)
I.e. io to/from non-isa equipment, disk-cache, process memory and so on.

NORMAL stops somewhere near 1GB due to the way memory management is
implemented
on 32-bit machines. At least x86. Some x86 machines have substantial
more than
that, sometimes even more than 4GB. This is HIGHMEM. It has some uses,
but not as many as NORMAL.

Helge Hafting

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jul 07 2000 - 21:00:20 EST