[Intel-gfx] [PATCH igt v3] igt/gem_exec_scheduler: HAS_SCHEDULER no longer means HAS_PREEMPTION

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Thu Sep 28 14:33:38 UTC 2017


On Wed, 2017-09-27 at 19:47 +0100, Chris Wilson wrote:
> Michal wants to limit machines that can do preemption, which means that
> we no longer can assume that if we have a scheduler for execbuf, that
> implies we have preemption.
> 
> v2: Try a capability mask instead
> v3: Pretty print the caps.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

<SNIP>

> +++ b/tests/gem_exec_schedule.c
> @@ -32,7 +32,12 @@
>  #include "igt_rand.h"
>  #include "igt_sysfs.h"
>  
> +#define BIT(x) (1ul << (x))
> +
>  #define LOCAL_PARAM_HAS_SCHEDULER 41
> +#define   HAS_SCHEDULER		BIT(0)
> +#define   HAS_PRIORITY		BIT(1)
> +#define   HAS_PREEMPTION	BIT(2)

This seems to be all spaces?

> +static unsigned int has_scheduler(int fd)
>  {
>  	drm_i915_getparam_t gp;
> -	int has = -1;
> +	unsigned int caps = 0;
> +	char buf[200];
> +	size_t len = 0;
>  
>  	gp.param = LOCAL_PARAM_HAS_SCHEDULER;
> -	gp.value = &has;
> +	gp.value = (int *)∩︀
>  	drmIoctl(fd, DRM_IOCTL_I915_GETPARAM, &gp);
>  
> -	return has > 0;
> +	if (!caps)
> +		return 0;
> +
> +	len = snprintf(buf, sizeof(buf), "Has kernel scheduler");
> +	if (caps & HAS_PRIORITY)
> +		len += snprintf(buf + len, sizeof(buf) - len,
> +				"%s context priorities",
> +				caps & (HAS_PRIORITY - 2) ? "," : " with");
> +
> +	if (caps & HAS_PREEMPTION)
> +		len += snprintf(buf + len, sizeof(buf) - len,
> +				"%s batchbuffer preemption",
> +				caps & (HAS_PREEMPTION - 2) ? "," : " with");

The output is not going to be published in PEOPLE magazine, maybe we
can do a simpler indented "- with ..." prints :P

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the Intel-gfx mailing list