problem with 1GB pages?

Alan Cox alc at rice.edu
Mon Nov 14 17:01:55 UTC 2011


On 11/14/2011 03:19, Andriy Gapon wrote:
> Please disregard my report.
> I've tracked the problem to one of the new modules being faulty.  But memtest86*
> tools still don't detect any issues with it.  Apparently FreeBSD is a much more
> thorough memory tester than the specialized tools :-)
> Apologies for the noise.

Interesting, nonetheless.  I would have never guessed that disabling 1 
GB pages would mask a problem due to faulty memory.

Alan

> on 12/11/2011 12:47 Andriy Gapon said the following:
>> Introduction.
>> I have an AMD-based system with a Fam10h CPU (with 1GB pages support), the
>> system chipset contains an integrated graphics device (that uses a region of the
>> main memory as a graphics memory).  The chipset supports memory hoisting to
>> compensate for the PCI memory window and the graphics aperture both of which are
>> located below 4GB.
>> The latest OS version installed on this system is 9-CURRENT from the middle of
>> September (r225560), architecture is amd64.
>> Until recently the system had 4GB of RAM installed and I had no problems with it
>> whatsoever.
>>
>> Recently though I have added another 4GB of RAM to the system.  Before booting
>> to FreeBSD I tested the memory with multiple passes of memtest86 and
>> memetest86+, no errors were detected by those.
>> However with FreeBSD I immediately started getting "flaky memory" symptoms like
>> multiple internal compiler errors during compilation of non-trivially sized
>> projects (world, libreoffice).
>> I re-run memory tests which again revealed nothing and then started playing with
>> various VM subsystem and memory related knobs in FreeBSD.  I recalled that a
>> long while ago there were some problems with 1GB pages and so their use used to
>> be disabled.  On a hunch I disabled 1GB pages again:
>> @@ -471,7 +471,7 @@ create_pagetables(vm_paddr_t *firstaddr)
>>                  ndmpdp = 4;
>>          DMPDPphys = allocpages(firstaddr, NDMPML4E);
>>          ndm1g = 0;
>> -       if ((amd_feature&  AMDID_PAGE1GB) != 0)
>> +       if (0&&  (amd_feature&  AMDID_PAGE1GB) != 0)
>>                  ndm1g = ptoa(Maxmem)>>  PDPSHIFT;
>>          if (ndm1g<  ndmpdp)
>>                  DMPDphys = allocpages(firstaddr, ndmpdp - ndm1g);
>>
>> And the flakiness went away.
>>
>> Not sure what kind of useful information I should provide with this report.
>> Here's couple of things that I think could be of use.
>>
>> - memcontrol list output
>> http://people.freebsd.org/~avg/8gb%2b512mb.memcontrol.list.txt
>>
>> - BIOS memory map
>> SMAP type=01 base=0000000000000000 end=000000000009f800 len=000000000009f800
>> SMAP type=02 base=00000000000f0000 end=0000000000100000 len=0000000000010000
>> SMAP type=02 base=00000000fec00000 end=0000000100000000 len=0000000001400000
>> SMAP type=02 base=00000000e0000000 end=00000000f0000000 len=0000000010000000
>> SMAP type=02 base=000000000009f800 end=00000000000a0000 len=0000000000000800
>> SMAP type=02 base=00000000afdf0000 end=00000000afe00000 len=0000000000010000
>> SMAP type=01 base=0000000000100000 end=00000000afde0000 len=00000000afce0000
>> SMAP type=03 base=00000000afde3000 end=00000000afdf0000 len=000000000000d000
>> SMAP type=04 base=00000000afde0000 end=00000000afde3000 len=0000000000003000
>> SMAP type=01 base=0000000100000000 end=0000000230000000 len=0000000130000000
>>
>> - dmesg snippet
>> CPU: AMD Athlon(tm) II X2 250 Processor (3013.78-MHz K8-class CPU)
>>    Origin = "AuthenticAMD"  Id = 0x100f62  Family = 10  Model = 6  Stepping = 2
>>
>> Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
>>    Features2=0x802009<SSE3,MON,CX16,POPCNT>
>>    AMD Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!>
>>    AMD
>> Features2=0x37ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS,SKINIT,WDT>
>>    TSC: P-state invariant
>> real memory  = 8589934592 (8192 MB)
>> avail memory = 7617662976 (7264 MB)
>>
>> - Top Of Memory MSR
>> MSR 0xc001001a: 0x00000000 0xd0000000
>>
>> - Top Of Memory 2 MSR
>> MSR 0xc001001d: 0x00000002 0x30000000
>>
>> - System configuration MSR
>> MSR 0xc0010010: 0x00000000 0x00760600
>>
>> Please let me know if you have any ideas or requests for additional information
>> or testing.
>> Thank you.
>



More information about the freebsd-current mailing list