* [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
@ 2021-04-17 16:38 Peter Enderborg
2021-04-20 8:58 ` Daniel Vetter
0 siblings, 1 reply; 19+ messages in thread
From: Peter Enderborg @ 2021-04-17 16:38 UTC (permalink / raw)
To: linux-kernel, linux-fsdevel, Sumit Semwal, Christian König,
Alexey Dobriyan, Andrew Morton, Muchun Song, Roman Gushchin,
Shakeel Butt, Michal Hocko, NeilBrown, Sami Tolvanen,
Mike Rapoport, linux-media, dri-devel, linaro-mm-sig,
Matthew Wilcox
Cc: Peter Enderborg
This adds a total used dma-buf memory. Details
can be found in debugfs, however it is not for everyone
and not always available. dma-buf are indirect allocated by
userspace. So with this value we can monitor and detect
userspace applications that have problems.
Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
---
drivers/dma-buf/dma-buf.c | 12 ++++++++++++
fs/proc/meminfo.c | 5 ++++-
include/linux/dma-buf.h | 1 +
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index f264b70c383e..4dc37cd4293b 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -37,6 +37,7 @@ struct dma_buf_list {
};
static struct dma_buf_list db_list;
+static atomic_long_t dma_buf_global_allocated;
static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
{
@@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
dma_resv_fini(dmabuf->resv);
+ atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
module_put(dmabuf->owner);
kfree(dmabuf->name);
kfree(dmabuf);
@@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
mutex_lock(&db_list.lock);
list_add(&dmabuf->list_node, &db_list.head);
mutex_unlock(&db_list.lock);
+ atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
return dmabuf;
@@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
}
EXPORT_SYMBOL_GPL(dma_buf_vunmap);
+/**
+ * dma_buf_allocated_pages - Return the used nr of pages
+ * allocated for dma-buf
+ */
+long dma_buf_allocated_pages(void)
+{
+ return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
+}
+
#ifdef CONFIG_DEBUG_FS
static int dma_buf_debug_show(struct seq_file *s, void *unused)
{
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index 6fa761c9cc78..ccc7c40c8db7 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -16,6 +16,7 @@
#ifdef CONFIG_CMA
#include <linux/cma.h>
#endif
+#include <linux/dma-buf.h>
#include <asm/page.h>
#include "internal.h"
@@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
show_val_kb(m, "CmaFree: ",
global_zone_page_state(NR_FREE_CMA_PAGES));
#endif
-
+#ifdef CONFIG_DMA_SHARED_BUFFER
+ show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
+#endif
hugetlb_report_meminfo(m);
arch_report_meminfo(m);
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index efdc56b9d95f..5b05816bd2cd 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
unsigned long);
int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
+long dma_buf_allocated_pages(void);
#endif /* __DMA_BUF_H__ */
--
2.17.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-17 16:38 [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo Peter Enderborg
@ 2021-04-20 8:58 ` Daniel Vetter
2021-04-20 9:26 ` Peter.Enderborg
0 siblings, 1 reply; 19+ messages in thread
From: Daniel Vetter @ 2021-04-20 8:58 UTC (permalink / raw)
To: Peter Enderborg
Cc: linux-kernel, linux-fsdevel, Sumit Semwal, Christian König,
Alexey Dobriyan, Andrew Morton, Muchun Song, Roman Gushchin,
Shakeel Butt, Michal Hocko, NeilBrown, Sami Tolvanen,
Mike Rapoport, linux-media, dri-devel, linaro-mm-sig,
Matthew Wilcox
On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
> This adds a total used dma-buf memory. Details
> can be found in debugfs, however it is not for everyone
> and not always available. dma-buf are indirect allocated by
> userspace. So with this value we can monitor and detect
> userspace applications that have problems.
>
> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
So there have been tons of discussions around how to track dma-buf and
why, and I really need to understand the use-cass here first I think. proc
uapi is as much forever as anything else, and depending what you're doing
this doesn't make any sense at all:
- on most linux systems dma-buf are only instantiated for shared buffer.
So there this gives you a fairly meaningless number and not anything
reflecting gpu memory usage at all.
- on Android all buffers are allocated through dma-buf afaik. But there
we've recently had some discussions about how exactly we should track
all this, and the conclusion was that most of this should be solved by
cgroups long term. So if this is for Android, then I don't think adding
random quick stop-gaps to upstream is a good idea (because it's a pretty
long list of patches that have come up on this).
So what is this for?
-Daniel
> ---
> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
> fs/proc/meminfo.c | 5 ++++-
> include/linux/dma-buf.h | 1 +
> 3 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> index f264b70c383e..4dc37cd4293b 100644
> --- a/drivers/dma-buf/dma-buf.c
> +++ b/drivers/dma-buf/dma-buf.c
> @@ -37,6 +37,7 @@ struct dma_buf_list {
> };
>
> static struct dma_buf_list db_list;
> +static atomic_long_t dma_buf_global_allocated;
>
> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
> {
> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
> dma_resv_fini(dmabuf->resv);
>
> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
> module_put(dmabuf->owner);
> kfree(dmabuf->name);
> kfree(dmabuf);
> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
> mutex_lock(&db_list.lock);
> list_add(&dmabuf->list_node, &db_list.head);
> mutex_unlock(&db_list.lock);
> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
>
> return dmabuf;
>
> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
> }
> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
>
> +/**
> + * dma_buf_allocated_pages - Return the used nr of pages
> + * allocated for dma-buf
> + */
> +long dma_buf_allocated_pages(void)
> +{
> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
> +}
> +
> #ifdef CONFIG_DEBUG_FS
> static int dma_buf_debug_show(struct seq_file *s, void *unused)
> {
> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
> index 6fa761c9cc78..ccc7c40c8db7 100644
> --- a/fs/proc/meminfo.c
> +++ b/fs/proc/meminfo.c
> @@ -16,6 +16,7 @@
> #ifdef CONFIG_CMA
> #include <linux/cma.h>
> #endif
> +#include <linux/dma-buf.h>
> #include <asm/page.h>
> #include "internal.h"
>
> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
> show_val_kb(m, "CmaFree: ",
> global_zone_page_state(NR_FREE_CMA_PAGES));
> #endif
> -
> +#ifdef CONFIG_DMA_SHARED_BUFFER
> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
> +#endif
> hugetlb_report_meminfo(m);
>
> arch_report_meminfo(m);
> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> index efdc56b9d95f..5b05816bd2cd 100644
> --- a/include/linux/dma-buf.h
> +++ b/include/linux/dma-buf.h
> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
> unsigned long);
> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> +long dma_buf_allocated_pages(void);
> #endif /* __DMA_BUF_H__ */
> --
> 2.17.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 8:58 ` Daniel Vetter
@ 2021-04-20 9:26 ` Peter.Enderborg
2021-04-20 9:41 ` Mike Rapoport
2021-04-20 11:14 ` Daniel Vetter
0 siblings, 2 replies; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-20 9:26 UTC (permalink / raw)
To: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
On 4/20/21 10:58 AM, Daniel Vetter wrote:
> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
>> This adds a total used dma-buf memory. Details
>> can be found in debugfs, however it is not for everyone
>> and not always available. dma-buf are indirect allocated by
>> userspace. So with this value we can monitor and detect
>> userspace applications that have problems.
>>
>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
> So there have been tons of discussions around how to track dma-buf and
> why, and I really need to understand the use-cass here first I think. proc
> uapi is as much forever as anything else, and depending what you're doing
> this doesn't make any sense at all:
>
> - on most linux systems dma-buf are only instantiated for shared buffer.
> So there this gives you a fairly meaningless number and not anything
> reflecting gpu memory usage at all.
>
> - on Android all buffers are allocated through dma-buf afaik. But there
> we've recently had some discussions about how exactly we should track
> all this, and the conclusion was that most of this should be solved by
> cgroups long term. So if this is for Android, then I don't think adding
> random quick stop-gaps to upstream is a good idea (because it's a pretty
> long list of patches that have come up on this).
>
> So what is this for?
For the overview. dma-buf today only have debugfs for info. Debugfs
is not allowed by google to use in andoid. So this aggregate the information
so we can get information on what going on on the system.
And the LKML standard respond to that is "SHOW ME THE CODE".
When the top memgc has a aggregated information on dma-buf it is maybe
a better source to meminfo. But then it also imply that dma-buf requires memcg.
And I dont see any problem to replace this with something better with it is ready.
> -Daniel
>
>> ---
>> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
>> fs/proc/meminfo.c | 5 ++++-
>> include/linux/dma-buf.h | 1 +
>> 3 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>> index f264b70c383e..4dc37cd4293b 100644
>> --- a/drivers/dma-buf/dma-buf.c
>> +++ b/drivers/dma-buf/dma-buf.c
>> @@ -37,6 +37,7 @@ struct dma_buf_list {
>> };
>>
>> static struct dma_buf_list db_list;
>> +static atomic_long_t dma_buf_global_allocated;
>>
>> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
>> {
>> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
>> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
>> dma_resv_fini(dmabuf->resv);
>>
>> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
>> module_put(dmabuf->owner);
>> kfree(dmabuf->name);
>> kfree(dmabuf);
>> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
>> mutex_lock(&db_list.lock);
>> list_add(&dmabuf->list_node, &db_list.head);
>> mutex_unlock(&db_list.lock);
>> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
>>
>> return dmabuf;
>>
>> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
>> }
>> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
>>
>> +/**
>> + * dma_buf_allocated_pages - Return the used nr of pages
>> + * allocated for dma-buf
>> + */
>> +long dma_buf_allocated_pages(void)
>> +{
>> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
>> +}
>> +
>> #ifdef CONFIG_DEBUG_FS
>> static int dma_buf_debug_show(struct seq_file *s, void *unused)
>> {
>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
>> index 6fa761c9cc78..ccc7c40c8db7 100644
>> --- a/fs/proc/meminfo.c
>> +++ b/fs/proc/meminfo.c
>> @@ -16,6 +16,7 @@
>> #ifdef CONFIG_CMA
>> #include <linux/cma.h>
>> #endif
>> +#include <linux/dma-buf.h>
>> #include <asm/page.h>
>> #include "internal.h"
>>
>> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>> show_val_kb(m, "CmaFree: ",
>> global_zone_page_state(NR_FREE_CMA_PAGES));
>> #endif
>> -
>> +#ifdef CONFIG_DMA_SHARED_BUFFER
>> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
>> +#endif
>> hugetlb_report_meminfo(m);
>>
>> arch_report_meminfo(m);
>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>> index efdc56b9d95f..5b05816bd2cd 100644
>> --- a/include/linux/dma-buf.h
>> +++ b/include/linux/dma-buf.h
>> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
>> unsigned long);
>> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>> +long dma_buf_allocated_pages(void);
>> #endif /* __DMA_BUF_H__ */
>> --
>> 2.17.1
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 9:26 ` Peter.Enderborg
@ 2021-04-20 9:41 ` Mike Rapoport
2021-04-20 10:45 ` Peter.Enderborg
2021-04-20 11:14 ` Daniel Vetter
1 sibling, 1 reply; 19+ messages in thread
From: Mike Rapoport @ 2021-04-20 9:41 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
Hello Peter,
On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
> On 4/20/21 10:58 AM, Daniel Vetter wrote:
> > On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
> >> This adds a total used dma-buf memory. Details
> >> can be found in debugfs, however it is not for everyone
> >> and not always available. dma-buf are indirect allocated by
> >> userspace. So with this value we can monitor and detect
> >> userspace applications that have problems.
> >>
> >> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
> > So there have been tons of discussions around how to track dma-buf and
> > why, and I really need to understand the use-cass here first I think. proc
> > uapi is as much forever as anything else, and depending what you're doing
> > this doesn't make any sense at all:
> >
> > - on most linux systems dma-buf are only instantiated for shared buffer.
> > So there this gives you a fairly meaningless number and not anything
> > reflecting gpu memory usage at all.
> >
> > - on Android all buffers are allocated through dma-buf afaik. But there
> > we've recently had some discussions about how exactly we should track
> > all this, and the conclusion was that most of this should be solved by
> > cgroups long term. So if this is for Android, then I don't think adding
> > random quick stop-gaps to upstream is a good idea (because it's a pretty
> > long list of patches that have come up on this).
> >
> > So what is this for?
>
> For the overview. dma-buf today only have debugfs for info. Debugfs
> is not allowed by google to use in andoid. So this aggregate the information
> so we can get information on what going on on the system.
Can you send an example debugfs output to see what data are we talking
about?
> And the LKML standard respond to that is "SHOW ME THE CODE".
>
> When the top memgc has a aggregated information on dma-buf it is maybe
> a better source to meminfo. But then it also imply that dma-buf requires memcg.
>
> And I dont see any problem to replace this with something better with it is ready.
Well, the problem with replacing the counter in /proc/meminfo is that it
requires all users of /proc/meminfo to adapt to the changes.
That's why it's way less painful to go an extra mile and define (hopefully)
stable user ABI up front.
Why can't you use fdinfo to show how much memory consumed by a dma-buf?
> > -Daniel
> >
> >> ---
> >> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
> >> fs/proc/meminfo.c | 5 ++++-
> >> include/linux/dma-buf.h | 1 +
> >> 3 files changed, 17 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> >> index f264b70c383e..4dc37cd4293b 100644
> >> --- a/drivers/dma-buf/dma-buf.c
> >> +++ b/drivers/dma-buf/dma-buf.c
> >> @@ -37,6 +37,7 @@ struct dma_buf_list {
> >> };
> >>
> >> static struct dma_buf_list db_list;
> >> +static atomic_long_t dma_buf_global_allocated;
> >>
> >> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
> >> {
> >> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
> >> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
> >> dma_resv_fini(dmabuf->resv);
> >>
> >> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
> >> module_put(dmabuf->owner);
> >> kfree(dmabuf->name);
> >> kfree(dmabuf);
> >> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
> >> mutex_lock(&db_list.lock);
> >> list_add(&dmabuf->list_node, &db_list.head);
> >> mutex_unlock(&db_list.lock);
> >> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
> >>
> >> return dmabuf;
> >>
> >> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
> >> }
> >> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
> >>
> >> +/**
> >> + * dma_buf_allocated_pages - Return the used nr of pages
> >> + * allocated for dma-buf
> >> + */
> >> +long dma_buf_allocated_pages(void)
> >> +{
> >> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
> >> +}
> >> +
> >> #ifdef CONFIG_DEBUG_FS
> >> static int dma_buf_debug_show(struct seq_file *s, void *unused)
> >> {
> >> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
> >> index 6fa761c9cc78..ccc7c40c8db7 100644
> >> --- a/fs/proc/meminfo.c
> >> +++ b/fs/proc/meminfo.c
> >> @@ -16,6 +16,7 @@
> >> #ifdef CONFIG_CMA
> >> #include <linux/cma.h>
> >> #endif
> >> +#include <linux/dma-buf.h>
> >> #include <asm/page.h>
> >> #include "internal.h"
> >>
> >> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
> >> show_val_kb(m, "CmaFree: ",
> >> global_zone_page_state(NR_FREE_CMA_PAGES));
> >> #endif
> >> -
> >> +#ifdef CONFIG_DMA_SHARED_BUFFER
> >> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
> >> +#endif
> >> hugetlb_report_meminfo(m);
> >>
> >> arch_report_meminfo(m);
> >> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> >> index efdc56b9d95f..5b05816bd2cd 100644
> >> --- a/include/linux/dma-buf.h
> >> +++ b/include/linux/dma-buf.h
> >> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
> >> unsigned long);
> >> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >> +long dma_buf_allocated_pages(void);
> >> #endif /* __DMA_BUF_H__ */
> >> --
> >> 2.17.1
> >>
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel@lists.freedesktop.org
> >> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
>
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 9:41 ` Mike Rapoport
@ 2021-04-20 10:45 ` Peter.Enderborg
2021-04-20 11:52 ` Mike Rapoport
0 siblings, 1 reply; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-20 10:45 UTC (permalink / raw)
To: rppt
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On 4/20/21 11:41 AM, Mike Rapoport wrote:
> Hello Peter,
>
> On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/20/21 10:58 AM, Daniel Vetter wrote:
>>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
>>>> This adds a total used dma-buf memory. Details
>>>> can be found in debugfs, however it is not for everyone
>>>> and not always available. dma-buf are indirect allocated by
>>>> userspace. So with this value we can monitor and detect
>>>> userspace applications that have problems.
>>>>
>>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
>>> So there have been tons of discussions around how to track dma-buf and
>>> why, and I really need to understand the use-cass here first I think. proc
>>> uapi is as much forever as anything else, and depending what you're doing
>>> this doesn't make any sense at all:
>>>
>>> - on most linux systems dma-buf are only instantiated for shared buffer.
>>> So there this gives you a fairly meaningless number and not anything
>>> reflecting gpu memory usage at all.
>>>
>>> - on Android all buffers are allocated through dma-buf afaik. But there
>>> we've recently had some discussions about how exactly we should track
>>> all this, and the conclusion was that most of this should be solved by
>>> cgroups long term. So if this is for Android, then I don't think adding
>>> random quick stop-gaps to upstream is a good idea (because it's a pretty
>>> long list of patches that have come up on this).
>>>
>>> So what is this for?
>> For the overview. dma-buf today only have debugfs for info. Debugfs
>> is not allowed by google to use in andoid. So this aggregate the information
>> so we can get information on what going on on the system.
>
> Can you send an example debugfs output to see what data are we talking
> about?
Sure. This is on a idle system. Im not sure why you need it.The problem is partly that debugfs is
not accessable on a commercial device.
Dma-buf Objects:
size flags mode count exp_name buf name ino
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17728 07400825 dmabuf17728
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17727 07400824 dmabuf17727
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17726 07400823 dmabuf17726
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17725 07400822 dmabuf17725
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17724 07400821 dmabuf17724
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17723 07400820 dmabuf17723
Attached Devices:
kgsl-3d0
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 2 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17722 07399870 dmabuf17722
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf17721 07399869 dmabuf17721
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17693 07396324 dmabuf17693
Attached Devices:
Total 0 devices attached
03371008 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17692 07396323 dmabuf17692
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17691 07396322 dmabuf17691
Attached Devices:
Total 0 devices attached
03371008 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17690 07396321 dmabuf17690
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17689 07396320 dmabuf17689
Attached Devices:
Total 0 devices attached
03371008 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf17688 07396319 dmabuf17688
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17687 07396318 dmabuf17687
Attached Devices:
Total 0 devices attached
03371008 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf17686 07396317 dmabuf17686
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17685 07396316 dmabuf17685
Attached Devices:
Total 0 devices attached
03371008 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf17684 07396315 dmabuf17684
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17667 07394218 dmabuf17667
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000005 ion-system-1006-allocator-servi dmabuf17666 07394217 dmabuf17666
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17117 07057605 dmabuf17117
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17116 07057604 dmabuf17116
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17115 07058646 dmabuf17115
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17114 07058645 dmabuf17114
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17113 07058644 dmabuf17113
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17112 07058643 dmabuf17112
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17111 07057603 dmabuf17111
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17110 07057602 dmabuf17110
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17109 07059724 dmabuf17109
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17108 07059723 dmabuf17108
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17107 07058642 dmabuf17107
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17106 07058641 dmabuf17106
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17105 07059722 dmabuf17105
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17104 07059721 dmabuf17104
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17103 07057601 dmabuf17103
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17102 07057600 dmabuf17102
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17101 07057599 dmabuf17101
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17100 07057598 dmabuf17100
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17099 07057597 dmabuf17099
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17098 07057596 dmabuf17098
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17097 07058640 dmabuf17097
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17096 07058639 dmabuf17096
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17095 07058638 dmabuf17095
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17094 07058637 dmabuf17094
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17093 07059720 dmabuf17093
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17092 07059719 dmabuf17092
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17091 07058636 dmabuf17091
Attached Devices:
Total 0 devices attached
05885952 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17090 07058635 dmabuf17090
Attached Devices:
kgsl-3d0
Total 1 devices attached
00016384 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17089 07059718 dmabuf17089
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17088 07059717 dmabuf17088
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17087 07059716 dmabuf17087
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17086 07059715 dmabuf17086
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17085 07059714 dmabuf17085
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17084 07059713 dmabuf17084
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17083 07059712 dmabuf17083
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17082 07059711 dmabuf17082
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17081 07059710 dmabuf17081
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17080 07059709 dmabuf17080
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17079 07059708 dmabuf17079
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17078 07059707 dmabuf17078
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17077 07059706 dmabuf17077
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-1358-omx@1.0-service dmabuf17076 07059705 dmabuf17076
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00016384 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17075 07059704 dmabuf17075
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17074 07059703 dmabuf17074
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17073 07059702 dmabuf17073
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17072 07059701 dmabuf17072
Attached Devices:
Total 0 devices attached
00122880 00000002 00080007 00000001 ion-system-1358-omx@1.0-service dmabuf17047 07057587 dmabuf17047
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
24416256 00000002 00080007 00000001 ion-system-1358-omx@1.0-service dmabuf17046 07057586 dmabuf17046
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
16502784 00000002 00080007 00000001 ion-system-1358-omx@1.0-service dmabuf17045 07057585 dmabuf17045
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17021 07057561 dmabuf17021
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17020 07057557 dmabuf17020
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17019 07057553 dmabuf17019
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17018 07059676 dmabuf17018
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17017 07059672 dmabuf17017
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17016 07059668 dmabuf17016
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17015 07059664 dmabuf17015
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17014 07058606 dmabuf17014
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17013 07058602 dmabuf17013
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17012 07058598 dmabuf17012
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17011 07058594 dmabuf17011
Attached Devices:
Total 0 devices attached
08851456 00000002 00080007 00000002 ion-system-1358-omx@1.0-service dmabuf17010 07058590 dmabuf17010
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17009 07059653 dmabuf17009
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000005 ion-system-1006-allocator-servi dmabuf17008 07059652 dmabuf17008
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17007 07059651 dmabuf17007
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000005 ion-system-1006-allocator-servi dmabuf17006 07059650 dmabuf17006
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17005 07059649 dmabuf17005
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17004 07059648 dmabuf17004
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17003 07059647 dmabuf17003
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000007 ion-system-1006-allocator-servi dmabuf17002 07059646 dmabuf17002
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf17001 07059645 dmabuf17001
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf17000 07059644 dmabuf17000
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf16999 07058580 dmabuf16999
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf16998 07058579 dmabuf16998
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000008 ion-system-1006-allocator-servi dmabuf16956 07047666 dmabuf16956
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf16955 07047665 dmabuf16955
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf16929 07048400 dmabuf16929
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16928 07048399 dmabuf16928
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16858 06802333 dmabuf16858
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16857 06802332 dmabuf16857
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16827 06958738 dmabuf16827
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16826 06958737 dmabuf16826
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16792 07040695 dmabuf16792
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16791 07040694 dmabuf16791
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16790 06963704 dmabuf16790
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16789 06963703 dmabuf16789
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16788 07040691 dmabuf16788
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16787 07040690 dmabuf16787
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16786 07037878 dmabuf16786
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16785 07037877 dmabuf16785
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16784 06962398 dmabuf16784
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16783 06962397 dmabuf16783
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf16776 06962386 dmabuf16776
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf16775 06962385 dmabuf16775
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf14044 03156314 dmabuf14044
Attached Devices:
Total 0 devices attached
10969088 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf14043 03156313 dmabuf14043
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf10793 02508124 dmabuf10793
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf10792 02508123 dmabuf10792
Attached Devices:
kgsl-3d0
Total 1 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6237 01620958 dmabuf6237
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6236 01620957 dmabuf6236
Attached Devices:
Total 0 devices attached
00151552 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6235 01620956 dmabuf6235
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6162 01810478 dmabuf6162
Attached Devices:
Total 0 devices attached
00262144 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6161 01810477 dmabuf6161
Attached Devices:
Total 0 devices attached
00999424 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6160 01810476 dmabuf6160
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6121 01809929 dmabuf6121
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6120 01809928 dmabuf6120
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6119 01809927 dmabuf6119
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6118 01809926 dmabuf6118
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6117 01809925 dmabuf6117
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6116 01809924 dmabuf6116
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6115 01809923 dmabuf6115
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6114 01809922 dmabuf6114
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6113 01809921 dmabuf6113
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6112 01809920 dmabuf6112
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6111 01809919 dmabuf6111
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6110 01809918 dmabuf6110
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6109 01809917 dmabuf6109
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6108 01809916 dmabuf6108
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6107 01811683 dmabuf6107
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6106 01811682 dmabuf6106
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6105 01811681 dmabuf6105
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6104 01811680 dmabuf6104
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6103 01620889 dmabuf6103
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6102 01809915 dmabuf6102
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6101 01809914 dmabuf6101
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6100 01809913 dmabuf6100
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6099 01809912 dmabuf6099
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6098 01809911 dmabuf6098
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6097 01809910 dmabuf6097
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6096 01809909 dmabuf6096
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6095 01809908 dmabuf6095
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6094 01809907 dmabuf6094
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6093 01809906 dmabuf6093
Attached Devices:
Total 0 devices attached
00065536 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6092 01809905 dmabuf6092
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6091 01809904 dmabuf6091
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6090 01809903 dmabuf6090
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6089 01809902 dmabuf6089
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6088 01809901 dmabuf6088
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6087 01809900 dmabuf6087
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6086 01809899 dmabuf6086
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6085 01809898 dmabuf6085
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6084 01809897 dmabuf6084
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6083 01809896 dmabuf6083
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6082 01809895 dmabuf6082
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6081 01809894 dmabuf6081
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6080 01809893 dmabuf6080
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6079 01809892 dmabuf6079
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6078 01809891 dmabuf6078
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6077 01809890 dmabuf6077
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6076 01809889 dmabuf6076
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6075 01809888 dmabuf6075
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6074 01809887 dmabuf6074
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6073 01809886 dmabuf6073
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6072 01809885 dmabuf6072
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6071 01809884 dmabuf6071
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6070 01809883 dmabuf6070
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6069 01809882 dmabuf6069
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6068 01809881 dmabuf6068
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6067 01809880 dmabuf6067
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6066 01809879 dmabuf6066
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6065 01809878 dmabuf6065
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6064 01809877 dmabuf6064
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6063 01809876 dmabuf6063
Attached Devices:
Total 0 devices attached
00294912 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6062 01809875 dmabuf6062
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6061 01809874 dmabuf6061
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6060 01809873 dmabuf6060
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6059 01809872 dmabuf6059
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6058 01809871 dmabuf6058
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6057 01809870 dmabuf6057
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6056 01809869 dmabuf6056
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6055 01809868 dmabuf6055
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6054 01809867 dmabuf6054
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6053 01809866 dmabuf6053
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6052 01809865 dmabuf6052
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6051 01809864 dmabuf6051
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6050 01809863 dmabuf6050
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6049 01809862 dmabuf6049
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6048 01809861 dmabuf6048
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6047 01809860 dmabuf6047
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6046 01809859 dmabuf6046
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6045 01809858 dmabuf6045
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6044 01809857 dmabuf6044
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6043 01809856 dmabuf6043
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6042 01809855 dmabuf6042
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6041 01809854 dmabuf6041
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6040 01809853 dmabuf6040
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6039 01809852 dmabuf6039
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6038 01809851 dmabuf6038
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6037 01809850 dmabuf6037
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6036 01809849 dmabuf6036
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6035 01809848 dmabuf6035
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6034 01809847 dmabuf6034
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf6033 01809846 dmabuf6033
Attached Devices:
Total 0 devices attached
00008192 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6032 01809845 dmabuf6032
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6031 01809844 dmabuf6031
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6030 01809843 dmabuf6030
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6029 01809842 dmabuf6029
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6028 01809841 dmabuf6028
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6027 01809840 dmabuf6027
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6026 01809839 dmabuf6026
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6025 01809838 dmabuf6025
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6024 01809837 dmabuf6024
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6023 01809836 dmabuf6023
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6022 01809835 dmabuf6022
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6021 01809834 dmabuf6021
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6020 01809833 dmabuf6020
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6019 01809832 dmabuf6019
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6018 01809831 dmabuf6018
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6017 01809830 dmabuf6017
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6016 01809829 dmabuf6016
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6015 01809828 dmabuf6015
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6014 01809827 dmabuf6014
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6013 01809826 dmabuf6013
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6012 01809825 dmabuf6012
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6011 01809824 dmabuf6011
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6010 01809823 dmabuf6010
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6009 01809822 dmabuf6009
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6008 01809821 dmabuf6008
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6007 01809820 dmabuf6007
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6006 01809819 dmabuf6006
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6005 01809818 dmabuf6005
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6004 01809817 dmabuf6004
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6003 01809816 dmabuf6003
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf6002 01809815 dmabuf6002
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5991 01620874 dmabuf5991
Attached Devices:
Total 0 devices attached
00020480 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5990 01620873 dmabuf5990
Attached Devices:
Total 0 devices attached
00053248 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5989 01620872 dmabuf5989
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5888 01620854 dmabuf5888
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5887 01620853 dmabuf5887
Attached Devices:
Total 0 devices attached
00606208 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf5886 01620852 dmabuf5886
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf2037 00366312 dmabuf2037
Attached Devices:
Total 0 devices attached
00561152 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf2036 00366311 dmabuf2036
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf2035 00366310 dmabuf2035
Attached Devices:
Total 0 devices attached
00561152 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf2034 00366309 dmabuf2034
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf1084 00215844 dmabuf1084
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000005 ion-system-1006-allocator-servi dmabuf1083 00215843 dmabuf1083
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf1044 00205307 dmabuf1044
Attached Devices:
Total 0 devices attached
00282624 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf1043 00205306 dmabuf1043
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1010 00205248 dmabuf1010
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf1009 00205247 dmabuf1009
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1008 00205246 dmabuf1008
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf1007 00205245 dmabuf1007
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1006 00205242 dmabuf1006
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf1005 00205241 dmabuf1005
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1004 00204394 dmabuf1004
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf1003 00204393 dmabuf1003
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1002 00198139 dmabuf1002
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf1001 00198138 dmabuf1001
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf1000 00205238 dmabuf1000
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf999 00205237 dmabuf999
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf998 00204385 dmabuf998
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf997 00204384 dmabuf997
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf996 00204380 dmabuf996
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf995 00204379 dmabuf995
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf994 00205234 dmabuf994
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf993 00205233 dmabuf993
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf992 00204376 dmabuf992
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf991 00204375 dmabuf991
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf990 00205230 dmabuf990
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf989 00205229 dmabuf989
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf988 00205223 dmabuf988
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf987 00205222 dmabuf987
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf986 00205213 dmabuf986
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf985 00205212 dmabuf985
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf984 00205209 dmabuf984
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf983 00205208 dmabuf983
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf982 00204371 dmabuf982
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf981 00204370 dmabuf981
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf845 00100876 dmabuf845
Attached Devices:
Total 0 devices attached
00282624 00000002 00080007 00000007 ion-system-1006-allocator-servi dmabuf844 00100875 dmabuf844
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf809 00075396 dmabuf809
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf808 00075395 dmabuf808
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf807 00092787 dmabuf807
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf806 00092786 dmabuf806
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf805 00092779 dmabuf805
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf804 00092778 dmabuf804
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf803 00091856 dmabuf803
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf802 00091855 dmabuf802
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf801 00095534 dmabuf801
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf800 00095533 dmabuf800
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf799 00084705 dmabuf799
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf798 00084704 dmabuf798
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf797 00091844 dmabuf797
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf796 00091843 dmabuf796
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf795 00095519 dmabuf795
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf794 00095518 dmabuf794
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf793 00091839 dmabuf793
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf792 00091838 dmabuf792
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf791 00091833 dmabuf791
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf790 00091832 dmabuf790
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf789 00084668 dmabuf789
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf788 00084667 dmabuf788
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf787 00091818 dmabuf787
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf786 00091817 dmabuf786
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf785 00084646 dmabuf785
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf784 00084645 dmabuf784
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf783 00092690 dmabuf783
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf782 00092689 dmabuf782
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf781 00091815 dmabuf781
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf780 00091814 dmabuf780
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf779 00084638 dmabuf779
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf778 00084637 dmabuf778
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf777 00092673 dmabuf777
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf776 00092672 dmabuf776
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf775 00092670 dmabuf775
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf774 00092669 dmabuf774
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf771 00092654 dmabuf771
Attached Devices:
Total 0 devices attached
00114688 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf770 00092653 dmabuf770
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf753 00084455 dmabuf753
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf752 00084454 dmabuf752
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf751 00092467 dmabuf751
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf750 00092466 dmabuf750
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf749 00082929 dmabuf749
Attached Devices:
Total 0 devices attached
00045056 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf748 00082928 dmabuf748
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf747 00082927 dmabuf747
Attached Devices:
Total 0 devices attached
00016384 00000002 00080007 00000001 ion-system-1006-allocator-servi dmabuf746 00082926 dmabuf746
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf724 00077131 dmabuf724
Attached Devices:
Total 0 devices attached
00561152 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf723 00077130 dmabuf723
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf722 00077998 dmabuf722
Attached Devices:
Total 0 devices attached
00561152 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf721 00077997 dmabuf721
Attached Devices:
kgsl-3d0
Total 1 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf716 00079920 dmabuf716
Attached Devices:
Total 0 devices attached
00282624 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf715 00079919 dmabuf715
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf714 00079915 dmabuf714
Attached Devices:
Total 0 devices attached
00282624 00000002 00080007 00000006 ion-system-1006-allocator-servi dmabuf713 00079914 dmabuf713
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
kgsl-3d0
Total 3 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf712 00077113 dmabuf712
Attached Devices:
Total 0 devices attached
00561152 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf711 00077112 dmabuf711
Attached Devices:
kgsl-3d0
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf513 00022038 dmabuf513
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf512 00022037 dmabuf512
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf511 00022036 dmabuf511
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf510 00022035 dmabuf510
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf508 00023549 dmabuf508
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf507 00023548 dmabuf507
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf506 00023547 dmabuf506
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf505 00023546 dmabuf505
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf504 00023545 dmabuf504
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf503 00023544 dmabuf503
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf502 00023543 dmabuf502
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf501 00023542 dmabuf501
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf500 00023541 dmabuf500
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf499 00023540 dmabuf499
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf498 00023539 dmabuf498
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf497 00023538 dmabuf497
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf496 00023537 dmabuf496
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf495 00023536 dmabuf495
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf493 00023535 dmabuf493
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf492 00023534 dmabuf492
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf491 00023533 dmabuf491
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf490 00023532 dmabuf490
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf489 00023531 dmabuf489
Attached Devices:
Total 0 devices attached
04050944 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf488 00023530 dmabuf488
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf486 00019142 dmabuf486
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf485 00019141 dmabuf485
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf484 00023529 dmabuf484
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf483 00023528 dmabuf483
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf482 00023527 dmabuf482
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf481 00023526 dmabuf481
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf480 00019137 dmabuf480
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf479 00019136 dmabuf479
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf478 00019135 dmabuf478
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf477 00019134 dmabuf477
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf476 00019133 dmabuf476
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf475 00019132 dmabuf475
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf473 00074408 dmabuf473
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf472 00074407 dmabuf472
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf471 00074406 dmabuf471
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf470 00074405 dmabuf470
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf469 00074404 dmabuf469
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf468 00074403 dmabuf468
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf467 00074402 dmabuf467
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf466 00074401 dmabuf466
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf465 00074400 dmabuf465
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf464 00074399 dmabuf464
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf463 00074398 dmabuf463
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf462 00074397 dmabuf462
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf461 00074396 dmabuf461
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf460 00074395 dmabuf460
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf459 00074394 dmabuf459
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf458 00074393 dmabuf458
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf457 00074392 dmabuf457
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf456 00074391 dmabuf456
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf367 00074125 dmabuf367
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf366 00074124 dmabuf366
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf365 00074123 dmabuf365
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf364 00074122 dmabuf364
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf363 00074121 dmabuf363
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf362 00074120 dmabuf362
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf361 00074119 dmabuf361
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf360 00074118 dmabuf360
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf359 00074117 dmabuf359
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf358 00074116 dmabuf358
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf357 00074115 dmabuf357
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf356 00074114 dmabuf356
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf355 00074113 dmabuf355
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf354 00074112 dmabuf354
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf353 00074111 dmabuf353
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf352 00074110 dmabuf352
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf351 00074109 dmabuf351
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf350 00074108 dmabuf350
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf349 00074107 dmabuf349
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf348 00074106 dmabuf348
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf347 00074105 dmabuf347
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf346 00074104 dmabuf346
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf345 00074103 dmabuf345
Attached Devices:
Total 0 devices attached
00397312 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf344 00074102 dmabuf344
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf343 00074101 dmabuf343
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf342 00074100 dmabuf342
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf341 00074099 dmabuf341
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf340 00074098 dmabuf340
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf339 00074097 dmabuf339
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf338 00074096 dmabuf338
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf337 00074095 dmabuf337
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf336 00074094 dmabuf336
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf335 00074093 dmabuf335
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf334 00074092 dmabuf334
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf333 00074091 dmabuf333
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf332 00074090 dmabuf332
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf331 00074089 dmabuf331
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf330 00074088 dmabuf330
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf329 00074087 dmabuf329
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf328 00074086 dmabuf328
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf327 00074085 dmabuf327
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf326 00074084 dmabuf326
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf325 00074083 dmabuf325
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf324 00074082 dmabuf324
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf323 00072355 dmabuf323
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf322 00072354 dmabuf322
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf321 00072353 dmabuf321
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf320 00072352 dmabuf320
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf319 00072351 dmabuf319
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf318 00072350 dmabuf318
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf317 00072349 dmabuf317
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf316 00072348 dmabuf316
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf315 00072347 dmabuf315
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf314 00072346 dmabuf314
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf296 00071072 dmabuf296
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf295 00071071 dmabuf295
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf294 00071070 dmabuf294
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf293 00071069 dmabuf293
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf292 00071068 dmabuf292
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf291 00071067 dmabuf291
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf290 00071066 dmabuf290
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf289 00071065 dmabuf289
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf288 00071064 dmabuf288
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf287 00071063 dmabuf287
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf286 00071062 dmabuf286
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf285 00071061 dmabuf285
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf284 00071060 dmabuf284
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf283 00071059 dmabuf283
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf282 00071058 dmabuf282
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf281 00071057 dmabuf281
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf280 00071056 dmabuf280
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf279 00071055 dmabuf279
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf278 00071054 dmabuf278
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf277 00071053 dmabuf277
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf276 00071052 dmabuf276
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf275 00071051 dmabuf275
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf274 00071050 dmabuf274
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf273 00071049 dmabuf273
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf272 00071048 dmabuf272
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf271 00071047 dmabuf271
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf270 00071046 dmabuf270
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf269 00071045 dmabuf269
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf268 00071044 dmabuf268
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf267 00071043 dmabuf267
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf266 00071042 dmabuf266
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf265 00071041 dmabuf265
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf264 00071040 dmabuf264
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf263 00071039 dmabuf263
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf262 00071038 dmabuf262
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf261 00071037 dmabuf261
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf260 00071036 dmabuf260
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf259 00071035 dmabuf259
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf258 00071034 dmabuf258
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf257 00071033 dmabuf257
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf256 00071032 dmabuf256
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf255 00071031 dmabuf255
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf254 00071030 dmabuf254
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf253 00071029 dmabuf253
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf252 00071028 dmabuf252
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf251 00071027 dmabuf251
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf250 00071026 dmabuf250
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf249 00071025 dmabuf249
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf248 00071024 dmabuf248
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf247 00071023 dmabuf247
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf246 00071022 dmabuf246
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf245 00071021 dmabuf245
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf244 00071020 dmabuf244
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf243 00071019 dmabuf243
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000001 ion-system-1358-omx@1.0-service dmabuf242 00060298 dmabuf242
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
03137536 00000002 00080007 00000001 ion-system-1358-omx@1.0-service dmabuf241 00060297 dmabuf241
Attached Devices:
aa00000.qcom,vidc:non_secure_cb
Total 1 devices attached
00032768 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf215 00073846 dmabuf215
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf214 00073845 dmabuf214
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf213 00073844 dmabuf213
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf212 00073843 dmabuf212
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf211 00073842 dmabuf211
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf210 00073841 dmabuf210
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf209 00073840 dmabuf209
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf208 00073839 dmabuf208
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf207 00073838 dmabuf207
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf206 00073837 dmabuf206
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf205 00073836 dmabuf205
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf204 00073835 dmabuf204
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf203 00073834 dmabuf203
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf202 00073833 dmabuf202
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf201 00073832 dmabuf201
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf200 00073831 dmabuf200
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf199 00073830 dmabuf199
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf198 00073829 dmabuf198
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf197 00073828 dmabuf197
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf196 00073827 dmabuf196
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf195 00073826 dmabuf195
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf194 00073825 dmabuf194
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf193 00073824 dmabuf193
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf192 00073823 dmabuf192
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf191 00073822 dmabuf191
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf190 00073821 dmabuf190
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf189 00073820 dmabuf189
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf188 00073819 dmabuf188
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf187 00073818 dmabuf187
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf186 00073817 dmabuf186
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf167 00072012 dmabuf167
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf166 00072011 dmabuf166
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf165 00072010 dmabuf165
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf164 00072009 dmabuf164
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf163 00065234 dmabuf163
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf162 00065233 dmabuf162
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf161 00065232 dmabuf161
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf160 00065231 dmabuf160
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf159 00065230 dmabuf159
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf158 00065229 dmabuf158
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf157 00065228 dmabuf157
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf156 00065227 dmabuf156
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf155 00065226 dmabuf155
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf154 00065225 dmabuf154
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf153 00065224 dmabuf153
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf152 00065223 dmabuf152
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf151 00065222 dmabuf151
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf150 00065221 dmabuf150
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf149 00065220 dmabuf149
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf148 00065219 dmabuf148
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf147 00065218 dmabuf147
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf146 00065217 dmabuf146
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf145 00065216 dmabuf145
Attached Devices:
Total 0 devices attached
04284416 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf144 00065215 dmabuf144
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf143 00065214 dmabuf143
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf142 00065213 dmabuf142
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf141 00065212 dmabuf141
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf140 00065211 dmabuf140
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf139 00065210 dmabuf139
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf138 00065209 dmabuf138
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf137 00065208 dmabuf137
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf136 00065207 dmabuf136
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf135 00065206 dmabuf135
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf134 00065205 dmabuf134
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf133 00065204 dmabuf133
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf132 00065203 dmabuf132
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf131 00065202 dmabuf131
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf130 00065201 dmabuf130
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf129 00065200 dmabuf129
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf128 00065199 dmabuf128
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf127 00065198 dmabuf127
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf126 00065197 dmabuf126
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf125 00065196 dmabuf125
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf124 00065195 dmabuf124
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf123 00065194 dmabuf123
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf122 00065193 dmabuf122
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf121 00065192 dmabuf121
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf120 00065191 dmabuf120
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf119 00065190 dmabuf119
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf118 00065189 dmabuf118
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf117 00065188 dmabuf117
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf116 00065187 dmabuf116
Attached Devices:
Total 0 devices attached
00032768 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf115 00065186 dmabuf115
Attached Devices:
Total 0 devices attached
01384448 00000002 00080007 00000002 ion-system-1029-vendor.somc.har dmabuf114 00065185 dmabuf114
Attached Devices:
Total 0 devices attached
01048576 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf89 00071825 dmabuf89
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
00008192 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf88 00071824 dmabuf88
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
01048576 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf87 00071823 dmabuf87
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
01048576 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf86 00071822 dmabuf86
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
01048576 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf85 00071821 dmabuf85
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
01048576 00000002 00080007 00000001 ion-system-1029-vendor.somc.har dmabuf84 00071820 dmabuf84
Attached Devices:
soc:qcom,cam_smmu:msm_cam_smmu_icp
Total 1 devices attached
00008192 00000002 00080007 00000003 ion-system-972-audio.service dmabuf82 00063179 dmabuf82
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf81 00064877 dmabuf81
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-972-audio.service dmabuf80 00064876 dmabuf80
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-972-audio.service dmabuf79 00064875 dmabuf79
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf78 00064874 dmabuf78
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00008192 00000002 00080007 00000003 ion-system-972-audio.service dmabuf77 00063178 dmabuf77
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf75 00063176 dmabuf75
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000002 ion-system-972-audio.service dmabuf74 00063175 dmabuf74
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-972-audio.service dmabuf73 00063174 dmabuf73
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf72 00063173 dmabuf72
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf71 00063172 dmabuf71
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf70 00063171 dmabuf70
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf69 00063170 dmabuf69
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf68 00063169 dmabuf68
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf67 00063168 dmabuf67
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf66 00063167 dmabuf66
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf65 00063166 dmabuf65
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf64 00064873 dmabuf64
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf63 00064872 dmabuf63
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-972-audio.service dmabuf62 00062371 dmabuf62
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00016384 00000002 00080007 00000003 ion-system-972-audio.service dmabuf61 00064871 dmabuf61
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf60 00062370 dmabuf60
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-system-972-audio.service dmabuf59 00062369 dmabuf59
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00061440 00000002 00080007 00000003 ion-system-972-audio.service dmabuf58 00062368 dmabuf58
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00061440 00000002 00080007 00000003 ion-system-972-audio.service dmabuf57 00062367 dmabuf57
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00245760 00000002 00080007 00000003 ion-system-972-audio.service dmabuf56 00062366 dmabuf56
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-system-1007-composer-servic dmabuf55 00064464 dmabuf55
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-system-1007-composer-servic dmabuf54 00064463 dmabuf54
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-system-1007-composer-servic dmabuf53 00064462 dmabuf53
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
Total 1 devices attached
00032768 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf50 00062345 dmabuf50
Attached Devices:
Total 0 devices attached
11083776 00000002 00080007 00000004 ion-system-1006-allocator-servi dmabuf49 00062344 dmabuf49
Attached Devices:
ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
kgsl-3d0
Total 2 devices attached
00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf35 00064244 dmabuf35
Attached Devices:
Total 0 devices attached
00004096 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf34 00064243 dmabuf34
Attached Devices:
kgsl-3d0
Total 1 devices attached
00262144 00000002 00080007 00000003 ion-system-1387-cdsprpcd dmabuf31 00018895 dmabuf31
Attached Devices:
soc:qcom,msm_fastrpc:qcom,msm_fastrpc_compute_cb1
Total 1 devices attached
00262144 00000002 00080007 00000003 ion-system-1385-adsprpcd dmabuf30 00021832 dmabuf30
Attached Devices:
soc:qcom,msm_fastrpc:qcom,msm_fastrpc_compute_cb11
Total 1 devices attached
00012288 00000002 00080007 00000003 ion-qsecom-1143-android.hardwar dmabuf23 00047359 dmabuf23
Attached Devices:
82400000.qseecom
Total 1 devices attached
00004096 00000002 00080007 00000001 ion-system-92-kworker/7:1 dmabuf19 00046502 dmabuf19
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00008192 00000002 00080007 00000001 ion-system-92-kworker/7:1 dmabuf18 00046501 dmabuf18
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00004096 00000002 00080007 00000001 ion-system-92-kworker/7:1 dmabuf17 00046500 dmabuf17
Attached Devices:
soc:qcom,msm-audio-apr:qcom,msm-audio-ion
Total 1 devices attached
00045056 00000002 00080007 00000003 ion-qsecom-983-android.hardwar dmabuf16 00043480 dmabuf16
Attached Devices:
82400000.qseecom
Total 1 devices attached
00004096 00000002 00080007 00000001 ion-system-579-init dmabuf15 00043228 dmabuf15
Attached Devices:
ab00000.qcom,cvp:cvp_non_secure_cb
Total 1 devices attached
03137536 00000002 00080007 00000001 ion-system-579-init dmabuf14 00043227 dmabuf14
Attached Devices:
ab00000.qcom,cvp:cvp_non_secure_cb
Total 1 devices attached
00045056 00000002 00080007 00000003 ion-qsecom-737-keymasterd dmabuf13 00041541 dmabuf13
Attached Devices:
82400000.qseecom
Total 1 devices attached
00045056 00000002 00080007 00000003 ion-qsecom-723-android.hardwar dmabuf12 00033196 dmabuf12
Attached Devices:
82400000.qseecom
Total 1 devices attached
00045056 00000002 00080007 00000003 ion-qsecom-641-android.hardwar dmabuf11 00025113 dmabuf11
Attached Devices:
82400000.qseecom
Total 1 devices attached
00028672 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf10 00032981 dmabuf10
Attached Devices:
82400000.qseecom
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf9 00041460 dmabuf9
Attached Devices:
82400000.qseecom
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf8 00025105 dmabuf8
Attached Devices:
82400000.qseecom
Total 1 devices attached
00004096 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf7 00025104 dmabuf7
Attached Devices:
82400000.qseecom
Total 1 devices attached
00516096 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf6 00041456 dmabuf6
Attached Devices:
82400000.qseecom
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf5 00042068 dmabuf5
Attached Devices:
82400000.qseecom
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf4 00042064 dmabuf4
Attached Devices:
82400000.qseecom
Total 1 devices attached
00008192 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf3 00041455 dmabuf3
Attached Devices:
82400000.qseecom
Total 1 devices attached
00020480 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf2 00041453 dmabuf2
Attached Devices:
82400000.qseecom
Total 1 devices attached
00028672 00000002 00080007 00000003 ion-qsecom-661-qseecomd dmabuf1 00042047 dmabuf1
Attached Devices:
82400000.qseecom
Total 1 devices attached
Total 654 objects, 744144896 bytes
>> And the LKML standard respond to that is "SHOW ME THE CODE".
>>
>> When the top memgc has a aggregated information on dma-buf it is maybe
>> a better source to meminfo. But then it also imply that dma-buf requires memcg.
>>
>> And I dont see any problem to replace this with something better with it is ready.
> Well, the problem with replacing the counter in /proc/meminfo is that it
> requires all users of /proc/meminfo to adapt to the changes.
>
> That's why it's way less painful to go an extra mile and define (hopefully)
> stable user ABI up front.
>
> Why can't you use fdinfo to show how much memory consumed by a dma-buf?
>
>>> -Daniel
>>>
>>>> ---
>>>> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
>>>> fs/proc/meminfo.c | 5 ++++-
>>>> include/linux/dma-buf.h | 1 +
>>>> 3 files changed, 17 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>>>> index f264b70c383e..4dc37cd4293b 100644
>>>> --- a/drivers/dma-buf/dma-buf.c
>>>> +++ b/drivers/dma-buf/dma-buf.c
>>>> @@ -37,6 +37,7 @@ struct dma_buf_list {
>>>> };
>>>>
>>>> static struct dma_buf_list db_list;
>>>> +static atomic_long_t dma_buf_global_allocated;
>>>>
>>>> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
>>>> {
>>>> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
>>>> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
>>>> dma_resv_fini(dmabuf->resv);
>>>>
>>>> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
>>>> module_put(dmabuf->owner);
>>>> kfree(dmabuf->name);
>>>> kfree(dmabuf);
>>>> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
>>>> mutex_lock(&db_list.lock);
>>>> list_add(&dmabuf->list_node, &db_list.head);
>>>> mutex_unlock(&db_list.lock);
>>>> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
>>>>
>>>> return dmabuf;
>>>>
>>>> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
>>>> }
>>>> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
>>>>
>>>> +/**
>>>> + * dma_buf_allocated_pages - Return the used nr of pages
>>>> + * allocated for dma-buf
>>>> + */
>>>> +long dma_buf_allocated_pages(void)
>>>> +{
>>>> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
>>>> +}
>>>> +
>>>> #ifdef CONFIG_DEBUG_FS
>>>> static int dma_buf_debug_show(struct seq_file *s, void *unused)
>>>> {
>>>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
>>>> index 6fa761c9cc78..ccc7c40c8db7 100644
>>>> --- a/fs/proc/meminfo.c
>>>> +++ b/fs/proc/meminfo.c
>>>> @@ -16,6 +16,7 @@
>>>> #ifdef CONFIG_CMA
>>>> #include <linux/cma.h>
>>>> #endif
>>>> +#include <linux/dma-buf.h>
>>>> #include <asm/page.h>
>>>> #include "internal.h"
>>>>
>>>> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>>>> show_val_kb(m, "CmaFree: ",
>>>> global_zone_page_state(NR_FREE_CMA_PAGES));
>>>> #endif
>>>> -
>>>> +#ifdef CONFIG_DMA_SHARED_BUFFER
>>>> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
>>>> +#endif
>>>> hugetlb_report_meminfo(m);
>>>>
>>>> arch_report_meminfo(m);
>>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>>>> index efdc56b9d95f..5b05816bd2cd 100644
>>>> --- a/include/linux/dma-buf.h
>>>> +++ b/include/linux/dma-buf.h
>>>> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
>>>> unsigned long);
>>>> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>> +long dma_buf_allocated_pages(void);
>>>> #endif /* __DMA_BUF_H__ */
>>>> --
>>>> 2.17.1
>>>>
>>>> _______________________________________________
>>>> dri-devel mailing list
>>>> dri-devel@lists.freedesktop.org
>>>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 9:26 ` Peter.Enderborg
2021-04-20 9:41 ` Mike Rapoport
@ 2021-04-20 11:14 ` Daniel Vetter
2021-04-20 11:37 ` Peter.Enderborg
1 sibling, 1 reply; 19+ messages in thread
From: Daniel Vetter @ 2021-04-20 11:14 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
> On 4/20/21 10:58 AM, Daniel Vetter wrote:
> > On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
> >> This adds a total used dma-buf memory. Details
> >> can be found in debugfs, however it is not for everyone
> >> and not always available. dma-buf are indirect allocated by
> >> userspace. So with this value we can monitor and detect
> >> userspace applications that have problems.
> >>
> >> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
> > So there have been tons of discussions around how to track dma-buf and
> > why, and I really need to understand the use-cass here first I think. proc
> > uapi is as much forever as anything else, and depending what you're doing
> > this doesn't make any sense at all:
> >
> > - on most linux systems dma-buf are only instantiated for shared buffer.
> > So there this gives you a fairly meaningless number and not anything
> > reflecting gpu memory usage at all.
> >
> > - on Android all buffers are allocated through dma-buf afaik. But there
> > we've recently had some discussions about how exactly we should track
> > all this, and the conclusion was that most of this should be solved by
> > cgroups long term. So if this is for Android, then I don't think adding
> > random quick stop-gaps to upstream is a good idea (because it's a pretty
> > long list of patches that have come up on this).
> >
> > So what is this for?
>
> For the overview. dma-buf today only have debugfs for info. Debugfs
> is not allowed by google to use in andoid. So this aggregate the information
> so we can get information on what going on on the system.
>
> And the LKML standard respond to that is "SHOW ME THE CODE".
Yes. Except this extends to how exactly this is supposed to be used in
userspace and acted upon.
> When the top memgc has a aggregated information on dma-buf it is maybe
> a better source to meminfo. But then it also imply that dma-buf requires memcg.
>
> And I dont see any problem to replace this with something better with it is ready.
The thing is, this is uapi. Once it's merged we cannot, ever, replace it.
It must be kept around forever, or a very close approximation thereof. So
merging this with the justification that we can fix it later on or replace
isn't going to happen.
-Daniel
>
> > -Daniel
> >
> >> ---
> >> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
> >> fs/proc/meminfo.c | 5 ++++-
> >> include/linux/dma-buf.h | 1 +
> >> 3 files changed, 17 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> >> index f264b70c383e..4dc37cd4293b 100644
> >> --- a/drivers/dma-buf/dma-buf.c
> >> +++ b/drivers/dma-buf/dma-buf.c
> >> @@ -37,6 +37,7 @@ struct dma_buf_list {
> >> };
> >>
> >> static struct dma_buf_list db_list;
> >> +static atomic_long_t dma_buf_global_allocated;
> >>
> >> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
> >> {
> >> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
> >> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
> >> dma_resv_fini(dmabuf->resv);
> >>
> >> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
> >> module_put(dmabuf->owner);
> >> kfree(dmabuf->name);
> >> kfree(dmabuf);
> >> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
> >> mutex_lock(&db_list.lock);
> >> list_add(&dmabuf->list_node, &db_list.head);
> >> mutex_unlock(&db_list.lock);
> >> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
> >>
> >> return dmabuf;
> >>
> >> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
> >> }
> >> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
> >>
> >> +/**
> >> + * dma_buf_allocated_pages - Return the used nr of pages
> >> + * allocated for dma-buf
> >> + */
> >> +long dma_buf_allocated_pages(void)
> >> +{
> >> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
> >> +}
> >> +
> >> #ifdef CONFIG_DEBUG_FS
> >> static int dma_buf_debug_show(struct seq_file *s, void *unused)
> >> {
> >> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
> >> index 6fa761c9cc78..ccc7c40c8db7 100644
> >> --- a/fs/proc/meminfo.c
> >> +++ b/fs/proc/meminfo.c
> >> @@ -16,6 +16,7 @@
> >> #ifdef CONFIG_CMA
> >> #include <linux/cma.h>
> >> #endif
> >> +#include <linux/dma-buf.h>
> >> #include <asm/page.h>
> >> #include "internal.h"
> >>
> >> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
> >> show_val_kb(m, "CmaFree: ",
> >> global_zone_page_state(NR_FREE_CMA_PAGES));
> >> #endif
> >> -
> >> +#ifdef CONFIG_DMA_SHARED_BUFFER
> >> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
> >> +#endif
> >> hugetlb_report_meminfo(m);
> >>
> >> arch_report_meminfo(m);
> >> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> >> index efdc56b9d95f..5b05816bd2cd 100644
> >> --- a/include/linux/dma-buf.h
> >> +++ b/include/linux/dma-buf.h
> >> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
> >> unsigned long);
> >> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >> +long dma_buf_allocated_pages(void);
> >> #endif /* __DMA_BUF_H__ */
> >> --
> >> 2.17.1
> >>
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel@lists.freedesktop.org
> >> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 11:14 ` Daniel Vetter
@ 2021-04-20 11:37 ` Peter.Enderborg
2021-04-21 9:15 ` Daniel Vetter
0 siblings, 1 reply; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-20 11:37 UTC (permalink / raw)
To: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
On 4/20/21 1:14 PM, Daniel Vetter wrote:
> On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/20/21 10:58 AM, Daniel Vetter wrote:
>>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
>>>> This adds a total used dma-buf memory. Details
>>>> can be found in debugfs, however it is not for everyone
>>>> and not always available. dma-buf are indirect allocated by
>>>> userspace. So with this value we can monitor and detect
>>>> userspace applications that have problems.
>>>>
>>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
>>> So there have been tons of discussions around how to track dma-buf and
>>> why, and I really need to understand the use-cass here first I think. proc
>>> uapi is as much forever as anything else, and depending what you're doing
>>> this doesn't make any sense at all:
>>>
>>> - on most linux systems dma-buf are only instantiated for shared buffer.
>>> So there this gives you a fairly meaningless number and not anything
>>> reflecting gpu memory usage at all.
>>>
>>> - on Android all buffers are allocated through dma-buf afaik. But there
>>> we've recently had some discussions about how exactly we should track
>>> all this, and the conclusion was that most of this should be solved by
>>> cgroups long term. So if this is for Android, then I don't think adding
>>> random quick stop-gaps to upstream is a good idea (because it's a pretty
>>> long list of patches that have come up on this).
>>>
>>> So what is this for?
>> For the overview. dma-buf today only have debugfs for info. Debugfs
>> is not allowed by google to use in andoid. So this aggregate the information
>> so we can get information on what going on on the system.
>>
>> And the LKML standard respond to that is "SHOW ME THE CODE".
> Yes. Except this extends to how exactly this is supposed to be used in
> userspace and acted upon.
>
>> When the top memgc has a aggregated information on dma-buf it is maybe
>> a better source to meminfo. But then it also imply that dma-buf requires memcg.
>>
>> And I dont see any problem to replace this with something better with it is ready.
> The thing is, this is uapi. Once it's merged we cannot, ever, replace it.
> It must be kept around forever, or a very close approximation thereof. So
> merging this with the justification that we can fix it later on or replace
> isn't going to happen.
It is intended to be relevant as long there is a dma-buf. This is a proper
metric. If the newer implementations is not get the same result it is
not doing it right and is not better. If a memcg counter or a global_zone
counter do the same thing they it can replace the suggested method.
But I dont think they will. dma-buf does not have to be mapped to a process,
and the case of vram, it is not covered in current global_zone. All of them
would be very nice to have in some form. But it wont change what the
correct value of what "Total" is.
> -Daniel
>
>>> -Daniel
>>>
>>>> ---
>>>> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
>>>> fs/proc/meminfo.c | 5 ++++-
>>>> include/linux/dma-buf.h | 1 +
>>>> 3 files changed, 17 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>>>> index f264b70c383e..4dc37cd4293b 100644
>>>> --- a/drivers/dma-buf/dma-buf.c
>>>> +++ b/drivers/dma-buf/dma-buf.c
>>>> @@ -37,6 +37,7 @@ struct dma_buf_list {
>>>> };
>>>>
>>>> static struct dma_buf_list db_list;
>>>> +static atomic_long_t dma_buf_global_allocated;
>>>>
>>>> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
>>>> {
>>>> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
>>>> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
>>>> dma_resv_fini(dmabuf->resv);
>>>>
>>>> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
>>>> module_put(dmabuf->owner);
>>>> kfree(dmabuf->name);
>>>> kfree(dmabuf);
>>>> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
>>>> mutex_lock(&db_list.lock);
>>>> list_add(&dmabuf->list_node, &db_list.head);
>>>> mutex_unlock(&db_list.lock);
>>>> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
>>>>
>>>> return dmabuf;
>>>>
>>>> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
>>>> }
>>>> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
>>>>
>>>> +/**
>>>> + * dma_buf_allocated_pages - Return the used nr of pages
>>>> + * allocated for dma-buf
>>>> + */
>>>> +long dma_buf_allocated_pages(void)
>>>> +{
>>>> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
>>>> +}
>>>> +
>>>> #ifdef CONFIG_DEBUG_FS
>>>> static int dma_buf_debug_show(struct seq_file *s, void *unused)
>>>> {
>>>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
>>>> index 6fa761c9cc78..ccc7c40c8db7 100644
>>>> --- a/fs/proc/meminfo.c
>>>> +++ b/fs/proc/meminfo.c
>>>> @@ -16,6 +16,7 @@
>>>> #ifdef CONFIG_CMA
>>>> #include <linux/cma.h>
>>>> #endif
>>>> +#include <linux/dma-buf.h>
>>>> #include <asm/page.h>
>>>> #include "internal.h"
>>>>
>>>> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>>>> show_val_kb(m, "CmaFree: ",
>>>> global_zone_page_state(NR_FREE_CMA_PAGES));
>>>> #endif
>>>> -
>>>> +#ifdef CONFIG_DMA_SHARED_BUFFER
>>>> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
>>>> +#endif
>>>> hugetlb_report_meminfo(m);
>>>>
>>>> arch_report_meminfo(m);
>>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>>>> index efdc56b9d95f..5b05816bd2cd 100644
>>>> --- a/include/linux/dma-buf.h
>>>> +++ b/include/linux/dma-buf.h
>>>> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
>>>> unsigned long);
>>>> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>> +long dma_buf_allocated_pages(void);
>>>> #endif /* __DMA_BUF_H__ */
>>>> --
>>>> 2.17.1
>>>>
>>>> _______________________________________________
>>>> dri-devel mailing list
>>>> dri-devel@lists.freedesktop.org
>>>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!vXvDg6I4V__QdL2fA08Rc5v6rjDzxOIQz6kwyMMLUK3_g4z7qZTg1H98BDDTxZeZjI4$
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 10:45 ` Peter.Enderborg
@ 2021-04-20 11:52 ` Mike Rapoport
2021-04-20 12:03 ` Peter.Enderborg
0 siblings, 1 reply; 19+ messages in thread
From: Mike Rapoport @ 2021-04-20 11:52 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On Tue, Apr 20, 2021 at 10:45:21AM +0000, Peter.Enderborg@sony.com wrote:
> On 4/20/21 11:41 AM, Mike Rapoport wrote:
> > Hello Peter,
> >
> > On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
> >> On 4/20/21 10:58 AM, Daniel Vetter wrote:
> >>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
> >>>> This adds a total used dma-buf memory. Details
> >>>> can be found in debugfs, however it is not for everyone
> >>>> and not always available. dma-buf are indirect allocated by
> >>>> userspace. So with this value we can monitor and detect
> >>>> userspace applications that have problems.
> >>>>
> >>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
> >>> So there have been tons of discussions around how to track dma-buf and
> >>> why, and I really need to understand the use-cass here first I think. proc
> >>> uapi is as much forever as anything else, and depending what you're doing
> >>> this doesn't make any sense at all:
> >>>
> >>> - on most linux systems dma-buf are only instantiated for shared buffer.
> >>> So there this gives you a fairly meaningless number and not anything
> >>> reflecting gpu memory usage at all.
> >>>
> >>> - on Android all buffers are allocated through dma-buf afaik. But there
> >>> we've recently had some discussions about how exactly we should track
> >>> all this, and the conclusion was that most of this should be solved by
> >>> cgroups long term. So if this is for Android, then I don't think adding
> >>> random quick stop-gaps to upstream is a good idea (because it's a pretty
> >>> long list of patches that have come up on this).
> >>>
> >>> So what is this for?
> >> For the overview. dma-buf today only have debugfs for info. Debugfs
> >> is not allowed by google to use in andoid. So this aggregate the information
> >> so we can get information on what going on on the system.
> >
> > Can you send an example debugfs output to see what data are we talking
> > about?
>
> Sure. This is on a idle system. Im not sure why you need it.The problem is partly that debugfs is
> not accessable on a commercial device.
I wanted to see what kind of information is there, but I didn't think it's
that long :)
> Dma-buf Objects:
> size flags mode count exp_name buf name ino
> 00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17728 07400825 dmabuf17728
> Attached Devices:
> Total 0 devices attached
>
> 11083776 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17727 07400824 dmabuf17727
> Attached Devices:
> ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
> Total 1 devices attached
>
> 00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17726 07400823 dmabuf17726
> Attached Devices:
> Total 0 devices attached
>
> 11083776 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17725 07400822 dmabuf17725
> Attached Devices:
> ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
> Total 1 devices attached
...
> Total 654 objects, 744144896 bytes
Isn't the size from the first column also available in fdinfo?
Is there anything that prevents monitoring those?
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 11:52 ` Mike Rapoport
@ 2021-04-20 12:03 ` Peter.Enderborg
0 siblings, 0 replies; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-20 12:03 UTC (permalink / raw)
To: rppt
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On 4/20/21 1:52 PM, Mike Rapoport wrote:
> On Tue, Apr 20, 2021 at 10:45:21AM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/20/21 11:41 AM, Mike Rapoport wrote:
>>> Hello Peter,
>>>
>>> On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
>>>> On 4/20/21 10:58 AM, Daniel Vetter wrote:
>>>>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
>>>>>> This adds a total used dma-buf memory. Details
>>>>>> can be found in debugfs, however it is not for everyone
>>>>>> and not always available. dma-buf are indirect allocated by
>>>>>> userspace. So with this value we can monitor and detect
>>>>>> userspace applications that have problems.
>>>>>>
>>>>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
>>>>> So there have been tons of discussions around how to track dma-buf and
>>>>> why, and I really need to understand the use-cass here first I think. proc
>>>>> uapi is as much forever as anything else, and depending what you're doing
>>>>> this doesn't make any sense at all:
>>>>>
>>>>> - on most linux systems dma-buf are only instantiated for shared buffer.
>>>>> So there this gives you a fairly meaningless number and not anything
>>>>> reflecting gpu memory usage at all.
>>>>>
>>>>> - on Android all buffers are allocated through dma-buf afaik. But there
>>>>> we've recently had some discussions about how exactly we should track
>>>>> all this, and the conclusion was that most of this should be solved by
>>>>> cgroups long term. So if this is for Android, then I don't think adding
>>>>> random quick stop-gaps to upstream is a good idea (because it's a pretty
>>>>> long list of patches that have come up on this).
>>>>>
>>>>> So what is this for?
>>>> For the overview. dma-buf today only have debugfs for info. Debugfs
>>>> is not allowed by google to use in andoid. So this aggregate the information
>>>> so we can get information on what going on on the system.
>>>
>>> Can you send an example debugfs output to see what data are we talking
>>> about?
>> Sure. This is on a idle system. Im not sure why you need it.The problem is partly that debugfs is
>> not accessable on a commercial device.
> I wanted to see what kind of information is there, but I didn't think it's
> that long :)
Sorry, but it was making a point.
>
>> Dma-buf Objects:
>> size flags mode count exp_name buf name ino
>> 00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17728 07400825 dmabuf17728
>> Attached Devices:
>> Total 0 devices attached
>>
>> 11083776 00000002 00080007 00000003 ion-system-1006-allocator-servi dmabuf17727 07400824 dmabuf17727
>> Attached Devices:
>> ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
>> Total 1 devices attached
>>
>> 00032768 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17726 07400823 dmabuf17726
>> Attached Devices:
>> Total 0 devices attached
>>
>> 11083776 00000002 00080007 00000002 ion-system-1006-allocator-servi dmabuf17725 07400822 dmabuf17725
>> Attached Devices:
>> ae00000.qcom,mdss_mdp:qcom,smmu_sde_unsec_cb
>> Total 1 devices attached
> ...
>
>> Total 654 objects, 744144896 bytes
>
> Isn't the size from the first column also available in fdinfo?
>
> Is there anything that prevents monitoring those?
>
Yes, selinux.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-20 11:37 ` Peter.Enderborg
@ 2021-04-21 9:15 ` Daniel Vetter
2021-04-21 10:37 ` Peter.Enderborg
0 siblings, 1 reply; 19+ messages in thread
From: Daniel Vetter @ 2021-04-21 9:15 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
On Tue, Apr 20, 2021 at 11:37:41AM +0000, Peter.Enderborg@sony.com wrote:
> On 4/20/21 1:14 PM, Daniel Vetter wrote:
> > On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
> >> On 4/20/21 10:58 AM, Daniel Vetter wrote:
> >>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
> >>>> This adds a total used dma-buf memory. Details
> >>>> can be found in debugfs, however it is not for everyone
> >>>> and not always available. dma-buf are indirect allocated by
> >>>> userspace. So with this value we can monitor and detect
> >>>> userspace applications that have problems.
> >>>>
> >>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
> >>> So there have been tons of discussions around how to track dma-buf and
> >>> why, and I really need to understand the use-cass here first I think. proc
> >>> uapi is as much forever as anything else, and depending what you're doing
> >>> this doesn't make any sense at all:
> >>>
> >>> - on most linux systems dma-buf are only instantiated for shared buffer.
> >>> So there this gives you a fairly meaningless number and not anything
> >>> reflecting gpu memory usage at all.
> >>>
> >>> - on Android all buffers are allocated through dma-buf afaik. But there
> >>> we've recently had some discussions about how exactly we should track
> >>> all this, and the conclusion was that most of this should be solved by
> >>> cgroups long term. So if this is for Android, then I don't think adding
> >>> random quick stop-gaps to upstream is a good idea (because it's a pretty
> >>> long list of patches that have come up on this).
> >>>
> >>> So what is this for?
> >> For the overview. dma-buf today only have debugfs for info. Debugfs
> >> is not allowed by google to use in andoid. So this aggregate the information
> >> so we can get information on what going on on the system.
> >>
> >> And the LKML standard respond to that is "SHOW ME THE CODE".
> > Yes. Except this extends to how exactly this is supposed to be used in
> > userspace and acted upon.
> >
> >> When the top memgc has a aggregated information on dma-buf it is maybe
> >> a better source to meminfo. But then it also imply that dma-buf requires memcg.
> >>
> >> And I dont see any problem to replace this with something better with it is ready.
> > The thing is, this is uapi. Once it's merged we cannot, ever, replace it.
> > It must be kept around forever, or a very close approximation thereof. So
> > merging this with the justification that we can fix it later on or replace
> > isn't going to happen.
>
> It is intended to be relevant as long there is a dma-buf. This is a proper
> metric. If the newer implementations is not get the same result it is
> not doing it right and is not better. If a memcg counter or a global_zone
> counter do the same thing they it can replace the suggested method.
We're not talking about a memcg controller, but about a dma-buf tracker.
Also my point was that you might not have a dma-buf on most linux systems
(outside of android really) for most gpu allocations. So we kinda need to
understand what you actually want to measure, not "I want to count all the
dma-buf in the system". Because that's a known-problematic metric in
general.
> But I dont think they will. dma-buf does not have to be mapped to a process,
> and the case of vram, it is not covered in current global_zone. All of them
> would be very nice to have in some form. But it wont change what the
> correct value of what "Total" is.
We need to understand what the "correct" value is. Not in terms of kernel
code, but in terms of semantics. Like if userspace allocates a GL texture,
is this supposed to show up in your metric or not. Stuff like that.
-Daniel
>
>
> > -Daniel
> >
> >>> -Daniel
> >>>
> >>>> ---
> >>>> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
> >>>> fs/proc/meminfo.c | 5 ++++-
> >>>> include/linux/dma-buf.h | 1 +
> >>>> 3 files changed, 17 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> >>>> index f264b70c383e..4dc37cd4293b 100644
> >>>> --- a/drivers/dma-buf/dma-buf.c
> >>>> +++ b/drivers/dma-buf/dma-buf.c
> >>>> @@ -37,6 +37,7 @@ struct dma_buf_list {
> >>>> };
> >>>>
> >>>> static struct dma_buf_list db_list;
> >>>> +static atomic_long_t dma_buf_global_allocated;
> >>>>
> >>>> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
> >>>> {
> >>>> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
> >>>> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
> >>>> dma_resv_fini(dmabuf->resv);
> >>>>
> >>>> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
> >>>> module_put(dmabuf->owner);
> >>>> kfree(dmabuf->name);
> >>>> kfree(dmabuf);
> >>>> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
> >>>> mutex_lock(&db_list.lock);
> >>>> list_add(&dmabuf->list_node, &db_list.head);
> >>>> mutex_unlock(&db_list.lock);
> >>>> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
> >>>>
> >>>> return dmabuf;
> >>>>
> >>>> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
> >>>> }
> >>>> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
> >>>>
> >>>> +/**
> >>>> + * dma_buf_allocated_pages - Return the used nr of pages
> >>>> + * allocated for dma-buf
> >>>> + */
> >>>> +long dma_buf_allocated_pages(void)
> >>>> +{
> >>>> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
> >>>> +}
> >>>> +
> >>>> #ifdef CONFIG_DEBUG_FS
> >>>> static int dma_buf_debug_show(struct seq_file *s, void *unused)
> >>>> {
> >>>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
> >>>> index 6fa761c9cc78..ccc7c40c8db7 100644
> >>>> --- a/fs/proc/meminfo.c
> >>>> +++ b/fs/proc/meminfo.c
> >>>> @@ -16,6 +16,7 @@
> >>>> #ifdef CONFIG_CMA
> >>>> #include <linux/cma.h>
> >>>> #endif
> >>>> +#include <linux/dma-buf.h>
> >>>> #include <asm/page.h>
> >>>> #include "internal.h"
> >>>>
> >>>> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
> >>>> show_val_kb(m, "CmaFree: ",
> >>>> global_zone_page_state(NR_FREE_CMA_PAGES));
> >>>> #endif
> >>>> -
> >>>> +#ifdef CONFIG_DMA_SHARED_BUFFER
> >>>> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
> >>>> +#endif
> >>>> hugetlb_report_meminfo(m);
> >>>>
> >>>> arch_report_meminfo(m);
> >>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> >>>> index efdc56b9d95f..5b05816bd2cd 100644
> >>>> --- a/include/linux/dma-buf.h
> >>>> +++ b/include/linux/dma-buf.h
> >>>> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
> >>>> unsigned long);
> >>>> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >>>> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
> >>>> +long dma_buf_allocated_pages(void);
> >>>> #endif /* __DMA_BUF_H__ */
> >>>> --
> >>>> 2.17.1
> >>>>
> >>>> _______________________________________________
> >>>> dri-devel mailing list
> >>>> dri-devel@lists.freedesktop.org
> >>>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel@lists.freedesktop.org
> >> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!vXvDg6I4V__QdL2fA08Rc5v6rjDzxOIQz6kwyMMLUK3_g4z7qZTg1H98BDDTxZeZjI4$
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 9:15 ` Daniel Vetter
@ 2021-04-21 10:37 ` Peter.Enderborg
2021-04-21 10:57 ` Michal Hocko
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-21 10:37 UTC (permalink / raw)
To: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
On 4/21/21 11:15 AM, Daniel Vetter wrote:
> On Tue, Apr 20, 2021 at 11:37:41AM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/20/21 1:14 PM, Daniel Vetter wrote:
>>> On Tue, Apr 20, 2021 at 09:26:00AM +0000, Peter.Enderborg@sony.com wrote:
>>>> On 4/20/21 10:58 AM, Daniel Vetter wrote:
>>>>> On Sat, Apr 17, 2021 at 06:38:35PM +0200, Peter Enderborg wrote:
>>>>>> This adds a total used dma-buf memory. Details
>>>>>> can be found in debugfs, however it is not for everyone
>>>>>> and not always available. dma-buf are indirect allocated by
>>>>>> userspace. So with this value we can monitor and detect
>>>>>> userspace applications that have problems.
>>>>>>
>>>>>> Signed-off-by: Peter Enderborg <peter.enderborg@sony.com>
>>>>> So there have been tons of discussions around how to track dma-buf and
>>>>> why, and I really need to understand the use-cass here first I think. proc
>>>>> uapi is as much forever as anything else, and depending what you're doing
>>>>> this doesn't make any sense at all:
>>>>>
>>>>> - on most linux systems dma-buf are only instantiated for shared buffer.
>>>>> So there this gives you a fairly meaningless number and not anything
>>>>> reflecting gpu memory usage at all.
>>>>>
>>>>> - on Android all buffers are allocated through dma-buf afaik. But there
>>>>> we've recently had some discussions about how exactly we should track
>>>>> all this, and the conclusion was that most of this should be solved by
>>>>> cgroups long term. So if this is for Android, then I don't think adding
>>>>> random quick stop-gaps to upstream is a good idea (because it's a pretty
>>>>> long list of patches that have come up on this).
>>>>>
>>>>> So what is this for?
>>>> For the overview. dma-buf today only have debugfs for info. Debugfs
>>>> is not allowed by google to use in andoid. So this aggregate the information
>>>> so we can get information on what going on on the system.
>>>>
>>>> And the LKML standard respond to that is "SHOW ME THE CODE".
>>> Yes. Except this extends to how exactly this is supposed to be used in
>>> userspace and acted upon.
>>>
>>>> When the top memgc has a aggregated information on dma-buf it is maybe
>>>> a better source to meminfo. But then it also imply that dma-buf requires memcg.
>>>>
>>>> And I dont see any problem to replace this with something better with it is ready.
>>> The thing is, this is uapi. Once it's merged we cannot, ever, replace it.
>>> It must be kept around forever, or a very close approximation thereof. So
>>> merging this with the justification that we can fix it later on or replace
>>> isn't going to happen.
>> It is intended to be relevant as long there is a dma-buf. This is a proper
>> metric. If the newer implementations is not get the same result it is
>> not doing it right and is not better. If a memcg counter or a global_zone
>> counter do the same thing they it can replace the suggested method.
> We're not talking about a memcg controller, but about a dma-buf tracker.
>
> Also my point was that you might not have a dma-buf on most linux systems
> (outside of android really) for most gpu allocations. So we kinda need to
> understand what you actually want to measure, not "I want to count all the
> dma-buf in the system". Because that's a known-problematic metric in
> general.
I have got some android in my Fedora 33 then.
cat /sys/kernel/debug/dma_buf/bufinfo
Dma-buf Objects:
size flags mode count exp_name ino
04456448 00000000 00080005 00000003 drm 05267137
Exclusive fence: nouveau Xwayland[154936] signalled
Attached Devices:
Total 0 devices attached
00851968 00000000 00080005 00000003 drm 03571790
Exclusive fence: nouveau Xwayland[154936] signalled
Shared fence: nouveau systemd-logind[691] signalled
Attached Devices:
Total 0 devices attached
00851968 00000000 00080005 00000003 drm 03556344
Exclusive fence: nouveau Xwayland[154936] signalled
Shared fence: nouveau systemd-logind[691] signalled
Attached Devices:
Total 0 devices attached
00851968 00000000 00080005 00000003 drm 03249623
Exclusive fence: nouveau Xwayland[154936] signalled
Shared fence: nouveau systemd-logind[691] signalled
Attached Devices:
Total 0 devices attached
Total 4 objects, 7012352 bytes
It is on my old ubuntu's too, but no clients.
>> But I dont think they will. dma-buf does not have to be mapped to a process,
>> and the case of vram, it is not covered in current global_zone. All of them
>> would be very nice to have in some form. But it wont change what the
>> correct value of what "Total" is.
> We need to understand what the "correct" value is. Not in terms of kernel
> code, but in terms of semantics. Like if userspace allocates a GL texture,
> is this supposed to show up in your metric or not. Stuff like that.
That it like that would like to only one pointer type. You need to know what
you pointing at to know what it is. it might be a hardware or a other pointer.
If there is a limitation on your pointers it is a good metric to count them
even if you don't know what they are. Same goes for dma-buf, they
are generic, but they consume some resources that are counted in pages.
It would be very good if there a sub division where you could measure
all possible types separately. We have the detailed in debugfs, but nothing
for the user. A summary in meminfo seems to be the best place for such
metric.
> -Daniel
>
>>
>>> -Daniel
>>>
>>>>> -Daniel
>>>>>
>>>>>> ---
>>>>>> drivers/dma-buf/dma-buf.c | 12 ++++++++++++
>>>>>> fs/proc/meminfo.c | 5 ++++-
>>>>>> include/linux/dma-buf.h | 1 +
>>>>>> 3 files changed, 17 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>>>>>> index f264b70c383e..4dc37cd4293b 100644
>>>>>> --- a/drivers/dma-buf/dma-buf.c
>>>>>> +++ b/drivers/dma-buf/dma-buf.c
>>>>>> @@ -37,6 +37,7 @@ struct dma_buf_list {
>>>>>> };
>>>>>>
>>>>>> static struct dma_buf_list db_list;
>>>>>> +static atomic_long_t dma_buf_global_allocated;
>>>>>>
>>>>>> static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
>>>>>> {
>>>>>> @@ -79,6 +80,7 @@ static void dma_buf_release(struct dentry *dentry)
>>>>>> if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
>>>>>> dma_resv_fini(dmabuf->resv);
>>>>>>
>>>>>> + atomic_long_sub(dmabuf->size, &dma_buf_global_allocated);
>>>>>> module_put(dmabuf->owner);
>>>>>> kfree(dmabuf->name);
>>>>>> kfree(dmabuf);
>>>>>> @@ -586,6 +588,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info)
>>>>>> mutex_lock(&db_list.lock);
>>>>>> list_add(&dmabuf->list_node, &db_list.head);
>>>>>> mutex_unlock(&db_list.lock);
>>>>>> + atomic_long_add(dmabuf->size, &dma_buf_global_allocated);
>>>>>>
>>>>>> return dmabuf;
>>>>>>
>>>>>> @@ -1346,6 +1349,15 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
>>>>>> }
>>>>>> EXPORT_SYMBOL_GPL(dma_buf_vunmap);
>>>>>>
>>>>>> +/**
>>>>>> + * dma_buf_allocated_pages - Return the used nr of pages
>>>>>> + * allocated for dma-buf
>>>>>> + */
>>>>>> +long dma_buf_allocated_pages(void)
>>>>>> +{
>>>>>> + return atomic_long_read(&dma_buf_global_allocated) >> PAGE_SHIFT;
>>>>>> +}
>>>>>> +
>>>>>> #ifdef CONFIG_DEBUG_FS
>>>>>> static int dma_buf_debug_show(struct seq_file *s, void *unused)
>>>>>> {
>>>>>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
>>>>>> index 6fa761c9cc78..ccc7c40c8db7 100644
>>>>>> --- a/fs/proc/meminfo.c
>>>>>> +++ b/fs/proc/meminfo.c
>>>>>> @@ -16,6 +16,7 @@
>>>>>> #ifdef CONFIG_CMA
>>>>>> #include <linux/cma.h>
>>>>>> #endif
>>>>>> +#include <linux/dma-buf.h>
>>>>>> #include <asm/page.h>
>>>>>> #include "internal.h"
>>>>>>
>>>>>> @@ -145,7 +146,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>>>>>> show_val_kb(m, "CmaFree: ",
>>>>>> global_zone_page_state(NR_FREE_CMA_PAGES));
>>>>>> #endif
>>>>>> -
>>>>>> +#ifdef CONFIG_DMA_SHARED_BUFFER
>>>>>> + show_val_kb(m, "DmaBufTotal: ", dma_buf_allocated_pages());
>>>>>> +#endif
>>>>>> hugetlb_report_meminfo(m);
>>>>>>
>>>>>> arch_report_meminfo(m);
>>>>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>>>>>> index efdc56b9d95f..5b05816bd2cd 100644
>>>>>> --- a/include/linux/dma-buf.h
>>>>>> +++ b/include/linux/dma-buf.h
>>>>>> @@ -507,4 +507,5 @@ int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
>>>>>> unsigned long);
>>>>>> int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>>>> void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
>>>>>> +long dma_buf_allocated_pages(void);
>>>>>> #endif /* __DMA_BUF_H__ */
>>>>>> --
>>>>>> 2.17.1
>>>>>>
>>>>>> _______________________________________________
>>>>>> dri-devel mailing list
>>>>>> dri-devel@lists.freedesktop.org
>>>>>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!qW8kUOZyY4Dkew6OvqgfoM-5unQNVeF_M1biaIAyQQBR0KB7ksRzZjoh382ZdGGQR9k$
>>>> _______________________________________________
>>>> dri-devel mailing list
>>>> dri-devel@lists.freedesktop.org
>>>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!vXvDg6I4V__QdL2fA08Rc5v6rjDzxOIQz6kwyMMLUK3_g4z7qZTg1H98BDDTxZeZjI4$
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://urldefense.com/v3/__https://lists.freedesktop.org/mailman/listinfo/dri-devel__;!!JmoZiZGBv3RvKRSx!od9haTp00uB35ksL1F2pfvwodlxNjU4P8cx3MUi7xJzbcP00uLbUGfTQaMK8Q2oFhS0$
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 10:37 ` Peter.Enderborg
@ 2021-04-21 10:57 ` Michal Hocko
2021-04-21 13:05 ` Pekka Paalanen
2021-04-21 15:31 ` Mike Rapoport
2 siblings, 0 replies; 19+ messages in thread
From: Michal Hocko @ 2021-04-21 10:57 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, neilb, samitolvanen,
rppt, linux-media, dri-devel, linaro-mm-sig, willy
On Wed 21-04-21 10:37:11, Peter.Enderborg@sony.com wrote:
> On 4/21/21 11:15 AM, Daniel Vetter wrote:
[...]
> > We need to understand what the "correct" value is. Not in terms of kernel
> > code, but in terms of semantics. Like if userspace allocates a GL texture,
> > is this supposed to show up in your metric or not. Stuff like that.
> That it like that would like to only one pointer type. You need to know what
>
> you pointing at to know what it is. it might be a hardware or a other pointer.
>
> If there is a limitation on your pointers it is a good metric to count them
> even if you don't know what they are. Same goes for dma-buf, they
> are generic, but they consume some resources that are counted in pages.
>
> It would be very good if there a sub division where you could measure
> all possible types separately. We have the detailed in debugfs, but nothing
> for the user. A summary in meminfo seems to be the best place for such
> metric.
I strongly suspect that the main problem of this patch (and its previous
versions) is that you are failing to explain the purpose of the counter
to others. From what you have said so far it sounds like this is a
number which is nice to have because gives us more than nothing. And
while this is not really hard to agree with it doesn't really meet the
justification for exporting yet another counter to the userspace with
all the headache of the future maintenance. I think it would hugely help
to describe a typical scenario when the counter would be useful and the
conclusion you can draw from the exported value or a set of values over
time.
And please note that a mixed bag of different memory resources in a
single counter doesn't make this any easier because then it essentially
makes it impossible to know whether an excessive usage contribues to RAM
or device memory depletion - hence this is completely bogus for the OOM
report.
--
Michal Hocko
SUSE Labs
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 10:37 ` Peter.Enderborg
2021-04-21 10:57 ` Michal Hocko
@ 2021-04-21 13:05 ` Pekka Paalanen
2021-04-21 15:31 ` Mike Rapoport
2 siblings, 0 replies; 19+ messages in thread
From: Pekka Paalanen @ 2021-04-21 13:05 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, rppt, linux-media, dri-devel, linaro-mm-sig, willy
[-- Attachment #1: Type: text/plain, Size: 2572 bytes --]
On Wed, 21 Apr 2021 10:37:11 +0000
<Peter.Enderborg@sony.com> wrote:
> On 4/21/21 11:15 AM, Daniel Vetter wrote:
> > On Tue, Apr 20, 2021 at 11:37:41AM +0000, Peter.Enderborg@sony.com wrote:
> >> But I dont think they will. dma-buf does not have to be mapped to a process,
> >> and the case of vram, it is not covered in current global_zone. All of them
> >> would be very nice to have in some form. But it wont change what the
> >> correct value of what "Total" is.
> > We need to understand what the "correct" value is. Not in terms of kernel
> > code, but in terms of semantics. Like if userspace allocates a GL texture,
> > is this supposed to show up in your metric or not. Stuff like that.
> That it like that would like to only one pointer type. You need to know what
> you pointing at to know what it is. it might be a hardware or a other pointer.
To clarify the GL texture example: a GL texture consumes "graphics
memory", whatever that is, but they are not allocated as dmabufs. So
they count for resource consumption, but they do not show up in your
counter, until they become exported. Most GL textures are never
exported at all. In fact, exporting GL textures is a path strongly
recommended against due to unsuitable EGL/GL API.
As far as I understand, dmabufs are never allocated as is. Dmabufs
always just wrap an existing memory allocation. So creating (exporting)
a dmabuf does not increase resource usage. Allocation increases
resource usage, and most allocations are never exported.
> If there is a limitation on your pointers it is a good metric to count them
> even if you don't know what they are. Same goes for dma-buf, they
> are generic, but they consume some resources that are counted in pages.
Given above, I could even argue that *dmabufs* do not consume
resources. They only reference resources that were already allocated
by some specific means (not generic). They might keep the resource
allocated, preventing it from being freed if leaked.
As you might know, there is no really generic "dmabuf allocator", not
as a kernel UAPI nor as a userspace library (the hypothetical Unix
Device Memory Allocator library notwithstanding).
So this kind of leaves the question, what is DmaBufTotal good for? Is
it the same kind of counter as VIRT in 'top'? If you know your
particular programs, you can maybe infer if VIRT is too much or not,
but for e.g. WebKitWebProcess it is normal to have 85 GB in VIRT and
it's not a problem (like I have, on this 8 GB RAM machine).
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 10:37 ` Peter.Enderborg
2021-04-21 10:57 ` Michal Hocko
2021-04-21 13:05 ` Pekka Paalanen
@ 2021-04-21 15:31 ` Mike Rapoport
2021-04-21 17:35 ` Peter.Enderborg
2 siblings, 1 reply; 19+ messages in thread
From: Mike Rapoport @ 2021-04-21 15:31 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On Wed, Apr 21, 2021 at 10:37:11AM +0000, Peter.Enderborg@sony.com wrote:
> On 4/21/21 11:15 AM, Daniel Vetter wrote:
> >
> > We need to understand what the "correct" value is. Not in terms of kernel
> > code, but in terms of semantics. Like if userspace allocates a GL texture,
> > is this supposed to show up in your metric or not. Stuff like that.
> That it like that would like to only one pointer type. You need to know what
>
> you pointing at to know what it is. it might be a hardware or a other pointer.
>
> If there is a limitation on your pointers it is a good metric to count them
> even if you don't know what they are. Same goes for dma-buf, they
> are generic, but they consume some resources that are counted in pages.
>
> It would be very good if there a sub division where you could measure
> all possible types separately. We have the detailed in debugfs, but nothing
> for the user. A summary in meminfo seems to be the best place for such
> metric.
Let me try to summarize my understanding of the problem, maybe it'll help
others as well.
A device driver allocates memory and exports this memory via dma-buf so
that this memory will be accessible for userspace via a file descriptor.
The allocated memory can be either allocated with alloc_page() from system
RAM or by other means from dedicated VRAM (that is not managed by Linux mm)
or even from on-device memory.
The dma-buf driver tracks the amount of the memory it was requested to
export and the size it sees is available at debugfs and fdinfo.
The debugfs is not available to user and maybe entirely disabled in
production systems.
There could be quite a few open dma-bufs so there is no overall summary,
plus fdinfo in production systems your refer to is also unavailable to the
user because of selinux policy.
And there are a few details that are not clear to me:
* Since DRM device drivers seem to be the major user of dma-buf exports,
why cannot we add information about their memory consumption to, say,
/sys/class/graphics/drm/cardX/memory-usage?
* How exactly user generates reports that would include the new counters?
From my (mostly outdated) experience Android users won't open a terminal
and type 'cat /proc/meminfo' there. I'd presume there is a vendor agent
that collects the data and sends it for analysis. In this case what is
the reason the vendor is unable to adjust selinix policy so that the
agent will be able to access fdinfo?
* And, as others already mentioned, it is not clear what are the problems
that can be detected by examining DmaBufTotal except saying "oh, there is
too much/too little memory exported via dma-buf". What would be user
visible effects of these problems? What are the next steps to investigate
them? What other data will be probably required to identify root cause?
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 15:31 ` Mike Rapoport
@ 2021-04-21 17:35 ` Peter.Enderborg
2021-04-22 8:06 ` Mike Rapoport
0 siblings, 1 reply; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-21 17:35 UTC (permalink / raw)
To: rppt
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On 4/21/21 5:31 PM, Mike Rapoport wrote:
> On Wed, Apr 21, 2021 at 10:37:11AM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/21/21 11:15 AM, Daniel Vetter wrote:
>>> We need to understand what the "correct" value is. Not in terms of kernel
>>> code, but in terms of semantics. Like if userspace allocates a GL texture,
>>> is this supposed to show up in your metric or not. Stuff like that.
>> That it like that would like to only one pointer type. You need to know what
>>
>> you pointing at to know what it is. it might be a hardware or a other pointer.
>>
>> If there is a limitation on your pointers it is a good metric to count them
>> even if you don't know what they are. Same goes for dma-buf, they
>> are generic, but they consume some resources that are counted in pages.
>>
>> It would be very good if there a sub division where you could measure
>> all possible types separately. We have the detailed in debugfs, but nothing
>> for the user. A summary in meminfo seems to be the best place for such
>> metric.
>
> Let me try to summarize my understanding of the problem, maybe it'll help
> others as well.
Thanks!
> A device driver allocates memory and exports this memory via dma-buf so
> that this memory will be accessible for userspace via a file descriptor.
>
> The allocated memory can be either allocated with alloc_page() from system
> RAM or by other means from dedicated VRAM (that is not managed by Linux mm)
> or even from on-device memory.
>
> The dma-buf driver tracks the amount of the memory it was requested to
> export and the size it sees is available at debugfs and fdinfo.
>
> The debugfs is not available to user and maybe entirely disabled in
> production systems.
>
> There could be quite a few open dma-bufs so there is no overall summary,
> plus fdinfo in production systems your refer to is also unavailable to the
> user because of selinux policy.
>
> And there are a few details that are not clear to me:
>
> * Since DRM device drivers seem to be the major user of dma-buf exports,
> why cannot we add information about their memory consumption to, say,
> /sys/class/graphics/drm/cardX/memory-usage?
Android is using it for binder that connect more or less everything
internally.
> * How exactly user generates reports that would include the new counters?
> From my (mostly outdated) experience Android users won't open a terminal
> and type 'cat /proc/meminfo' there. I'd presume there is a vendor agent
> that collects the data and sends it for analysis. In this case what is
> the reason the vendor is unable to adjust selinix policy so that the
> agent will be able to access fdinfo?
When you turn on developer mode on android you can use
usb with a program called adb. And there you get a normal shell.
(not root though)
There is applications that non developers can use to get
information. It is very limited though and there are API's
provide it.
>
> * And, as others already mentioned, it is not clear what are the problems
> that can be detected by examining DmaBufTotal except saying "oh, there is
> too much/too little memory exported via dma-buf". What would be user
> visible effects of these problems? What are the next steps to investigate
> them? What other data will be probably required to identify root cause?
>
When you debug thousands of devices it is quite nice to have
ways to classify what the problem it is not. The normal user does not
see anything of this. However they can generate bug-reports that
collect information about as much they can. Then the user have
to provide this bug-report to the manufacture or mostly the
application developer. And when the problem is
system related we need to reproduce the issue on a full
debug enabled unit.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-21 17:35 ` Peter.Enderborg
@ 2021-04-22 8:06 ` Mike Rapoport
2021-04-22 14:08 ` Peter.Enderborg
0 siblings, 1 reply; 19+ messages in thread
From: Mike Rapoport @ 2021-04-22 8:06 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On Wed, Apr 21, 2021 at 05:35:57PM +0000, Peter.Enderborg@sony.com wrote:
> On 4/21/21 5:31 PM, Mike Rapoport wrote:
> > On Wed, Apr 21, 2021 at 10:37:11AM +0000, Peter.Enderborg@sony.com wrote:
> >> On 4/21/21 11:15 AM, Daniel Vetter wrote:
> >>> We need to understand what the "correct" value is. Not in terms of kernel
> >>> code, but in terms of semantics. Like if userspace allocates a GL texture,
> >>> is this supposed to show up in your metric or not. Stuff like that.
> >> That it like that would like to only one pointer type. You need to know what
> >>
> >> you pointing at to know what it is. it might be a hardware or a other pointer.
> >>
> >> If there is a limitation on your pointers it is a good metric to count them
> >> even if you don't know what they are. Same goes for dma-buf, they
> >> are generic, but they consume some resources that are counted in pages.
> >>
> >> It would be very good if there a sub division where you could measure
> >> all possible types separately. We have the detailed in debugfs, but nothing
> >> for the user. A summary in meminfo seems to be the best place for such
> >> metric.
> >
> > Let me try to summarize my understanding of the problem, maybe it'll help
> > others as well.
>
> Thanks!
>
>
> > A device driver allocates memory and exports this memory via dma-buf so
> > that this memory will be accessible for userspace via a file descriptor.
> >
> > The allocated memory can be either allocated with alloc_page() from system
> > RAM or by other means from dedicated VRAM (that is not managed by Linux mm)
> > or even from on-device memory.
> >
> > The dma-buf driver tracks the amount of the memory it was requested to
> > export and the size it sees is available at debugfs and fdinfo.
> >
> > The debugfs is not available to user and maybe entirely disabled in
> > production systems.
> >
> > There could be quite a few open dma-bufs so there is no overall summary,
> > plus fdinfo in production systems your refer to is also unavailable to the
> > user because of selinux policy.
> >
> > And there are a few details that are not clear to me:
> >
> > * Since DRM device drivers seem to be the major user of dma-buf exports,
> > why cannot we add information about their memory consumption to, say,
> > /sys/class/graphics/drm/cardX/memory-usage?
>
> Android is using it for binder that connect more or less everything
> internally.
Ok, then it rules out /sys/class/graphics indeed.
> > * How exactly user generates reports that would include the new counters?
> > From my (mostly outdated) experience Android users won't open a terminal
> > and type 'cat /proc/meminfo' there. I'd presume there is a vendor agent
> > that collects the data and sends it for analysis. In this case what is
> > the reason the vendor is unable to adjust selinix policy so that the
> > agent will be able to access fdinfo?
>
> When you turn on developer mode on android you can use
> usb with a program called adb. And there you get a normal shell.
>
> (not root though)
>
> There is applications that non developers can use to get
> information. It is very limited though and there are API's
> provide it.
>
>
> >
> > * And, as others already mentioned, it is not clear what are the problems
> > that can be detected by examining DmaBufTotal except saying "oh, there is
> > too much/too little memory exported via dma-buf". What would be user
> > visible effects of these problems? What are the next steps to investigate
> > them? What other data will be probably required to identify root cause?
> >
> When you debug thousands of devices it is quite nice to have
> ways to classify what the problem it is not. The normal user does not
> see anything of this. However they can generate bug-reports that
> collect information about as much they can. Then the user have
> to provide this bug-report to the manufacture or mostly the
> application developer. And when the problem is
> system related we need to reproduce the issue on a full
> debug enabled unit.
So the flow is like this:
* a user has a problem and reports it to an application developer; at best
the user runs simple and limited app to collect some data
* if the application developer considers this issue as a system related
they can open adb and collect some more information about the system
using non-root shell with selinux policy restrictions and send this
information to the device manufacturer.
* the manufacturer continues to debug the issue and at this point as much
information is possible would have been useful.
In this flow I still fail to understand why the manufacturer cannot provide
userspace tools that will be able to collect the required information.
These tools not necessarily need to target the end user, they may be only
intended for the application developers, e.g. policy could allow such tool
to access some of the system data only when the system is in developer
mode.
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-22 8:06 ` Mike Rapoport
@ 2021-04-22 14:08 ` Peter.Enderborg
2021-04-25 7:33 ` Mike Rapoport
0 siblings, 1 reply; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-22 14:08 UTC (permalink / raw)
To: rppt
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On 4/22/21 10:06 AM, Mike Rapoport wrote:
> On Wed, Apr 21, 2021 at 05:35:57PM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/21/21 5:31 PM, Mike Rapoport wrote:
>>> On Wed, Apr 21, 2021 at 10:37:11AM +0000, Peter.Enderborg@sony.com wrote:
>>>> On 4/21/21 11:15 AM, Daniel Vetter wrote:
>>>>> We need to understand what the "correct" value is. Not in terms of kernel
>>>>> code, but in terms of semantics. Like if userspace allocates a GL texture,
>>>>> is this supposed to show up in your metric or not. Stuff like that.
>>>> That it like that would like to only one pointer type. You need to know what
>>>>
>>>> you pointing at to know what it is. it might be a hardware or a other pointer.
>>>>
>>>> If there is a limitation on your pointers it is a good metric to count them
>>>> even if you don't know what they are. Same goes for dma-buf, they
>>>> are generic, but they consume some resources that are counted in pages.
>>>>
>>>> It would be very good if there a sub division where you could measure
>>>> all possible types separately. We have the detailed in debugfs, but nothing
>>>> for the user. A summary in meminfo seems to be the best place for such
>>>> metric.
>>>
>>> Let me try to summarize my understanding of the problem, maybe it'll help
>>> others as well.
>> Thanks!
>>
>>
>>> A device driver allocates memory and exports this memory via dma-buf so
>>> that this memory will be accessible for userspace via a file descriptor.
>>>
>>> The allocated memory can be either allocated with alloc_page() from system
>>> RAM or by other means from dedicated VRAM (that is not managed by Linux mm)
>>> or even from on-device memory.
>>>
>>> The dma-buf driver tracks the amount of the memory it was requested to
>>> export and the size it sees is available at debugfs and fdinfo.
>>>
>>> The debugfs is not available to user and maybe entirely disabled in
>>> production systems.
>>>
>>> There could be quite a few open dma-bufs so there is no overall summary,
>>> plus fdinfo in production systems your refer to is also unavailable to the
>>> user because of selinux policy.
>>>
>>> And there are a few details that are not clear to me:
>>>
>>> * Since DRM device drivers seem to be the major user of dma-buf exports,
>>> why cannot we add information about their memory consumption to, say,
>>> /sys/class/graphics/drm/cardX/memory-usage?
>> Android is using it for binder that connect more or less everything
>> internally.
>
> Ok, then it rules out /sys/class/graphics indeed.
>
>>> * How exactly user generates reports that would include the new counters?
>>> From my (mostly outdated) experience Android users won't open a terminal
>>> and type 'cat /proc/meminfo' there. I'd presume there is a vendor agent
>>> that collects the data and sends it for analysis. In this case what is
>>> the reason the vendor is unable to adjust selinix policy so that the
>>> agent will be able to access fdinfo?
>> When you turn on developer mode on android you can use
>> usb with a program called adb. And there you get a normal shell.
>>
>> (not root though)
>>
>> There is applications that non developers can use to get
>> information. It is very limited though and there are API's
>> provide it.
>>
>>
>>> * And, as others already mentioned, it is not clear what are the problems
>>> that can be detected by examining DmaBufTotal except saying "oh, there is
>>> too much/too little memory exported via dma-buf". What would be user
>>> visible effects of these problems? What are the next steps to investigate
>>> them? What other data will be probably required to identify root cause?
>>>
>> When you debug thousands of devices it is quite nice to have
>> ways to classify what the problem it is not. The normal user does not
>> see anything of this. However they can generate bug-reports that
>> collect information about as much they can. Then the user have
>> to provide this bug-report to the manufacture or mostly the
>> application developer. And when the problem is
>> system related we need to reproduce the issue on a full
>> debug enabled unit.
> So the flow is like this:
>
> * a user has a problem and reports it to an application developer; at best
> the user runs simple and limited app to collect some data
> * if the application developer considers this issue as a system related
> they can open adb and collect some more information about the system
> using non-root shell with selinux policy restrictions and send this
> information to the device manufacturer.
> * the manufacturer continues to debug the issue and at this point as much
> information is possible would have been useful.
>
> In this flow I still fail to understand why the manufacturer cannot provide
> userspace tools that will be able to collect the required information.
> These tools not necessarily need to target the end user, they may be only
> intended for the application developers, e.g. policy could allow such tool
> to access some of the system data only when the system is in developer
> mode.
>
The manufacture is trying to get the tool to work. This is what the
patch is about. Even for a application developer a commercial
phone is locked down. Many vendors allow that you flash
some other software like a AOSP. But that can be very
different. Like installing a ubuntu on a PC to debug a Fedora issue.
And sure we can pickup parts of what using the dma-buf. But
we can not get the total and be sure that is the total without a
proper counter.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-22 14:08 ` Peter.Enderborg
@ 2021-04-25 7:33 ` Mike Rapoport
2021-04-25 8:40 ` Peter.Enderborg
0 siblings, 1 reply; 19+ messages in thread
From: Mike Rapoport @ 2021-04-25 7:33 UTC (permalink / raw)
To: Peter.Enderborg
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On Thu, Apr 22, 2021 at 02:08:51PM +0000, Peter.Enderborg@sony.com wrote:
> On 4/22/21 10:06 AM, Mike Rapoport wrote:
> > So the flow is like this:
> >
> > * a user has a problem and reports it to an application developer; at best
> > the user runs simple and limited app to collect some data
> > * if the application developer considers this issue as a system related
> > they can open adb and collect some more information about the system
> > using non-root shell with selinux policy restrictions and send this
> > information to the device manufacturer.
> > * the manufacturer continues to debug the issue and at this point as much
> > information is possible would have been useful.
> >
> > In this flow I still fail to understand why the manufacturer cannot provide
> > userspace tools that will be able to collect the required information.
> > These tools not necessarily need to target the end user, they may be only
> > intended for the application developers, e.g. policy could allow such tool
> > to access some of the system data only when the system is in developer
> > mode.
> >
> The manufacture is trying to get the tool to work. This is what the
> patch is about. Even for a application developer a commercial
> phone is locked down.
Right, but it's still in full control of the manufacturer what's flashed
there, isn't it?
So there could be some tools that are only available in the developer mode?
These tools could have different permissions etc.
> Many vendors allow that you flash some other software like a AOSP. But
> that can be very different. Like installing a ubuntu on a PC to debug a
> Fedora issue.
>
> And sure we can pickup parts of what using the dma-buf. But
> we can not get the total and be sure that is the total without a
> proper counter.
If I understand you correctly, a user space tool that scans fdinfo and
accumulates dma-buf size from there is not accurate enough, that's why an
atomic counter exposed by kernel is a must.
But if the changes in consumption of dma-bufs are that frequent, I cannot
see how a global counter will help to identify an issue.
And if this counter is needed to see if there is a memory leak, summing
sizes of dma-bufs from fdinfo will identify a leak.
What am I missing?
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo
2021-04-25 7:33 ` Mike Rapoport
@ 2021-04-25 8:40 ` Peter.Enderborg
0 siblings, 0 replies; 19+ messages in thread
From: Peter.Enderborg @ 2021-04-25 8:40 UTC (permalink / raw)
To: rppt
Cc: linux-kernel, linux-fsdevel, sumit.semwal, christian.koenig,
adobriyan, akpm, songmuchun, guro, shakeelb, mhocko, neilb,
samitolvanen, linux-media, dri-devel, linaro-mm-sig, willy
On 4/25/21 9:33 AM, Mike Rapoport wrote:
> On Thu, Apr 22, 2021 at 02:08:51PM +0000, Peter.Enderborg@sony.com wrote:
>> On 4/22/21 10:06 AM, Mike Rapoport wrote:
>>> So the flow is like this:
>>>
>>> * a user has a problem and reports it to an application developer; at best
>>> the user runs simple and limited app to collect some data
>>> * if the application developer considers this issue as a system related
>>> they can open adb and collect some more information about the system
>>> using non-root shell with selinux policy restrictions and send this
>>> information to the device manufacturer.
>>> * the manufacturer continues to debug the issue and at this point as much
>>> information is possible would have been useful.
>>>
>>> In this flow I still fail to understand why the manufacturer cannot provide
>>> userspace tools that will be able to collect the required information.
>>> These tools not necessarily need to target the end user, they may be only
>>> intended for the application developers, e.g. policy could allow such tool
>>> to access some of the system data only when the system is in developer
>>> mode.
>>>
>> The manufacture is trying to get the tool to work. This is what the
>> patch is about. Even for a application developer a commercial
>> phone is locked down.
> Right, but it's still in full control of the manufacturer what's flashed
> there, isn't it?
No. There is a lot of restrictions, and Google will provide a binary
kernel that is used on android devices that is the one hat MUST
be used on commercial models. It is called GKI.
> So there could be some tools that are only available in the developer mode?
> These tools could have different permissions etc.
>
>> Many vendors allow that you flash some other software like a AOSP. But
>> that can be very different. Like installing a ubuntu on a PC to debug a
>> Fedora issue.
>>
>> And sure we can pickup parts of what using the dma-buf. But
>> we can not get the total and be sure that is the total without a
>> proper counter.
> If I understand you correctly, a user space tool that scans fdinfo and
> accumulates dma-buf size from there is not accurate enough, that's why an
> atomic counter exposed by kernel is a must.
And it is lightweight.
> But if the changes in consumption of dma-bufs are that frequent, I cannot
> see how a global counter will help to identify an issue.
Same goes for all memory counters. You can sample the counters
and build statistics when you have many devices. Statistics change
you usually see leaks.
> And if this counter is needed to see if there is a memory leak, summing
> sizes of dma-bufs from fdinfo will identify a leak.
>
> What am I missing?
>
I think you can only see dma-buf that is mapped to a process
with that method, we have buffers that goes to other subsystems like audiodsp.
And processing all fd's on a system frequently and sort out
all duplicates is not light, and it sill will not be a total. Nor is it
a snapshot.
When it is about to find the leaks, kmemleak works fine with
kernel leaks, and page_owner (also only in debugfs) is a good tool.
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2021-04-25 8:41 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-17 16:38 [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo Peter Enderborg
2021-04-20 8:58 ` Daniel Vetter
2021-04-20 9:26 ` Peter.Enderborg
2021-04-20 9:41 ` Mike Rapoport
2021-04-20 10:45 ` Peter.Enderborg
2021-04-20 11:52 ` Mike Rapoport
2021-04-20 12:03 ` Peter.Enderborg
2021-04-20 11:14 ` Daniel Vetter
2021-04-20 11:37 ` Peter.Enderborg
2021-04-21 9:15 ` Daniel Vetter
2021-04-21 10:37 ` Peter.Enderborg
2021-04-21 10:57 ` Michal Hocko
2021-04-21 13:05 ` Pekka Paalanen
2021-04-21 15:31 ` Mike Rapoport
2021-04-21 17:35 ` Peter.Enderborg
2021-04-22 8:06 ` Mike Rapoport
2021-04-22 14:08 ` Peter.Enderborg
2021-04-25 7:33 ` Mike Rapoport
2021-04-25 8:40 ` Peter.Enderborg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).