RE: [PATCH v3] dma-buf/heaps: system_heap: avoid too much allocation

From: Jaewon Kim
Date: Thu Apr 13 2023 - 03:02:12 EST


>On Thu 13-04-23 09:16:58, Jaewon Kim wrote:
>> >On Wed, Apr 12, 2023 at 4:38?AM Jaewon Kim <jaewon31.kim@xxxxxxxxxxx> wrote:
>> >
>> >> Yes I think you're right. As a allocator, dma-buf system heap looks to be loose
>> >> in memory allocation. Limiting dmabuf memory may be required. But I think there
>> >> is no nice and reasonable way so far. And the dma-buf system heap is being
>> >> widely used in Android mobile system. AFAIK the camera consumes huge memory
>> >> through this dma-buf system heap. I actually even looked a huge size request
>> >> over 2GB in one dma-buf request.
>> >>
>> >Hey can you point me to where you saw a request that big? That's a
>> >non-buggy request?!
>>
>> (let me resend as plain text)
>> It was one of camera scenarios. I internally asked and heard that was not a bug
>> but normal. I think 2GB looks too big for one graphics buffer but it could be
>> for other purposes like camera. I think the system heap should support that.
>
>Is that any of the upstream drivers or something sitting out of the
>tree.

I don't think so. I guess that is userspace library rather than kernel driver.
The user library directly might request the size through dma-buf ioctl. Even
though that is kernel driver, I think the driver may not be upstreamed.

>
>> Regarding __GFP_RETRY_MAYFAIL, we may need to say dma-buf system heap was
>> designed to gather many pages up to a requested size. If mm returns NULL due to
>> __GFP_RETRY_MAYFAIL, dma-buf system heap will release other already allocated
>> pages, so that it may help to avoid oom.
>
>This really depends on the other activity on the system. If you have a
>more concurrent memory demand at the time then you might be just out of
>the luck. Really, claiming huge portion of the memory shouldn't be done
>nilly willy.

I agree on that.

>--
>Michal Hocko
>SUSE Labs