PD#SWPL-145324
Problem:
1, using contiguous conter for type identify is not uniform distribution
when compress for some tasks;
2, zram driver will alloc per-cpu contex for zstd, which will cause
about 3MB memory;
Solution:
1, using a fixed type array for uniform distribution of mix type
selection;
2, create 2 context: one dedicated for kswapd task; another one
dedicated for direct reclaim;
Verify:
t5m
Change-Id: I06683383e06d9601c9e6522bcd0fbcfa68a55987
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
PD#SWPL-145324
Problem:
cma alloc too slow.
Solution:
let the idle cpu allocate more.
reduce drain lru in cma task.
Verify:
local.
Change-Id: I5f46112dcc4d5eb8fe7b21526d09a4078edc2752
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-145324
Problem:
kernel NULL pointer panic when cpu off line
Solution:
The root cause is that context for zram is configured as 2 part:
one for direct reclaim and one for kswapd. They are not for per-cpu
but when a core is off, zram will free per-cpu context so caused panic
on other cpus. So we should remove free code for crypto hooks.
Verify:
T5M
Change-Id: I2e4c9362bda0ddf74c91c3dec55d39dd532f46c2
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
PD#SWPL-145324
Problem:
zstd is high compress ratio but low speed, lz4 is fast but low
compress ratio. Need balance them.
Solution:
Add a mixed crypto layer and can set ratio of lz4/zstd
Verify:
t5m
Change-Id: I4fbe930d05ef66336acacaae640fa47855d4b47b
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
PD#SWPL-139378
Problem:
playback not smooth when startup
Solution:
CMA used up when startup and cause cma alloc slow
delay enable CMA until swap free ratio less than 70%
Verify:
sc2
Change-Id: I42ddcaa281cae1c13128d028dbcf1128bede43b6
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
Signed-off-by: Luan Yuan <luan.yuan@amlogic.com>
PD#SWPL-140760
Problem:
dmc get wrong pagetrace information.
Solution:
Retrieve the value of module base.
Verify:
ohm.
Change-Id: Ia58bdc613d7974d1d7ade05fa7d4cefbd1287d59
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-137693
Problem:
not need the page trace kprobe.
Solution:
remove kprobe for cma_alloc in pagetrace.
Verify:
local.
Change-Id: I4e787c0b0778d7b76930a209a1f597002d9127e0
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-140252
Problem:
The system will sleep in atomic,because 'show_user_data'
calls '__get_user' which calls 'might_sleep'.
Solution:
We use '__copy_from_user_inatomic' rather than
'__get_user'.
Verify:
T3x
Change-Id: I33368dcf371e528ea75b5f3e625c93109bf12907
Signed-off-by: qiankun.wang <qiankun.wang@amlogic.com>
PD#SWPL-136207
Problem:
use kprobe to forbid free module init text
Solution:
record module base and use offset to parse
this module symbol
Verify:
SC2_AH212
Change-Id: I43bd306e94e9a6a5afe6411a9cd9e93db0342b7a
Signed-off-by: song.han <song.han@amlogic.com>
PD#SWPL-138083
Problem:
cma alloc too long.
Solution:
compaction page in cma can not be migrated.
Verify:
adt4.
Change-Id: Ib26711f4530426cb0cec5699d3deeaf7626354b6
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-101523
Problem:
The input parameter of the function "__get_free_pages"
in the function "aml_stack_alloc" is incorrect, the function
is in drivers\amlogic\memory_ext\vmap_stack.c
Solution:
fix input parameters
Verify:
TM2
Change-Id: I698ca5dc0beae707bbd50bcfad647cd9c8442d6d
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-131211
Problem:
kernel crash in check_page_to_cma
Solution:
The problem is that page_mapping function returns a invalid mapping
pointer, when a compound page is building while a compaction is doing
at same time, there will have a risk of compound page status checking.
page->mapping is set to TAIL_MAPPING first then set compound header.
But check_page_to_cma don't check real status of page, which caused
panic
Verify:
local
Change-Id: Id44ac3d43d1385148e0527b0ba4d3421c68d825e
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
PD#SWPL-131448
Problem:
__getblk_gfp func get memory from cma can not migrate.
Solution:
not allow the __getblk_gfp get memory from cma pool.
Verify:
ohm.
Change-Id: If30d1eb2bef647368495965cf316debce5b05c54
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-131448
Problem:
cma alloc time too long.
cma_alloc() is different between T and U.
Solution:
use the common14-5.15 cma api.
add more debug information.
Verify:
ohm.
Change-Id: Iead77f878fcb77854667ba117c57025afc5de0a4
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-135009
Problem:
The function 'within_secmon_region' can
not filter out secure monitor region.
Solution:
'within_secmon_region' will get the
'secmon_start_virt' from the dts,and filter
out secure monitor region.
Verify:
SC2
Change-Id: Ie434e66d2b7ca6f269c7f8c0e06e1f53807b8a24
Signed-off-by: qiankun.wang <qiankun.wang@amlogic.com>
PD#SWPL-135009
Problem:
The config 'CONFIG_AMLOGIC_SEC' has been
converted to CONFIG_AMLOGIC_SECMON.
Solution:
delete the config 'CONFIG_AMLOGIC_SEC',and
add the config 'CONFIG_AMLOGIC_SECMON'.
Verify:
SC2
Change-Id: I664ce36b86af24ff3e92adcf31f6149ecf381dcb
Signed-off-by: qiankun.wang <qiankun.wang@amlogic.com>
PD#SWPL-112188
Problem:
aml smmu need to meet requirement of gki2.0.
Solution:
try to set aml smmu driver to ko.
Verify:
build failed.
Change-Id: I8a6a1fc2312aaa82f68f7e97cc05be731d03ac49
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-112188
Problem:
need to trace buffer info in cma ko.
Solution:
print pagetrace info in aml cma ko.
Verify:
local
Change-Id: I288c78ffb0bb7b10cf149f149324ef0b8b236528
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-112188
Problem:
it takes a long time to find symbols.
Solution:
asynchronous initialization of user fault.
Verify:
t5w.
Change-Id: If0327b8285ec722bd84a5dbc7e97419b5752120f
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-112188
Problem:
insmod the aml_cma.ko causes too long startup time.
Solution:
asynchronous initialization of aml_cma.
Verify:
ohm.
Change-Id: Ibd0d72cd85755783a9b25867baa7d86c9f272f35
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-112188
Problem:
compiler optimization, resulting in unable to kprobe
Solution:
not kprobe the arm64_show_signal func.
Verify:
t215.
Change-Id: I2aac9ff78db34739050d5acba53bb5b7287d5ff0
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-128513
Problem:
enable kasan on arm32 will crash
Solution:
disable AMLOGIC_VMAP when kasan enabled
increase modules region form 16M to 32M
Verify:
TXHD2
Change-Id: Icdf82669750bec436756fbd6cd670eabedaf0096
Signed-off-by: song.han <song.han@amlogic.com>
PD#SWPL-128566
Problem:
tvp vendor hook not meet gki2.0
Solution:
use kprobe to get symbol.
Verify:
local.
Change-Id: I26160ebfa86ab98969bfd29d6cc0afa264b0270f
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-124872
Problem:
show pagetrace when oom.
Solution:
show pagetrace when oom.
Verify:
local.
Change-Id: If068d2cbffa5969d2e62aadbb57e32bc1b28d415
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-117678
Problem:
when dump call stack information,some problematic
registers data can cause synchronization error.
Solution:
add a judgment to filter out register information.
Verify:
SC2
Change-Id: I805b3d25b5e753cd8d9f25a724e06be942882c9f
Signed-off-by: qiankun.wang <qiankun.wang@amlogic.com>
PD#SWPL-112188
Problem:
not find the unwind_frame() in arm64.
Solution:
replace the unwind_frame() with unwind_next() .
Verify:
t7c.
Change-Id: I1c62c29d68174333198965ff385ba3022170fa28
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
PD#SWPL-113705
Problem:
In the boot log, characters are missing when printing
due to long strings
Solution:
Print the string in some parts.
Verify:
SC2
Change-Id: I2989ac089598d3f2b97eaa98fcf923ff4c7963c8
Signed-off-by: qiankun.wang <qiankun.wang@amlogic.com>