Re: [PATCH 1/5] lib/drmtest: add drmtest_disable/enable_prefault() function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 19, 2013 at 01:53:08PM +0800, Xiong Zhang wrote:
> Signed-off-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux