[LTP] [PATCH v1] swapping01.c: Add sleeps in the loop that dirties the memory

Vlastimil Babka vbabka@suse.com
Fri Apr 19 10:11:35 CEST 2024


On 4/18/24 6:34 PM, Cyril Hrubis wrote:
> Hi!
>> https://bugzilla.suse.com/show_bug.cgi?id=1217850#c34
> 
> If I'm counting right this is 10ms * 1024 which is 10s, I would be
> happier with 1ms sleep instead. Or if we did 10ms sleep once every 10
> memsets() instead.

Yeah I proposed you can try to reduce the sleep time/frequency to basically
to lowest value (with some margin) that resolves the issue reliably in your
testing. That 10ms per MB was just a possible starting point.

> Also since this was proposed by Vlastimil in the bugzilla he should
> ideally give his ack here as well (now in CC).
> 
>> Signed-off-by: Wei Gao <wegao@suse.com>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

>> ---
>>  testcases/kernel/mem/swapping/swapping01.c | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>> 
>> diff --git a/testcases/kernel/mem/swapping/swapping01.c b/testcases/kernel/mem/swapping/swapping01.c
>> index a0030a75f..338881c8e 100644
>> --- a/testcases/kernel/mem/swapping/swapping01.c
>> +++ b/testcases/kernel/mem/swapping/swapping01.c
>> @@ -47,6 +47,7 @@
>>  #define COE_DELTA       1
>>  /* will try to alloc 1.3 * phy_mem */
>>  #define COE_SLIGHT_OVER 0.3
>> +#define MEM_SIZE 1024 * 1024
>>  
>>  static void init_meminfo(void);
>>  static void do_alloc(int allow_raise);
>> @@ -101,6 +102,13 @@ static void init_meminfo(void)
>>  				swap_free_init, mem_over_max);
>>  }
>>  
>> +static void memset_blocks(char *ptr, int mem_count, int sleep_time_ms) {
>> +	for (int i = 0; i < mem_count / 1024; i++) {
>> +		memset(ptr + (i * MEM_SIZE), 1, MEM_SIZE);
>> +		usleep(sleep_time_ms * 1000);
>> +	}
>> +}
>> +
>>  static void do_alloc(int allow_raise)
>>  {
>>  	long mem_count;
>> @@ -115,7 +123,7 @@ static void do_alloc(int allow_raise)
>>  	if (allow_raise == 1)
>>  		tst_res(TINFO, "try to allocate: %ld MB", mem_count / 1024);
>>  	s = SAFE_MALLOC(mem_count * 1024);
>> -	memset(s, 1, mem_count * 1024);
>> +	memset_blocks(s, mem_count, 10);
>>  
>>  	if ((allow_raise == 1) && (raise(SIGSTOP) == -1)) {
>>  		tst_res(TINFO, "memory allocated: %ld MB", mem_count / 1024);
>> -- 
>> 2.35.3
>> 
>> 
>> -- 
>> Mailing list info: https://lists.linux.it/listinfo/ltp
> 



More information about the ltp mailing list