[Bug 62191] Buffer Object corruption with multiple processes

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue May 14 06:12:44 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=62191

--- Comment #23 from jon.bloomfield at intel.com ---
We tried two stop_machine() experiments on VLV - The first just called wbinvd()
from stop machine, instead of on_each_cpu(). This made no difference.

However, reverting to the v2 patch, and calling i915_gem_write_fence(), from
stop_machine, appears to have resolved the problem. We ran 1000 iterations of
the selftest bug-demo with no failures. We also had to remove the HAS_LLC test,
since VLV has no LLC.

Note that we surrounded the call to i915_gem_write_fence() with wbinvd(). We
didn't have time to see if it was possible to remove these invalidate
operations.

The relevant code-portions are shown below...

static int i915_gem_write_fence__ipi(void *data)
{
    struct write_fence *args = data;
    wbinvd();
    i915_gem_write_fence(args->dev, args->fence, args->obj);
    wbinvd();
    return 0;
}

static void i915_gem_object_update_fence(struct drm_i915_gem_object *obj,
                     struct drm_i915_fence_reg *fence,
                     bool enable)
{
    struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
    struct write_fence args = {
        .dev = obj->base.dev,
        .fence = fence_number(dev_priv, fence),
        .obj = enable ? obj : NULL,
    };

    stop_machine(i915_gem_write_fence__ipi, &args, cpu_possible_mask);

    if (enable) {
        obj->fence_reg = args.fence;
        fence->obj = obj;
        list_move_tail(&fence->lru_list, &dev_priv->mm.fence_list);
    } else {
        obj->fence_reg = I915_FENCE_REG_NONE;
        fence->obj = NULL;
        list_del_init(&fence->lru_list);
    }
}

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20130514/53964305/attachment.html>


More information about the intel-gfx-bugs mailing list