[Intel-gfx] [igt-dev] [PATCH i-g-t] tests/drv_suspend: Suspend under memory pressure
Antonio Argenziano
antonio.argenziano at intel.com
Thu May 24 20:55:38 UTC 2018
On 24/05/18 05:42, Chris Wilson wrote:
> Recently we discovered that we have a race between swapping and
> suspend in our resume path (we might be trying to page in an object
> after disabling the block devices). Let's try to exercise that by
> exhausting all of system memory before suspend.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=106640
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tomi Sarvela <tomi.p.sarvela at intel.com>
LGTM:
Reviewed-by: Antonio Argenziano <antonio.argenziano at intel.com>
> ---
> lib/igt_core.c | 34 ++++++++++++++++++++--------------
> lib/igt_core.h | 1 +
> tests/drv_suspend.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 63 insertions(+), 14 deletions(-)
>
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index e292ca24c..804ce4578 100644
> +static void
> +test_shrink(int fd, unsigned int mode)
> +{
> + uint64_t *can_mlock;
> + void *locked;
> + uint64_t pin;
> +
> + gem_quiescent_gpu(fd);
> + intel_purge_vm_caches(fd);
> +
> + can_mlock = mmap(NULL, 4096, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
> + igt_assert(can_mlock != MAP_FAILED);
> +
> + pin = intel_get_total_ram_mb() << 20;
> +
> + igt_debug("Locking %'"PRIu64" MiB\n", pin >> 20);
> + locked = malloc(pin);
> + igt_assert(locked);
Shouldn't this^ be a require as well?
> +
> + /* Lock all the system memory, forcing the driver into swap and OOM */
> +
> static void
> test_forcewake(int fd, bool hibernate)
> {
> @@ -199,6 +238,9 @@ igt_main
> igt_subtest("sysfs-reader")
> test_sysfs_reader(false);
>
> + igt_subtest("shrink")
> + test_shrink(fd, SUSPEND_STATE_MEM);
I am assuming you plan to have tests for other suspend modes.
Thanks,
Antonio
> +
> igt_subtest("forcewake")
> test_forcewake(fd, false);
>
>
More information about the Intel-gfx
mailing list