[Intel-gfx] [PATCH i-g-t] Revert "tests/gem_ctx_param_basic: fix invalid params"

Daniel Vetter daniel at ffwll.ch
Fri Aug 7 06:13:22 PDT 2015


On Fri, Aug 07, 2015 at 03:53:57PM +0300, David Weinehall wrote:
> On Thu, Aug 06, 2015 at 11:33:00PM +0200, Daniel Vetter wrote:
> > This reverts commit 0b45b0746f45deea11670a8b2c949776bbbef55c.
> > 
> > The point of testing for LAST_FLAG + 1 is to catch abi extensions -
> > despite our best efforts we really suck at properly reviewing for test
> > coverage when extending ABI.
> > 
> > The real bug here is that David Weinhall hasn't submitted updated igts
> > for the NO_ZEROMAP feature yet. Imo the right course of action is to
> > revert that feature if the testcase don't show up within a few days.
> 
> The reason I never submitted it was probably because of Chris's strong
> opposition to the feature in the first place; I've had the testcase
> laying around on my computer for quite a while.
> 
> Anyhow, here's a slightly modified version of that test -- hopefully
> not breaking anything.
> 
> 
> Signed-off-by: David Weinehall <david.weinehall at linux.intel.com>

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90808

btw this is first priority for bug scrub, finding bugs. Also this is a
regression, which actually makes it even more important than just basic
bug scrubbing. Note that bug fixing itself is only about 3rd tier
priority, i.e. something you can do when you have free time by accident.

Oh and the bug is a regression, but not correctly marked as such. That
means QA fail or bug scrub fail, either way we need to figure out what
went wrong here.

Please discuss this with Christophe Prigent as our permanent bug scrub
leader, figure out what needs to be fixed in bkms and present the solution
in next week's bug scrub coordination meeting on Thu.

Thanks, Daniel

> 
> diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
> index bc5d4bd827cf..f4deca6bd79e 100644
> --- a/lib/ioctl_wrappers.h
> +++ b/lib/ioctl_wrappers.h
> @@ -102,6 +102,7 @@ struct local_i915_gem_context_param {
>  	uint32_t size;
>  	uint64_t param;
>  #define LOCAL_CONTEXT_PARAM_BAN_PERIOD 0x1
> +#define LOCAL_CONTEXT_PARAM_NO_ZEROMAP 0x2
>  	uint64_t value;
>  };
>  void gem_context_require_ban_period(int fd);
> diff --git a/tests/gem_ctx_param_basic.c b/tests/gem_ctx_param_basic.c
> index b44b37cf0538..1e7e8ff40703 100644
> --- a/tests/gem_ctx_param_basic.c
> +++ b/tests/gem_ctx_param_basic.c
> @@ -57,7 +57,7 @@ igt_main
>  		ctx = gem_context_create(fd);
>  	}
>  
> -	ctx_param.param  = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
> +	ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
>  
>  	igt_subtest("basic") {
>  		ctx_param.context = ctx;
> @@ -98,21 +98,31 @@ igt_main
>  		ctx_param.size = 0;
>  	}
>  
> -	ctx_param.param  = LOCAL_CONTEXT_PARAM_BAN_PERIOD + 1;
> +	ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
>  
> -	igt_subtest("invalid-param-get") {
> -		ctx_param.context = ctx;
> -		TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM, EINVAL);
> +	igt_subtest("non-root-set") {
> +		igt_fork(child, 1) {
> +			igt_drop_root();
> +
> +			ctx_param.context = ctx;
> +			TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
> +			ctx_param.value--;
> +			TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EPERM);
> +		}
> +
> +		igt_waitchildren();
>  	}
>  
> -	igt_subtest("invalid-param-set") {
> +	igt_subtest("root-set") {
>  		ctx_param.context = ctx;
> -		TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EINVAL);
> +		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
> +		ctx_param.value--;
> +		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
>  	}
>  
> -	ctx_param.param  = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
> +	ctx_param.param = LOCAL_CONTEXT_PARAM_NO_ZEROMAP;
>  
> -	igt_subtest("non-root-set") {
> +	igt_subtest("non-root-set-no-zeromap") {
>  		igt_fork(child, 1) {
>  			igt_drop_root();
>  
> @@ -125,13 +135,32 @@ igt_main
>  		igt_waitchildren();
>  	}
>  
> -	igt_subtest("root-set") {
> +	igt_subtest("root-set-no-zeromap-enabled") {
>  		ctx_param.context = ctx;
>  		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
> -		ctx_param.value--;
> +		ctx_param.value = 1;
> +		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
> +	}
> +
> +	igt_subtest("root-set-no-zeromap-disabled") {
> +		ctx_param.context = ctx;
> +		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
> +		ctx_param.value = 0;
>  		TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
>  	}
>  
> +	ctx_param.param = LOCAL_CONTEXT_PARAM_NO_ZEROMAP + 1;
> +
> +	igt_subtest("invalid-param-get") {
> +		ctx_param.context = ctx;
> +		TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM, EINVAL);
> +	}
> +
> +	igt_subtest("invalid-param-set") {
> +		ctx_param.context = ctx;
> +		TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EINVAL);
> +	}
> +
>  	igt_fixture
>  		close(fd);
>  }

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list