[PATCH 09/34] drm: kselftest for drm_mm_insert_node()
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Wed Dec 14 12:26:36 UTC 2016
On ma, 2016-12-12 at 11:53 +0000, Chris Wilson wrote:
> Exercise drm_mm_insert_node(), check that we can't overfill a range and
> that the lists are correct after reserving/removing.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
<SNIP>
> +static int __igt_insert(int count, u64 size)
> +{
<SNIP>
> + for (n = 0; n < count; n++) {
> + int err;
> +
> + node = &nodes[n];
> + err = drm_mm_insert_node(&mm, node, size, 0,
> + DRM_MM_SEARCH_DEFAULT);
> + if (err) {
> + pr_err("insert failed, step %d, start %llu\n",
> + n, nodes[n].start);
> + ret = err;
> + goto out;
> + }
> +
> + if (!drm_mm_node_allocated(node)) {
> + pr_err("inserted node not allocated! step %d, start %llu\n",
> + n, node->start);
> + goto out;
> + }
> + }
> +
> + /* Repeated use should then fail */
> + if (1) {
Why if (1)? What are you not telling me.
<SNIP>
> + if (1) {
Ditto.
> + struct drm_mm_node tmp;
> +
> + memset(&tmp, 0, sizeof(tmp));
> + if (!drm_mm_insert_node(&mm, &tmp, size, 0,
> + DRM_MM_SEARCH_DEFAULT)) {
> + drm_mm_remove_node(&tmp);
> + pr_err("impossible insert succeeded, start %llu\n",
> + tmp.start);
> + goto out;
> + }
> + }
> +
Second instance of the code below, could be helper?
> + m = 0;
> + drm_mm_for_each_node(node, &mm) {
> + if (node->start != m * size) {
> + pr_err("node %d out of order, expected start %llx, found %llx\n",
> + m, m * size, node->start);
> + goto out;
> + }
> +
> + if (node->size != size) {
> + pr_err("node %d has wrong size, expected size %llx, found %llx\n",
> + m, size, node->size);
> + goto out;
> + }
> +
> + if (node->hole_follows) {
> + pr_err("node %d is followed by a hole!\n", m);
> + goto out;
> + }
> +
> + m++;
> + }
> + }
> +
I still do not have a solid opinion what is a decent amount of
iterations to do at each place.
With the helper isolated;
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