Re: [PATCH v6 3/4] arm64: use both ZONE_DMA and ZONE_DMA32
From: Qian Cai
Date: Mon Oct 21 2019 - 16:37:03 EST
> On Oct 21, 2019, at 1:55 PM, Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx> wrote:
>
> On Mon, 2019-10-21 at 13:25 -0400, Qian Cai wrote:
>>> On Oct 21, 2019, at 1:01 PM, Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>
>>> wrote:
>>>
>>> Could you enable CMA debugging to see if anything interesting comes out of
>>> it.
>>
>> I did but nothing interesting came out. Did you use the same config I gave?
>
> Yes, aside from enabling ZONE_DMA.
>
>> Also, it has those cmdline.
>>
>> page_poison=on page_owner=on numa_balancing=enable \
>> systemd.unified_cgroup_hierarchy=1 debug_guardpage_minorder=1 \
>> page_alloc.shuffle=1
>
> No luck, still works for me even after adding those extra flags. IIRC most of
> them (if not all) are not even parsed by the time CMA is configured.
>
> So, can you confirm the zones setup you're seeing is similar to this one:
>
> [ 0.000000][ T0] Zone ranges:
> [ 0.000000][ T0] DMA [mem 0x00000000802f0000-0x00000000bfffffff]
> [ 0.000000][ T0] DMA32 [mem 0x00000000c0000000-0x00000000ffffffff]
> [ 0.000000][ T0] Normal [mem 0x0000000100000000-0x00000093fcffffff]
>
> Maybe your memory starts between 0xe0000000-0xffffffff. That would be
> problematic (although somewhat unwarranted).
I managed to get more information here,
[ 0.000000] cma: dma_contiguous_reserve(limit c0000000)
[ 0.000000] cma: dma_contiguous_reserve: reserving 64 MiB for global area
[ 0.000000] cma: cma_declare_contiguous(size 0x0000000004000000, base 0x0000000000000000, limit 0x00000000c0000000 alignment 0x0000000000000000)
[ 0.000000] cma: Failed to reserve 512 MiB
Full dmesg:
https://cailca.github.io/files/dmesg.txt