[PATCH 0/2] [P/omap4] Remove the CMA

Clark, Rob rob at ti.com
Wed Jan 25 13:58:27 UTC 2012


if we are going to anyways have a kernel which enables multimedia in
the TI PPA, I think it is safe to revert CMA..  I'm not entirely sure
why that carveout would help, unless it is avoiding that the CMA pool
is created in highmem somehow (which is a known issue w/ current CMA)

I'm using CMA without this issue on 3.3-rc1, and had previously used
it on various 3.2-rc's.. but with a 2g/2g memory split to avoid
highmem.

BR,
-R

On Wed, Jan 25, 2012 at 5:40 AM, Paolo Pisati
<paolo.pisati at canonical.com> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 01/24/2012 06:27 PM, Clark, Rob wrote:
> > Could someone be a bit more specific than "CMA is causing issue
> > that disappear when we add the memory hole in the bootargs"?
> >
> > If you aren't using syslink2 then you don't need the whole in
> > memory. But there are some potential highmem issues w/ CMA.
> > (Building kernel w/ 2g/2g split is one possible workaround now)
>
> On a 3.2.1 + agreen's kernel-tilt/tilt-tracking @ c39eb9613c [1],
> during boot we got this:
>
> http://paste.ubuntu.com/814182/
>
> with these boot arguments:
>
> http://paste.ubuntu.com/814183/
>
> ...
> [    2.593322] __alloc_from_pool: coherent pool not initialised!
> ...
>
> comes from arch/arm/mm/dma-mapping.c::__alloc_from_pool():
>
> ...
>    if (!coherent_head.vm_start) {
>        printk(KERN_ERR "%s: coherent pool not initialised!\n",
>               __func__);
>        dump_stack();
>        return NULL;
>    }
> ...
>
> and coherent_head.vm_start is initialized in coherent_init() (called
> from postcore_initcall()):
>
> ...
>    ptr = __alloc_from_contiguous(NULL, size, prot, &page);
>    if (ptr) {
>        coherent_head.vm_start = (unsigned long) ptr;
>        coherent_head.vm_end = (unsigned long) ptr + size;
>        printk(KERN_INFO "DMA: preallocated %u KiB pool for atomic
> coherent allocations\n",
>               (unsigned)size / 1024);
>        return 0;
>    }
>    printk(KERN_ERR "DMA: failed to allocate %u KiB pool for atomic
> coherent allocation\n",
>           (unsigned)size / 1024);
>    return -ENOMEM;
>
> ...
> [    0.339477] DMA: failed to allocate 256 KiB pool for atomic
> coherent allocation
> ...
>
> __alloc_from_contiguous():
>
>   pr_err("__alloc_from_contiguous: count=%lu, order=%lu\n", (unsigned
> long)count, order);
>
>    page = dma_alloc_from_contiguous(dev, count, order);
>    if (!page)
>        return NULL;
>
>    pr_err("__alloc_from_contiguous: page=%p, size=%lu\n", page,
> (unsigned long)size);
>
> ...
> [    0.330535] __alloc_from_contiguous: count=64, order=6
> [    0.330810] Trying to unpack rootfs image as initramfs...
> [    0.339477] DMA: failed to allocate 256 KiB pool for atomic
> coherent allocation
> ...
>
> I didn't notice this panic when i did the first rebase because i had
> these arguments in my bootargs:
>
> mem=456M at 0x80000000 mem=512M at 0xA0000000
>
> as these somehow workarounded the problem and made the kernel boot.
>
> Now, since all of this came with CMA, and CMA is not in mainline and
> we already need hacks to make it work (e.g. 4b345a6 and dce4ad0), i
> thought the best solution (with alpha2 kernel freeze approaching) was
> to revert CMA and so i did (and rbasak confirmed the revert fixed all
> the issues he saw).
>
> I hope this time it's a bit more clear for anyone.
>
> 1:
> http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-precise.git;a=shortlog;h=refs/heads/ti-omap4
> - --
> bye,
> p.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQIcBAEBAgAGBQJPH+pAAAoJEJdscTmfuQbQzhMP/274JECf053+KkvRe/qUuiAV
> QVVruNnYWBzWYESV/xu6HoGhN/3ubP+A2e4nJ26GSsj/JfZ0MF8vwsLzbg66Ido3
> Kxw1YI8OuSJw9cLxVhXWq9muvoPF65K7gjn3ggYqqEJmB+LT9FBt4UPnFPU+RaoA
> j4/poJe7J2lKLcty8AwcxypERef6QPKFyX+OWsXumvfTVI9oD1mRVO07lpVhxKYR
> Lim8Q50FSk30tBdBKOxhI6OztaW8x5lbJ4c6CsjyDfV9hhJiXin2ZbcH/QgADGMg
> XiWu8cDnI+9BTtNgR3Z2zWX4dpyetXx2Mjqe67OECqFKE/LQ+pjEWgu3dTm3F6Mf
> abpGuluzxMfYiDn6xY/T5N1oSSj7QiDmQc6QHyluzvKuDi/HFTxJUOTqQ0UjzrYE
> 8wbF60cScTITvb20JXvQshekaS8xSTP9QQ6i2+us82AiY2QNNQ+X3Ukxq415n4dm
> iQ39FB/q9a0PoZ5eS0VO1iUP4mn7AnaXL/5w76kTq+0a7rDLpIlEf0UtNUpSuD8z
> Pj0yCItMcf5sgp2rxshJoj0b8WUulnHqchlCCLxKgYKh5cVFEgPbZb0Su6pEMbrI
> 7zvph94LBzuW9Invvp60NNB/j+u52KQtubhGQ6T0cBxlHPjbzrBVDbyWXRCMsNvr
> 4X0n+BeoQ4rFHzzeRS9m
> =yk30
> -----END PGP SIGNATURE-----




More information about the kernel-team mailing list