[PATCH 5/9] drm: kselftest for drm_mm and alignment

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Fri Dec 9 16:14:47 UTC 2016


On pe, 2016-12-09 at 13:08 +0000, Chris Wilson wrote:
> Check that we can request alignment to any power-of-two or prime using a
> plain drm_mm_node_insert().
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

<SNIP>

> +static int igt_align(void *ignored)
> +{
> +	struct drm_mm mm;
> +	struct drm_mm_node *node, *next;
> +	int ret = -EINVAL;
> +	int n;
> +
> +	drm_mm_init(&mm, 1, -2);

U64_MAX - 1?

> +	if (!drm_mm_clean(&mm)) {
> +		pr_err("mm not empty on creation\n");
> +		goto out;
> +	}
> +

Can be dropped.

> +	for_each_prime(n, 8192) {

This is one more spot, how about DRM_SELFTEST_MAX_PRIME or so?

> +		int err;
> +
> +		node = kzalloc(sizeof(*node), GFP_KERNEL);
> +		if (!node) {
> +			ret = -ENOMEM;
> +			goto out;
> +		}
> +
> +		err = drm_mm_insert_node_generic(&mm, node,
> +						 next_prime_number(n),/* size */
> +						 n, /* alignment */

<rant>If there just was a way of naming variables so this comments was
not needed.</rant> Maybe the variable could be "align".

> +static int igt_align_pot(int max)
> +{
> +	struct drm_mm mm;
> +	struct drm_mm_node *node, *next;
> +	int bit;
> +	int ret = -EINVAL;
> +
> +	drm_mm_init(&mm, 1, -2);
> +	if (!drm_mm_clean(&mm)) {
> +		pr_err("mm not empty on creation\n");
> +		goto out;
> +	}
> +
> +	for (bit = max - 1; bit; bit--) {
> +		int err;
> +
> +		node = kzalloc(sizeof(*node), GFP_KERNEL);
> +		if (!node) {
> +			ret = -ENOMEM;
> +			goto out;
> +		}
> +
> +		err = drm_mm_insert_node_generic(&mm, node, 1,
> +						 BIT_ULL(bit), bit,

The color is not used, so just set it to 0.

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

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


More information about the dri-devel mailing list