Re: [PATCH v5] dma-buf: Add DmaBufTotal counter in meminfo

From: Peter.Enderborg
Date: Tue Apr 20 2021 - 08:03:52 EST


On 4/20/21 1:52 PM, Mike Rapoport wrote:
> On Tue, Apr 20, 2021 at 10:45:21AM +0000, Peter.Enderborg@xxxxxxxx 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@xxxxxxxx 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@xxxxxxxx>
>>>>> 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.