[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <xa1tlhiwompd.fsf@mina86.com>
Date: Mon, 16 Mar 2015 18:51:10 +0100
From: Michal Nazarewicz <mina86@...a86.com>
To: Stefan Strogin <s.strogin@...tner.samsung.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Cc: Stefan Strogin <s.strogin@...tner.samsung.com>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Marek Szyprowski <m.szyprowski@...sung.com>,
aneesh.kumar@...ux.vnet.ibm.com,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Dmitry Safonov <d.safonov@...tner.samsung.com>,
Pintu Kumar <pintu.k@...sung.com>,
Weijie Yang <weijie.yang@...sung.com>,
Laura Abbott <lauraa@...eaurora.org>,
SeongJae Park <sj38.park@...il.com>,
Hui Zhu <zhuhui@...omi.com>, Minchan Kim <minchan@...nel.org>,
Dyasly Sergey <s.dyasly@...sung.com>,
Vyacheslav Tyrtov <v.tyrtov@...sung.com>,
Aleksei Mateosian <a.mateosian@...sung.com>,
gregory.0xf0@...il.com, sasha.levin@...cle.com, gioh.kim@....com,
pavel@....cz, stefan.strogin@...il.com
Subject: Re: [PATCH v4 4/5] mm: cma: add list of currently allocated CMA buffers to debugfs
On Mon, Mar 16 2015, Stefan Strogin wrote:
> When CONFIG_CMA_BUFFER_LIST is configured a file is added to debugfs:
> /sys/kernel/debug/cma/cma-<N>/buffers contains a list of currently allocated
> CMA buffers for each CMA region (N stands for number of CMA region).
>
> Format is:
> <base_phys_addr> - <end_phys_addr> (<size> kB), allocated by <PID> (<comm>)
>
> When CONFIG_CMA_ALLOC_STACKTRACE is configured then stack traces are saved when
> the allocations are made. The stack traces are added to cma/cma-<N>/buffers
> for each buffer list entry.
>
> Example:
>
> root@...ian:/sys/kernel/debug/cma# cat cma-0/buffers
> 0x2f400000 - 0x2f417000 (92 kB), allocated by pid 1 (swapper/0)
> [<c1142c4b>] cma_alloc+0x1bb/0x200
> [<c143d28a>] dma_alloc_from_contiguous+0x3a/0x40
> [<c10079d9>] dma_generic_alloc_coherent+0x89/0x160
> [<c14456ce>] dmam_alloc_coherent+0xbe/0x100
> [<c1487312>] ahci_port_start+0xe2/0x210
> [<c146e0e0>] ata_host_start.part.28+0xc0/0x1a0
> [<c1473650>] ata_host_activate+0xd0/0x110
> [<c14881bf>] ahci_host_activate+0x3f/0x170
> [<c14854e4>] ahci_init_one+0x764/0xab0
> [<c12e415f>] pci_device_probe+0x6f/0xd0
> [<c14378a8>] driver_probe_device+0x68/0x210
> [<c1437b09>] __driver_attach+0x79/0x80
> [<c1435eef>] bus_for_each_dev+0x4f/0x80
> [<c143749e>] driver_attach+0x1e/0x20
> [<c1437197>] bus_add_driver+0x157/0x200
> [<c14381bd>] driver_register+0x5d/0xf0
> <...>
>
> Signed-off-by: Stefan Strogin <stefan.strogin@...il.com>
Acked-by: Michal Nazarewicz <mina86@...a86.com>
> @@ -127,6 +240,93 @@ static int cma_alloc_write(void *data, u64 val)
>
> DEFINE_SIMPLE_ATTRIBUTE(cma_alloc_fops, NULL, cma_alloc_write, "%llu\n");
>
> +#ifdef CONFIG_CMA_BUFFER_LIST
> +static void *s_start(struct seq_file *seq, loff_t *ppos)
> +{
> + struct cma *cma = seq->private;
> + struct cma_buffer *cmabuf;
> + loff_t n = *ppos;
> +
> + mutex_lock(&cma->list_lock);
> + cmabuf = list_first_entry(&cma->buffer_list, typeof(*cmabuf), list);
> + list_for_each_entry(cmabuf, &cma->buffer_list, list)
> + if (n-- == 0)
> + return cmabuf;
> +
> + return 0;
return NULL;
> +}
--
Best regards, _ _
.o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o
..o | Computer Science, Michał “mina86” Nazarewicz (o o)
ooo +--<mpn@...gle.com>--<xmpp:mina86@...ber.org>--ooO--(_)--Ooo--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists