Re: [PATCH] ion: Consider ion pool pages as indirectly reclaimable

Laura Abbott
2018-04-25T15:47:34Z

On 04/24/2018 08:43 PM, vjitta@codeaurora.org wrote:
> From: Vijayanand Jitta <vjitta@codeaurora.org>
>
> An issue is observed where mallocs are failing due to overcommit failure.
> The failure happens when there is high ION page pool since ION page
> pool is not considered reclaimable by the overcommit calculation code.
> This change considers ion pool pages as indirectly reclaimable and thus
> accounted as available memory in the overcommit calculation.
>
> Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org>
> ---
> drivers/staging/android/ion/ion_page_pool.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/staging/android/ion/ion_page_pool.c b/drivers/staging/android/ion/ion_page_pool.c
> index db8f614..9bc56eb 100644
> --- a/drivers/staging/android/ion/ion_page_pool.c
> +++ b/drivers/staging/android/ion/ion_page_pool.c
> @@ -32,6 +32,9 @@ static void ion_page_pool_add(struct ion_page_pool *pool, struct page *page)
> list_add_tail(&page->lru, &pool->low_items);
> pool->low_count++;
> }
> +
> + mod_node_page_state(page_pgdat(page), NR_INDIRECTLY_RECLAIMABLE_BYTES,
> + (1 << (PAGE_SHIFT + pool->order)));
> mutex_unlock(&pool->mutex);
> }
>
> @@ -50,6 +53,8 @@ static struct page *ion_page_pool_remove(struct ion_page_pool *pool, bool high)
> }
>
> list_del(&page->lru);
> + mod_node_page_state(page_pgdat(page), NR_INDIRECTLY_RECLAIMABLE_BYTES,
> + -(1 << (PAGE_SHIFT + pool->order)));
> return page;
> }
>
>

I'm sure this fixes the problem but I don't think we want to
start throwing page adjustments into Ion. Why isn't this
memory already considered reclaimable by existing calculations?

Thanks,
Laura