Re: Where is memory handed out?

From: Rick van Rein (vanrein@cs.utwente.nl)
Date: Tue Mar 21 2000 - 04:58:28 EST


Hi Nathan:

> [...] if you were to specify, for instance, one bad byte
> every 8k, you would get a series of single pages unavailable to handle mem
> requests of larger amounts.

I am not 100% certain of how VM-allocation works but...

In mm/vmalloc.c, the nesting of routines to do virtual memory allocation is:
        vmalloc
          vmalloc_area_pages
            alloc_area_pmd
              alloc_area_pte
                __get_free_page
The latter routine is defined in mm/page_alloc.c and allocates a single
page. And for virtual memmory, that is the right thing to do. The kernel
may need long stretches of pages in sequence, but user processes are quite
happy to deal with loose pages concatenated any way.

In a DIMM that I got working, there is an 8MB range in which error bytes
are separated by 8kB and 24kB in turn. In the 8kB, there's one useful page
(on i386), in the 24kB there are 5. Together, 6 pages out of 8.
You would prefer to throw out 8MB whereas I only sacrifice 2MB. Your
memory map (instead of the :X notation) may however make a difference.
I am curious about your memory map syntax, and I wonder if it requires a
parser (I use available routines for cmdline parsing).

I do not intend to let this become a competition; I just want to learn of
alternatives and perhaps teach others while at it.

Cheers,
 -Rick.

-
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 : Thu Mar 23 2000 - 21:00:32 EST