[Letux-kernel] 2GB vs. 4GB Pyra RAM tests

Michael Mrozek EvilDragon at openpandora.org
Wed Jul 26 16:48:35 CEST 2017


Am Mittwoch, den 26.07.2017, 13:04 +0200 schrieb H. Nikolaus Schaller:

Hi,

one idea we had on IRC a while ago:
Maybe try a different clockspeed for the DRAM to see if that changes
thing. It supports multiple ones.

> Hi,
> finally I found enough undisturbed time to run the tests
> I had planned for a long time.
> 
> I tested with a single SD card with Letux-Debian8.9-LXDE
> rootfs and overwriting kernel/U-Boot as required by:
> 
> a) letux-4.13-rc2 standard kernel - http://download.goldelico.com/let
> ux-kernel/letux-4.13-rc2/
> b) letux-4.13-rc2 LPAE kernel - http://download.goldelico.com/letux-k
> ernel/letux-4.13-rc2-lpae/
> 
> A) U-Boot with 2GB RAM config - http://download.goldelico.com/letux-u
> -boot/Pyra+LC15/latest/
> B) U-Boot with 4GB RAM config - http://download.goldelico.com/letux-u
> -boot/Pyra+LC15-4GB/latest/
> 
> The 4GB EMIF config is here:
> 
> <http://git.goldelico.com/?p=gta04-uboot.git;a=blobdiff;f=board/golde
> lico/letux-
> cortex15/lc15.c;h=280da2095da9a780475fe3d59e79d283b050f02d;hp=709865c
> be0f10d389634924d3b57c5731c184429;hb=0c5e26e7886ea7d2d934f65e2e6cbf15
> a2b52bc8;hpb=be096ca0c2b204897b84c45e709511184b3a4059>
> 
> 1) 2GB Pyra (C22 + M04)
> 2) 4GB Pyra (C48 + M28)
> 
> For each combination, I did try to boot, login and run "memtester
> 1500MB".
> memtester 3000MB is rejected for 2GB modes of course.
> 
> Here are the results:
> 
> Aa1)	2GB RAM visible, everything ok, memtester 1500M
> successful
> Aa2)	2GB RAM visible, boot sometimes hangs, memtester 1500M
> successful
> Ab1)	2GB RAM visible, everything ok, memtester 1500M
> successful
> Ab2)	2GB RAM visible, boot sometimes hangs, memtester 1500M
> successful
> Ba1)	U-Boot rejects device (SDRAM: identified size not same as
> expected)
> Ba2)	2GB RAM visible, boot sometimes hangs, memtester 1500M
> successful
> Bb1)	U-Boot rejects device (SDRAM: identified size not same as
> expected)
> Bb2)	4GB RAM visible, boot more often hangs, memtester 1500M
> successful,
> 	memtester 3000M sometimes hangs after requesting 3GB, sometimes
> successful
> 
> Now comes the difficult interpretation.
> * generally this 4GB Pyra is less stable. Could be RAM induced
>   or something else. The test does not give a clear indication.
> * the 2GB Pyra runs stable in all configurations
> * 4GB and LPAE makes Linux boot fail more often
> * it is possible to use the complete 4GB RAM, but not reliably
> 
> So I suspect a mixture of multiple effects. One makes the 4GB
> device I have tested less stable.
> 
> And the other could be an LPAE issue that makes 4GB only useable
> in certain good cases (I could imagine it depends on how the
> virtual paging mechanism randomly allocates RAM). But it could
> still be the 4GB RAM chips or config being less stable due to
> higher noise or power consumption or whatever.
> 
> Attached is an excerpt of the boot log and successful 3GB memtester
> output (the "BUG" occurs for non-lpae kernel as well - so it is not
> influencing the outcome).
> 
> BR,
> Nikolaus
> 
> 
> Starting kernel ...
> 
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 4.13.0-rc2-letux-lpae+ (hns at iMac.local)
> (gcc version 4.9.2 (GCC)) #1297 SMP PREEMPT Mon Jul 24 13:08:10 CEST
> 2017
> [    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7),
> cr=30c5387d
> [    0.000000] CPU: div instructions available: patching division
> code
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT
> instruction cache
> [    0.000000] OF: fdt: Machine model: Pyra-Handheld-V5.1
> [    0.000000] debug: ignoring loglevel setting.
> [    0.000000] Memory policy: Data cache writealloc
> [    0.000000] cma: Reserved 16 MiB at 0x00000000fe000000
> [    0.000000] OMAP4: Map 0x000000027fd00000 to fe600000 for dram
> barrier
> [    0.000000] On node 0 totalpages: 1043712
> [    0.000000] free_area_init_node: node 0, pgdat c108c240,
> node_mem_map ebff7000
> [    0.000000]   DMA zone: 1536 pages used for memmap
> [    0.000000]   DMA zone: 0 pages reserved
> [    0.000000]   DMA zone: 196608 pages, LIFO batch:31
> [    0.000000]   HighMem zone: 847104 pages, LIFO batch:31
> [    0.000000] OMAP5432 ES2.0
> [    0.000000] percpu: Embedded 17 pages/cpu @ebf8f000 s40704 r8192
> d20736 u69632
> [    0.000000] pcpu-alloc: s40704 r8192 d20736 u69632 alloc=17*4096
> [    0.000000] pcpu-alloc: [0] 0 [0] 1 
> [    0.000000] Built 1 zonelists in Zone order, mobility grouping
> on.  Total pages: 1042176
> [    0.000000] Kernel command line: console= root=PARTUUID=6c9bc324-
> 02 rw rootfstype=ext4 rootwait console=ttyO2,115200n8 vram=12M
> omapfb.vram=0:8M,1:4M omapfb.rotate_type=0 omapdss.def_disp=lcd
> rootwait twl4030_charger.allow_usb=1 musb_hdrc.preserve_vbus=1
> log_buf_len=8M ignore_loglevel earlyprintk
> [    0.000000] log_buf_len: 8388608 bytes
> [    0.000000] early log buf free: 63840(97%)
> [    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
> [    0.000000] Dentry cache hash table entries: 131072 (order: 7,
> 524288 bytes)
> [    0.000000] Inode-cache hash table entries: 65536 (order: 6,
> 262144 bytes)
> [    0.000000] Memory: 4093388K/4174848K available (8192K kernel
> code, 586K rwdata, 2240K rodata, 2048K init, 7999K bss, 65076K
> reserved, 16384K cma-reserved, 3372032K highmem)
> [    0.000000] Virtual kernel memory layout:
> [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
> [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
> [    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
> [    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
> [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
> [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
> [    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
> [    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
> [    0.000000]       .data : 0xc1000000 - 0xc1092900   ( 587 kB)
> [    0.000000]        .bss : 0xc1092900 - 0xc1862684   (8000 kB)
> [    0.000000] Running RCU self tests
> [    0.000000] Preemptible hierarchical RCU implementation.
> [    0.000000]  RCU lockdep checking is enabled.
> [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> [    0.000000] GIC: Using split EOI/Deactivate mode
> [    0.000000] OMAP clockevent source: timer1 at 32768 Hz
> [    0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
> [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
> max_cycles: 0x16ac02862, max_idle_ns: 440795202218 ns
> [    0.000006] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps
> every 4398046511085ns
> [    0.000024] Switching to timer-based delay loop, resolution 162ns
> 
> ...
> 
> [    2.220127] Power Management for TI OMAP4+ devices.
> [    2.225399] BUG: using smp_processor_id() in preemptible
> [00000000] code: swapper/0/1
> [    2.233704] caller is pwrdm_set_next_pwrst+0x48/0x1d8
> [    2.239024] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.13.0-rc2-
> letux-lpae+ #1297
> [    2.246970] Hardware name: Generic OMAP5 (Flattened Device Tree)
> [    2.253288] [<c020eaf0>] (unwind_backtrace) from [<c020afec>]
> (show_stack+0x10/0x14)
> [    2.261417] [<c020afec>] (show_stack) from [<c084c048>]
> (dump_stack+0x98/0xd0)
> [    2.269000] [<c084c048>] (dump_stack) from [<c055270c>]
> (check_preemption_disabled+0xec/0x124)
> [    2.278042] [<c055270c>] (check_preemption_disabled) from
> [<c022032c>] (pwrdm_set_next_pwrst+0x48/0x1d8)
> [    2.287990] [<c022032c>] (pwrdm_set_next_pwrst) from [<c0e0cdd0>]
> (omap4_mpuss_init+0xb4/0x23c)
> [    2.297123] [<c0e0cdd0>] (omap4_mpuss_init) from [<c0e0d1ec>]
> (omap4_pm_init+0xf4/0x164)
> [    2.305611] [<c0e0d1ec>] (omap4_pm_init) from [<c0e0a3f4>]
> (omap5_init_late+0x10/0x18)
> [    2.313920] [<c0e0a3f4>] (omap5_init_late) from [<c0e03560>]
> (init_machine_late+0x1c/0x90)
> [    2.322595] [<c0e03560>] (init_machine_late) from [<c02018d8>]
> (do_one_initcall+0xa8/0x150)
> [    2.331356] [<c02018d8>] (do_one_initcall) from [<c0e00d94>]
> (kernel_init_freeable+0x110/0x1d4)
> [    2.340482] [<c0e00d94>] (kernel_init_freeable) from [<c085d678>]
> (kernel_init+0x8/0x10c)
> [    2.349067] [<c085d678>] (kernel_init) from [<c0206ee8>]
> (ret_from_fork+0x14/0x2c)
> [    2.357093] BUG: using smp_processor_id() in preemptible
> [00000000] code: swapper/0/1
> [    2.357491] ata1: SATA link down (SStatus 0 SControl 300)
> 
> ...
> 
> letux login: root
> Password: 
> Last login: Sat Jan  1 01:38:48 UTC 2000 on console
> Linux letux 4.13.0-rc2-letux-lpae+ #1297 SMP PREEMPT Mon Jul 24
> 13:08:10 CEST 2017 armv7l
> 
> The programs included with the Debian GNU/Linux system are free
> software;
> the exact distribution terms for each program are described in the
> individual files in /usr/share/doc/*/copyright.
> 
> Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
> permitted by applicable law.
> root at letux:~# cat /proc/meminfo 
> MemTotal:        4111820 kB
> MemFree:         3840616 kB
> MemAvailable:    4022440 kB
> Buffers:            9284 kB
> Cached:           213588 kB
> SwapCached:            0 kB
> Active:           145492 kB
> Inactive:          91496 kB
> Active(anon):      14208 kB
> Inactive(anon):     5392 kB
> Active(file):     131284 kB
> Inactive(file):    86104 kB
> Unevictable:           0 kB
> Mlocked:               0 kB
> HighTotal:       3388416 kB
> HighFree:        3156312 kB
> LowTotal:         723404 kB
> LowFree:          684304 kB
> SwapTotal:             0 kB
> SwapFree:              0 kB
> Dirty:                32 kB
> Writeback:             0 kB
> AnonPages:         14056 kB
> Mapped:             8260 kB
> Shmem:              5488 kB
> Slab:                 32 kB
> SReclaimable:          0 kB
> SUnreclaim:           32 kB
> KernelStack:         720 kB
> PageTables:          280 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:     2055908 kB
> Committed_AS:      47460 kB
> VmallocTotal:     245760 kB
> VmallocUsed:           0 kB
> VmallocChunk:          0 kB
> CmaTotal:          16384 kB
> CmaFree:           13704 kB
> root at letux:~# memtester 3000m
> memtester version 4.3.0 (32-bit)
> Copyright (C) 2001-2012 Charles Cazabon.
> Licensed under the GNU General Public License version 2 (only).
> 
> pagesize is 4096
> pagesizemask is 0xfffff000
> want 3000MB (3145728000 bytes)
> got  2924MB (3067002880 bytes), trying mlock ...locked.
> Loop 1:
>   Stuck Address       : ok         
>   Random Value        : ok
>   Compare XOR         : ok
>   Compare SUB         : ok
>   Compare MUL         : ok
>   Compare DIV         : ok
>   Compare OR          : ok
>   Compare AND         : ok
>   Sequential Increment: ok
>   Solid Bits          : ok         
>   Block Sequential    : ok         
>   Checkerboard        : ok         
>   Bit Spread          : ok         
>   Bit Flip            : ok         
>   Walking Ones        : ok         
>   Walking Zeroes      : ok         
>   8-bit Writes        : ok
>   16-bit Writes       : ok
> 
> Loop 2:
>   Stuck Address       : setting  14^C
> root at letux:~# 
> _______________________________________________
> Kernel mailing list
> Kernel at pyra-handheld.com
> http://pyra-handheld.com/cgi-bin/mailman/listinfo/kernel
-- 
Mit freundlichen Grüßen,

Michael Mrozek

-----------------------
OpenPandora GmbH
Geschäftsführer: Michael Mrozek

Schäffbräustr. 11
85049 Ingolstadt
Deutschland
Tel.: 0841 / 990 5548
http://www.openpandora.de/
HRB 4879, Amtsgericht Ingolstadt
-----------------------
eMail: mrozek at openpandora.org


More information about the Letux-kernel mailing list