[igt-dev] [PATCH i-g-t 3/3] i915/gem_concurrent_all: fix swap subtest group
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Fri Apr 1 06:14:35 UTC 2022
On Thu, Mar 31, 2022 at 06:34:30PM +0200, Kamil Konieczny wrote:
> In error path in fixture add unlocking memory. In run_modes
> there is already another subtest group which will guard against
> igt_asserts or igt_requires, so do unpinning unconditionally
> without fixture.
>
> There are still some problems with the code, while we run swap
> subtest we will race between other programs using memory so we
> may still experience oom-kill during test. Second problem will be
> on test machines configured with no swap turned on or with swap
> size much smaller than RAM size.
>
> The problem was discovered by Zbigniew with running
> ./gem_concurrent_blit --run '16M*' on machine with no swap.
>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/i915/gem_concurrent_all.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/tests/i915/gem_concurrent_all.c b/tests/i915/gem_concurrent_all.c
> index 22c5d6ef..2b1788e1 100644
> --- a/tests/i915/gem_concurrent_all.c
> +++ b/tests/i915/gem_concurrent_all.c
> @@ -1995,6 +1995,7 @@ igt_main
> if (posix_memalign(&pinned, 4096, pin_sz) ||
> mlock(pinned, pin_sz) ||
> madvise(pinned, pin_sz, MADV_DONTFORK)) {
> + munlock(pinned, pin_sz);
> free(pinned);
> pinned = NULL;
> }
> @@ -2006,12 +2007,10 @@ igt_main
> }
> run_modes(name, c, modes, s, count);
>
> - igt_fixture {
> - if (pinned) {
> - munlock(pinned, pin_sz);
> - free(pinned);
> - pinned = NULL;
Eh, that gave us a couple of hours of debugging :/ Using igt_fixture
is a little bit tricky.
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
--
Zbigniew
> - }
> + if (pinned) {
> + munlock(pinned, pin_sz);
> + free(pinned);
> + pinned = NULL;
> }
> }
> }
> --
> 2.32.0
>
More information about the igt-dev
mailing list