[LTP] [PATCH] getrusage03: Forcing context switches to update resource usage
Li Wang
liwang@redhat.com
Mon Aug 5 08:58:59 CEST 2024
I proposed a patch in upstream ML:
https://lists.linux.it/pipermail/ltp/2024-August/039693.html
On Mon, Aug 5, 2024 at 2:36 PM Li Wang <liwang@redhat.com> wrote:
> Our CI sporadically complains that this test grandchild's MAXRSS did not
> reach
> the expected 300MB size.
>
> 12 getrusage03.c:86: TFAIL: child.children = 258048, expected 307200
>
> As the ru_maxrss value is generally updated at certain intervals or under
> specific conditions, such as page faults or context switches. There may be
> delay between the completion of memset() and the update of ru_maxrss.
>
> To address this issue, we create a function to force context switches by
> calling sched_yield() multiple times. This approach helps to ensure that
> the system has the opportunity to update the ru_maxrss value more promptly.
>
> Reproted-by: Scott Weaver <scweaver@redhat.com>
> Signed-off-by: Li Wang <liwang@redhat.com>
> ---
> testcases/kernel/syscalls/getrusage/getrusage03.h | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/getrusage/getrusage03.h
> b/testcases/kernel/syscalls/getrusage/getrusage03.h
> index 8bee0b9e5..58a98b430 100644
> --- a/testcases/kernel/syscalls/getrusage/getrusage03.h
> +++ b/testcases/kernel/syscalls/getrusage/getrusage03.h
> @@ -6,10 +6,19 @@
> #ifndef LTP_GETRUSAGE03_H
> #define LTP_GETRUSAGE03_H
>
> +#include <sched.h>
> #include "tst_test.h"
>
> #define DELTA_MAX 20480
>
> +static void force_context_switches(int iterations)
> +{
> + tst_res(TINFO, "Forcing context switch %d times", iterations);
> +
> + for (int i = 0; i < iterations; i++)
> + sched_yield();
> +}
> +
> static void consume_mb(int consume_nr)
> {
> void *ptr;
> @@ -22,6 +31,8 @@ static void consume_mb(int consume_nr)
> ptr = SAFE_MALLOC(size);
> memset(ptr, 0, size);
>
> + force_context_switches(10);
> +
> SAFE_FILE_LINES_SCANF("/proc/self/status", "VmSwap: %lu",
> &vmswap_size);
> if (vmswap_size > 0)
> tst_brk(TBROK, "VmSwap is not zero");
> --
> 2.45.2
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>
--
Regards,
Li Wang
More information about the ltp
mailing list