From: Henry N. <Hen...@Ar...> - 2008-03-04 20:50:19
|
Henry Nestler wrote: > baldyeti wrote: >> Anyway after that I've got the new >> version running *yet* there is this suspicious >> line in debug.xml (whih I am sending to you): >> >> Bug: PFN too high! 521536 > 491520 > > This lines comes from reading cpu register cr3 and mapping this memory. > In this area exist your page tables. This area on 2037MB (521536 * 4K). > > The error marks "Bug: PFN too high! 521536 > 491520" comes not from > memory allocation. It's from mapping "in used" memory. This is more > false/positive here. You can ignore. But, it was interesting to see > where you have the missing bytes from "2GB minux 128MB", my problem with > 1920MB/1940MB values ;-) > > I currently not know where you have the memory exactly and where exist > some holes. What I see is you have > 1904MB real memory starts at 0 > 128MB shared graphic memory starts at 1904MB > ~16MB memory for page tables starts at 2032MB up to limit 2048MB > > Winnt reports you have 1920MB non memory free usable. In your case it is > non continues, it starts from 0, than the 128BM hole and than 16MB. > Now the problem: Colinux "thinks" all memory starts from 0 and checks > this by a limit (1920MB in your case). But we need to check the first > 1904MB continues, than remember to skip over the hole and then allow the > last 16MB. > > My last changes has not handled the 16MB behind the graphic. So, I'm > badly with diff of 16MB. Because colinux request memory in 65MB hunks > and not acccepts lower sizes (16MB), this helps us to not crash here. > > We need a ntkernel function to ask for reserved memory regions inside > the physicaly ram, for example such line from your winmsd: > "0x77000000-0x7EFFFFFF Motherboard resources" > This memory recources should exclude from colinux memory requests. > > The right values in your case should be: > 1.) 1904MB (0x77000000) should be the max value for alloating memory. > Currently it is 1920MB = pfn 491520 * 4K. > 2.) We should allow to map without error message the pages from 2032MB > to 2048MB. > Currently all pages over 1920MB are marked as error. This has interesting comments, we need to know: http://www.jungo.com/support/tech_docs/td129.html MmGetPhysicalMemoryRanges should use to get the usable memory ranges, or the highest usable physicaly page. I will try some with this function. I know, MmGetPhysicalMemoryRanges and MmGetPhysicalMemoryRanges are reserved and non official documented by MS. Bu, we use MmGetPhysicalMemoryRanges and can not change it for now in fast way. So we also need to use MmGetPhysicalMemoryRanges to get the "usable" list of memory here. -- Henry N. |