[Intel-gfx] [PATCH i-g-t v2 2/7] lib/ioctl_wrappers: Separate ring BSD1 from BSD2 checks

Dave Gordon david.s.gordon at intel.com
Mon Mar 7 11:56:37 UTC 2016


On 02/03/16 18:10, Derek Morton wrote:
> Some platforms have ring BSD available but no BSD2.
> Because of the current verification, tests involving ring BSD1
> will be skipped if no BSD2 is available.
>
> Decoupling the checks will allow running the BSD1 specific tests
> on these platforms.
>
> Based on a patch originally submitted by Gabriel Feceoru to
> patchwork-hook-test branch.
>
> Signed-off-by: Derek Morton <derek.j.morton at intel.com>
> ---
>   lib/ioctl_wrappers.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
> index f42e2c9..a4c6aa4 100644
> --- a/lib/ioctl_wrappers.c
> +++ b/lib/ioctl_wrappers.c
> @@ -1432,8 +1432,10 @@ void gem_require_ring(int fd, int ring_id)
>
>   	/* silly ABI, the kernel thinks everyone who has BSD also has BSD2 */
>   	if ((ring_id & ~(3<<13)) == I915_EXEC_BSD) {
> -		if (ring_id & (3 << 13))
> +		if (ring_id & (2 << 13))
>   			igt_require(gem_has_bsd2(fd));
> +		if (ring_id & (1 << 13))
> +			igt_require(gem_has_bsd(fd));
>   	}
>   }
>

Isn't the first (unchanged) line rather unclear?
Why not test for (ring_id & I915_EXEC_BSD)?
And then you only need to additionally test bit 14.

    	if (ring_id & I915_EXEC_BSD) {
		/* require at least one BSD ring */
		igt_require(gem_has_bsd(fd));

		if (ring_id & (2 << 13)) {
			/* specifically require BSD2 */
    			igt_require(gem_has_bsd2(fd));
		}
	}

.Dave.


More information about the Intel-gfx mailing list