[LTP] [PATCH v2] cpuset_memory_spread: set lowerlimit according to pagesize

Hongchen Zhang zhanghongchen@loongson.cn
Thu Aug 31 10:51:23 CEST 2023


On 2023/8/31 下午4:27, Richard Palethorpe wrote:
> Hello,
> 
> Hongchen Zhang <zhanghongchen@loongson.cn> writes:
> 
>> Hi Richard,
>>
>> On 2023/8/30 下午3:45, Richard Palethorpe wrote:
>>> Hello,
>>> Hongchen Zhang <zhanghongchen@loongson.cn> writes:
>>>
>>>> When I test the cpuset_memory_spread case,this case FAIL too often.
>>>> After dig into the code, I find out that the fowlloing things trigger
>>>> the FAIL:
>>>> 1) random events,the probability is very small and can be ignored
>>>> 2) get_meminfo which before send signal to test_pid
>>>> 3) account_memsinfo before result_check
>>>>
>>>> About 2) and 3), we can increase the value of lowerlimit to keep
>>>> the result as SUCCESS.
>>>>
>>>> After discussing with Richard, we all agree to use the following
>>>> formula to calculate the lowerlimit:
>>>> lowerlimit(kb) = pagesize(byte) * 512 / 1024
>>>>
>>>> Signed-off-by: Hongchen Zhang <zhanghongchen@loongson.cn>
>>>> ---
>>>>    .../cpuset_memory_spread_testset.sh                    | 10 +++++++++-
>>>>    1 file changed, 9 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git
>>>> a/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh
>>>> b/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh
>>>> index e2767ef05..f7230a4ea 100755
>>>> --- a/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh
>>>> +++ b/testcases/kernel/controllers/cpuset/cpuset_memory_spread_test/cpuset_memory_spread_testset.sh
>>>> @@ -38,7 +38,15 @@ nr_mems=$N_NODES
>>>>    # on which it is running. The other nodes' slab space has littler change.(less
>>>>    # than 1000 kb).
>>>>    upperlimit=10000
>>>> -lowerlimit=2000
>>>> +
>>>> +# set lowerlimit according to pagesize
>>>> +# pagesize(bytes)  | lowerlimit(kb)
>>>> +# ------------------------------------
>>>> +#  4096            | 2048
>>>> +#  16384           | 8192
>>>> +
>>>> +PAGE_SIZE=`tst_getconf PAGESIZE`
>>>> +lowerlimit=$((PAGE_SIZE * 512 / 1024))
>>>>      cpus_all="$(seq -s, 0 $((nr_cpus-1)))"
>>>>    mems_all="$(seq -s, 0 $((nr_mems-1)))"
>>>>
>>>> base-commit: 020f3985a5ca86c8bbece27eef8fb0315a10463e
>>> If we don't set the upperlimit what happens if we have 64Kb pages
>>> and
>>> the lowerlimit > upperlimit?
>>
>> The lowerlimit is used to limit the max value on other nodes and the
>> upperlimit is used to limit the min value on the expected node.
>> So there is no problem if lowerlimit > upperlimit.
>>>
> 
> Won't this cause false negatives on systems with larger page sizes?
Yes, no problem with larger page size.
> 
> I have merged it however because right now the test is most likely just
> a source of false positives.
OK,thanks.
If there are any problem, we can continue to discuss.
> 


-- 
Best Regards
Hongchen Zhang



More information about the ltp mailing list