[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