[igt-dev] [PATCH i-g-t 7/7] benchmarks/gem_exec_fault: Add softpin mode to support gens with ppgtt

Dixit, Ashutosh ashutosh.dixit at intel.com
Thu Oct 14 05:01:22 UTC 2021


On Thu, 07 Oct 2021 23:54:32 -0700, Zbigniew Kempczyński wrote:
>
> +	/*
> +	 * For older gens .alignment = 1ull << 63 lead do bind/unbind,
> +	 * what doesn't work for newer gens with ppgtt.
> +	 * For ppgtt case we use reloc allocator which would just assigns
> +	 * new offset for each batch. This way we enforce bind/unbind vma
> +	 * for each execbuf.

So assigning a new offset will cause a new fault-in (bind) but not sure if
it will cause an actual fault-out (unbind). Though I am not sure if there
is actually a way to force it to happen if this doesn't work? Is there a
way to verify that the unbind is actually happening?

Neither I am sure how setting the 'alignment = 1ull << 63' caused a fault
out in the older code.

> +	 */
> +	has_ppgtt = gem_uses_full_ppgtt(fd);
> +	if (has_ppgtt) {
> +		igt_info("Using softpin mode\n");
> +		intel_allocator_multiprocess_start();
> +	} else {
> +		igt_assert(gem_allows_passing_alignment(fd));

I think this should be igt_require for the test to skip rather than fail.

> +/*
> + * NOTE: Ensure prove locking in the kernel is off, otherwise results
> + * would be inaccurate.
> + */

This is really a debug setting, any such setting (say lockdep, kmemchek
etc.) will affect benchmarks. So not sure if this specifically needs to be
called out.


More information about the igt-dev mailing list