[Intel-gfx] [PATCH 1/5] lib/drmtest: add drmtest_disable/enable_prefault() function

Daniel Vetter daniel at ffwll.ch
Fri Jul 19 09:13:53 CEST 2013


On Fri, Jul 19, 2013 at 01:53:08PM +0800, Xiong Zhang wrote:
> Signed-off-by: Xiong Zhang <xiong.y.zhang at intel.com>
> ---
>  lib/drmtest.c | 43 +++++++++++++++++++++++++++++++++++++++++++
>  lib/drmtest.h |  3 +++
>  2 files changed, 46 insertions(+)
> 
> diff --git a/lib/drmtest.c b/lib/drmtest.c
> index 011d8c1..713c5ff 100644
> --- a/lib/drmtest.c
> +++ b/lib/drmtest.c
> @@ -1593,3 +1593,46 @@ void kmstest_free_connector_config(struct kmstest_connector_config *config)
>  	drmModeFreeEncoder(config->encoder);
>  	drmModeFreeConnector(config->connector);
>  }
> +
> +#define PREFAULT_DEBUGFS "/sys/module/i915/parameters/prefault_disable"
> +static int drmtest_prefault_control(bool enable)
> +{
> +	char *name = PREFAULT_DEBUGFS;
> +	int fd;
> +	char buf[2] = {'Y', 'N'};
> +	int index;
> +	int result = 0;
> +
> +	fd = open(name, O_RDWR);
> +	if (fd == -1) {
> +		fprintf(stderr, "Couldn't open prefault_debugfs.%s\n",
> +				strerror(errno));
> +		return -1;
> +	}
> +
> +	if (enable)
> +		index = 1;
> +	else
> +		index = 0;
> +
> +	if (write(fd, &buf[index], 1) != 1) {
> +		fprintf(stderr, "write prefault_debugfs error.%s\n",
> +				strerror(errno));
> +		result = -1;
> +	}
> +
> +	close(fd);
> +
> +	return result;
> +}
> +
> +int drmtest_disable_prefault(void)
> +{
> +	return drmtest_prefault_control(false);
> +}

If our test crashes this will leave prefaulting disable, potentially
affecting future tests run before rebooting. To prevent such issues Imre
has added exit handler code to make sure that we can undo such things.
I think we should install an exit handler which calls
drmtest_enable_prefault again. See drmtest_install_exit_handler.
-Daniel

> +
> +int drmtest_enable_prefault(void)
> +{
> +	return drmtest_prefault_control(true);
> +}
> +
> diff --git a/lib/drmtest.h b/lib/drmtest.h
> index e3a9275..80b344c 100644
> --- a/lib/drmtest.h
> +++ b/lib/drmtest.h
> @@ -179,3 +179,6 @@ void drmtest_enable_exit_handler(void);
>  void drmtest_disable_exit_handler(void);
>  
>  int drmtest_set_vt_graphics_mode(void);
> +
> +int drmtest_disable_prefault(void);
> +int drmtest_enable_prefault(void);
> -- 
> 1.8.3.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list