On 2018-04-25 21:17, Laura Abbott wrote:
On 04/24/2018 08:43 PM, vji...@codeaurora.org wrote:
From: Vijayanand Jitta <vji...@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 <vji...@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
You can refer to discussion here https://lkml.org/lkml/2018/3/5/361
introducing
NR_INDIRECTLY_RECLAIMABLE_BYTES for the memory which is not currently
considered
as reclaimable
Thanks,
Vijay
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel