[LTP] [PATCH v2] swapping01.c: Add sleeps in the loop that dirties the memory
Wei Gao
wegao@suse.com
Mon Apr 22 14:40:50 CEST 2024
In our test env this case failed sporadically, we suspect swapout speed not fast enough
in some situation.
Detail info please check following comments;
https://bugzilla.suse.com/show_bug.cgi?id=1217850#c34
Signed-off-by: Wei Gao <wegao@suse.com>
---
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..79dd2b4d5 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, 1);
if ((allow_raise == 1) && (raise(SIGSTOP) == -1)) {
tst_res(TINFO, "memory allocated: %ld MB", mem_count / 1024);
--
2.35.3
More information about the ltp
mailing list