Messages in this thread |  | | | From | "Michael S. Zick" <> | | Subject | Re: [Bug Fix]: Do 32-bit table calculations in pre-processor | | Date | Sat, 4 Jul 2009 08:23:20 -0500 |
On Fri July 3 2009, H. Peter Anvin wrote: > Michael S. Zick wrote: > >> > >> The PGTABLE reservation seems much too big. I think 1 page should be > >> sufficient for a system with large pages. Even if not, 0x6d000 is way > >> too large. And they symptoms of failing to reserve the initial > >> pagetable are pretty non-subtle. > >> > > > > Random system halts, deadlocks with interrupts disabled? > > Yup, that sounds familiar. > > > > If I ever get more than a stopped machine with a glowing power light; > > I will be certain to share. > > > > Let's see... on a non-PSE system we may need one PDE and one PTE page > per 4 MB, up to 1 GB, for a total of 256 pages or 1 MB of memory, so in > that sense 0x6d000 (109 pages) doesn't sound at all unreasonable > (non-PSE system with 512 MB of RAM?) > > However, we shouldn't have to do this kind of hacks with > MAPPING_BEYOND_END, and we *certainly* shouldn't do it by implicitly > hard-coding the value of PAGE_SHIFT. >
The calculation was correct - this thread title is a false alarm.
The difference posted was caused by disabling the "has pae" in the build configuration system. So I just need to dig around in head.S a bit more - get rid of the "Intel Only" hard coding, check if the pae bit is a hardwired zero in cr4, make sure I have a usable stack before the testing - since the test may generate a GP fault. . . Get the in-memory copy of the cpu feature flags correct (some are defined but not implemented on this processor). . . Then find and fix everything that isn't using 'cpu_has(x, y)' -
That should keep me busy for a few weeks. ;)
Mike > -hpa >
|  |