ARM_LPAE + VMSPLIT_2G cause swiotlb warning on Raspberry Pi 4
Stefan Wahren
stefan.wahren at i2se.com
Wed May 17 03:24:43 PDT 2023
Hi Robin,
Am 17.05.23 um 12:06 schrieb Robin Murphy:
> On 2023-05-17 07:23, Stefan Wahren wrote:
>> Hi,
>>
>> Am 17.05.23 um 00:17 schrieb Florian Fainelli:
...
>>
>> [ 1.419785] ------------[ cut here ]------------
>> [ 1.419811] WARNING: CPU: 2 PID: 1 at include/linux/dma-direct.h:36
>> dma_map_page_attrs+0x360/0x368
>> [ 1.419862] Unable to xlate: 0x000000006ffd9000
>
> This suggests that the SWIOTLB buffer itself has somehow been allocated
> from ZONE_NORMAL rather than ZONE_DMA (unfortunately you trimmed the log
> line from swiotlb_print_info() saying exactly where it is). That can't
> happen with VMSPLIT_3G where we have less than 1GB of lowmem anyway,
> which explains that difference. I don't have an idea off-hand why LPAE
> would affect it.
This one?
[ 0.000000] Dentry cache hash table entries: 262144 (order: 8,
1048576 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288
bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: area num 4.
[ 0.000000] software IO TLB: mapped [mem
0x0000000069e7f000-0x000000006de7f000] (64MB)
[ 0.000000] Memory: 3856044K/4050944K available (16384K kernel code,
2481K rwdata, 6284K rodata, 2048K init, 430K bss, 129364K reserved,
65536K cma-reserved, 2293760K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
>
> Thanks,
> Robin.
>
>> [ 1.419879] Modules linked in:
>> [ 1.419902] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.3.0-dirty #11
>> [ 1.419926] Hardware name: BCM2711
>> [ 1.419950] unwind_backtrace from show_stack+0x10/0x14
>> [ 1.419990] show_stack from dump_stack_lvl+0x40/0x4c
>> [ 1.420031] dump_stack_lvl from __warn+0x7c/0x124
>> [ 1.420077] __warn from warn_slowpath_fmt+0x118/0x174
>> [ 1.420122] warn_slowpath_fmt from dma_map_page_attrs+0x360/0x368
>> [ 1.420169] dma_map_page_attrs from bcm2835_dma_probe+0x1d8/0x41c
>> [ 1.420215] bcm2835_dma_probe from platform_probe+0x5c/0xbc
>> [ 1.420262] platform_probe from really_probe+0xc8/0x2dc
>> [ 1.420300] really_probe from __driver_probe_device+0x84/0xe4
>> [ 1.420335] __driver_probe_device from driver_probe_device+0x30/0x104
>> [ 1.420369] driver_probe_device from __driver_attach+0x90/0x174
>> [ 1.420403] __driver_attach from bus_for_each_dev+0x6c/0xb4
>> [ 1.420435] bus_for_each_dev from bus_add_driver+0xcc/0x1cc
>> [ 1.420465] bus_add_driver from driver_register+0x7c/0x118
>> [ 1.420498] driver_register from do_one_initcall+0x40/0x1e0
>> [ 1.420534] do_one_initcall from kernel_init_freeable+0x1b8/0x220
>> [ 1.420578] kernel_init_freeable from kernel_init+0x18/0x12c
>> [ 1.420627] kernel_init from ret_from_fork+0x14/0x1c
>> [ 1.420662] Exception stack(0xf081dfb0 to 0xf081dff8)
>> [ 1.420684] dfa0: 00000000
>> 00000000 00000000 00000000
>> [ 1.420710] dfc0: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00000000 00000000
>> [ 1.420734] dfe0: 00000000 00000000 00000000 00000000 00000013
>> 00000000
>> [ 1.420753] ---[ end trace 0000000000000000 ]---
>> [ 1.420771] ------------[ cut here ]------------
>> [ 1.420785] WARNING: CPU: 2 PID: 1 at include/linux/dma-direct.h:36
>> swiotlb_map+0x1dc/0x3e4
>> [ 1.420829] Unable to xlate: 0x000000006ffd9000
>> [ 1.420844] Modules linked in:
>> [ 1.420863] CPU: 2 PID: 1 Comm: swapper/0 Tainted: G W
>> 6.3.0-dirty #11
>> [ 1.420890] Hardware name: BCM2711
>> [ 1.420906] unwind_backtrace from show_stack+0x10/0x14
>> [ 1.420942] show_stack from dump_stack_lvl+0x40/0x4c
>> [ 1.420978] dump_stack_lvl from __warn+0x7c/0x124
>> [ 1.421021] __warn from warn_slowpath_fmt+0x118/0x174
>> [ 1.421066] warn_slowpath_fmt from swiotlb_map+0x1dc/0x3e4
>> [ 1.421114] swiotlb_map from dma_map_page_attrs+0x210/0x368
>> [ 1.421159] dma_map_page_attrs from bcm2835_dma_probe+0x1d8/0x41c
>> [ 1.421201] bcm2835_dma_probe from platform_probe+0x5c/0xbc
>> [ 1.421244] platform_probe from really_probe+0xc8/0x2dc
>> [ 1.421281] really_probe from __driver_probe_device+0x84/0xe4
>> [ 1.421314] __driver_probe_device from driver_probe_device+0x30/0x104
>> [ 1.421348] driver_probe_device from __driver_attach+0x90/0x174
>> [ 1.421382] __driver_attach from bus_for_each_dev+0x6c/0xb4
>> [ 1.421413] bus_for_each_dev from bus_add_driver+0xcc/0x1cc
>> [ 1.421442] bus_add_driver from driver_register+0x7c/0x118
>> [ 1.421475] driver_register from do_one_initcall+0x40/0x1e0
>> [ 1.421509] do_one_initcall from kernel_init_freeable+0x1b8/0x220
>> [ 1.421551] kernel_init_freeable from kernel_init+0x18/0x12c
>> [ 1.421599] kernel_init from ret_from_fork+0x14/0x1c
>> [ 1.421634] Exception stack(0xf081dfb0 to 0xf081dff8)
>> [ 1.421654] dfa0: 00000000
>> 00000000 00000000 00000000
>> [ 1.421679] dfc0: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00000000 00000000
>> [ 1.421704] dfe0: 00000000 00000000 00000000 00000000 00000013
>> 00000000
>> [ 1.421722] ---[ end trace 0000000000000000 ]---
>> [ 1.421747] ------------[ cut here ]------------
>>
>>>
>>> Thanks!
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list