mm: subtract CMA isolated pages when allocate TVP [1/1]
authorTao Zeng <tao.zeng@amlogic.com>
Thu, 6 Dec 2018 07:24:44 +0000 (15:24 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Fri, 7 Dec 2018 08:42:34 +0000 (00:42 -0800)
commit0313e6ddde2b423cba94169f81d4243b7f54390e
tree6d5b10e3d9e18d35454c3402ed2676d512d554e6
parentb847f7426943b78fa763e66fed2bc86d4b4793d3
mm: subtract CMA isolated pages when allocate TVP [1/1]

PD#SWPL-2933

Problem:
When allocate CMA pages in buildroot enverioment, system will
hung in congestion_wait:
Call trace:
[<ffffff8009086a78>] __switch_to+0xa0/0xc8
[<ffffff8009de3eb8>] __schedule+0x268/0x7d8
[<ffffff8009de4464>] schedule+0x3c/0xa0
[<ffffff8009de7c9c>] schedule_timeout+0x1b4/0x448
[<ffffff8009de3be8>] io_schedule_timeout+0x98/0x100
[<ffffff80091e3fb8>] congestion_wait+0x90/0x190
[<ffffff80091ebcf4>] isolate_migratepages_block+0x7ec/0x890
[<ffffff80091ec794>] isolate_migratepages_range+0x8c/0x100
[<ffffff8009a8f34c>] aml_alloc_contig_migrate_range+0x104/0x158
[<ffffff8009a8f518>] cma_boost_work_func+0x178/0x270
[<ffffff80090cc228>] kthread+0xf8/0x110
[<ffffff80090836c0>] ret_from_fork+0x10/0x50

Solution:
subtract isolated CMA pages when allocation large CMA for TVP.

Verify:
local

Change-Id: I96153cf104abb009a8965c2230a5242e495dd031
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
mm/compaction.c