Message ID | 20210417163835.25064-1-peter.enderborg@sony.com |
---|---|
State | Superseded |
Headers | show |
Series | [v5] dma-buf: Add DmaBufTotal counter in meminfo | expand |
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
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$
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.
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$
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
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$
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.
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.
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
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
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.
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.
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.
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?
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.
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__ */
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(-)