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@debian:/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@xxxxxxxxx> Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx> > @@ -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@xxxxxxxxxx>--<xmpp:mina86@xxxxxxxxxx>--ooO--(_)--Ooo-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href