Messages in this thread | | | From | (Rick van Rein) | Subject | Re: Where is memory handed out? | Date | Tue, 21 Mar 2000 10:58:28 +0100 (MET) |
| |
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/
| |