On Fri, Feb 5, 2021 at 2:56 AM Christian König <christian.koenig@xxxxxxx> wrote: > > Am 05.02.21 um 03:23 schrieb Kalesh Singh: > > If a FD refers to a DMA buffer add the DMA buffer inode number to > > /proc/<pid>/fdinfo/<FD> and /proc/<pid>/task/<tid>/fdindo/<FD>. > > > > The dmabuf inode number allows userspace to uniquely identify the buffer > > and avoids a dependency on /proc/<pid>/fd/* when accounting per-process > > DMA buffer sizes. > > BTW: Why do we make this DMA-buf specific? Couldn't we always print the > inode number for all fds? Good point. We can make this a common field instead of DMA buf specific. I will update in the next version. Thanks, Kalesh > > Regards, > Christian. > > > > > Signed-off-by: Kalesh Singh <kaleshsingh@xxxxxxxxxx> > > --- > > Changes in v3: > > - Add documentation in proc.rst > > Changes in v2: > > - Update patch description > > > > Documentation/filesystems/proc.rst | 17 +++++++++++++++++ > > drivers/dma-buf/dma-buf.c | 1 + > > 2 files changed, 18 insertions(+) > > > > diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst > > index 2fa69f710e2a..fdd38676f57f 100644 > > --- a/Documentation/filesystems/proc.rst > > +++ b/Documentation/filesystems/proc.rst > > @@ -2031,6 +2031,23 @@ details]. 'it_value' is remaining time until the timer expiration. > > with TIMER_ABSTIME option which will be shown in 'settime flags', but 'it_value' > > still exhibits timer's remaining time. > > > > +DMA Buffer files > > +~~~~~~~~~~~~~~~~ > > + > > +:: > > + > > + pos: 0 > > + flags: 04002 > > + mnt_id: 9 > > + dmabuf_inode_no: 63107 > > + size: 32768 > > + count: 2 > > + exp_name: system-heap > > + > > +where 'dmabuf_inode_no' is the unique inode number of the DMA buffer file. > > +'size' is the size of the DMA buffer in bytes. 'count' is the file count of > > +the DMA buffer file. 'exp_name' is the name of the DMA buffer exporter. > > + > > 3.9 /proc/<pid>/map_files - Information about memory mapped files > > --------------------------------------------------------------------- > > This directory contains symbolic links which represent memory mapped files > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > > index 9ad6397aaa97..d869099ede83 100644 > > --- a/drivers/dma-buf/dma-buf.c > > +++ b/drivers/dma-buf/dma-buf.c > > @@ -414,6 +414,7 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file) > > { > > struct dma_buf *dmabuf = file->private_data; > > > > + seq_printf(m, "dmabuf_inode_no:\t%lu\n", file_inode(file)->i_ino); > > seq_printf(m, "size:\t%zu\n", dmabuf->size); > > /* Don't count the temporary reference taken inside procfs seq_show */ > > seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1); >