On 7/08/26 03:31, Wandun wrote:
> I found there are false positives in this reproducer.
> I modified the program a little,  the diff is as follows,
> the problem can still be reproduced
>
>
> diff --git a/repro.c b/repro.c
> index b1b34d5..59cb417 100644
> --- a/repro.c
> +++ b/repro.c
> @@ -15,6 +15,7 @@ static void *worker_fn(void *arg)
>         int fd = (long)arg;
>         size_t len = NR_PAGES * PAGE_SIZE;
>
> +       mlockall(MCL_ONFAULT |  MCL_FUTURE | MCL_CURRENT);
>         while (1) {
>                 if (ftruncate(fd, 0) < 0) {}
>                 if (ftruncate(fd, len) < 0) {}
> @@ -24,8 +25,6 @@ static void *worker_fn(void *arg)
>                 if (p == MAP_FAILED)
>                         continue;
>
> -               mlockall(MCL_ONFAULT |  MCL_FUTURE);
> -
>                 for (int i = 0; i < NR_PAGES; i++) {
>                         for (int j = 0; j < PAGE_SIZE; j++) {

No worries, I can reproduce with that program,
but I still think this is different.
The reproducer passes the MCL_ONFAULT flag to mlockall(),
delaying the actual memory allocation.

However, this is not what I would do in realtime programs and if I do,
these faults are basically memory allocations, where I can
not expect realtime performance guarantees.

If I remove MCL_ONFAULT, I did not manage to hit the migration_entry_wait
with the reproducer.

My guess is, that it only triggers when using CMA,
but I'm not deep enough into that topic to proof that.

--

KUKA Deutschland GmbH   Board of Directors: Michael Jürgens (Chairman), Johan 
Naten, Hui Zhang   Registered Office: Augsburg HRB 14914

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and destroy this e-mail. Any unauthorized 
copying, disclosure or distribution of contents of this e-mail is strictly 
forbidden.

Please consider the environment before printing this e-mail.

Reply via email to