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

H. Nikolaus Schaller hns at goldelico.com
Wed Jul 26 17:26:28 CEST 2017


> Am 26.07.2017 um 17:17 schrieb Michael Mrozek <EvilDragon at openpandora.org>:
> 
> Am Mittwoch, den 26.07.2017, 17:00 +0200 schrieb H. Nikolaus Schaller:
> 
> Well, yes. But when U-Boot loads the kernel, a LOT less is going on in
> the system (not all hardware is initialized).
> 
> So if there really is some noise from somewhere, it could be it runs
> more stable with less clockspeed.

Yes. Can't be excluded for sure yet.

Anyways someone with enough knowledge about the EMIF must provide a
patch before I can test anything in that direction.

> 
>> But please consider in a theory that boot problems/hangup is only
>> seen
>> in kernel. I always got working DRAM in U-Boot to load the kernel at
>> default DRAM speed.
>> 
>>> 
>>>> 
>>>>> 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.c
>>>>> om/let
>>>>> ux-kernel/letux-4.13-rc2/
>>>>> b) letux-4.13-rc2 LPAE kernel - http://download.goldelico.com/l
>>>>> etux-k
>>>>> ernel/letux-4.13-rc2-lpae/
>>>>> 
>>>>> A) U-Boot with 2GB RAM config - http://download.goldelico.com/l
>>>>> etux-u
>>>>> -boot/Pyra+LC15/latest/
>>>>> B) U-Boot with 4GB RAM config - http://download.goldelico.com/l
>>>>> etux-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=7
>>>>> 09865c
>>>>> be0f10d389634924d3b57c5731c184429;hb=0c5e26e7886ea7d2d934f65e2e
>>>>> 6cbf15
>>>>> 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.l
>>>>> ocal)
>>>>> (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
>>> 
>>> _______________________________________________
>>> http://projects.goldelico.com/p/gta04-kernel/
>>> Letux-kernel mailing list
>>> Letux-kernel at openphoenux.org
>>> http://lists.goldelico.com/mailman/listinfo.cgi/letux-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