[Intel-gfx] [PATCH 2/2] drm/i915: Make GPU pages movable
Goel, Akash
akash.goel at intel.com
Fri Nov 4 13:53:05 UTC 2016
On 11/4/2016 7:07 PM, Chris Wilson wrote:
> Best if we send these as a new series to unconfuse CI.
>
Okay will send as a new series.
> On Fri, Nov 04, 2016 at 06:18:26PM +0530, akash.goel at intel.com wrote:
>> +static int do_migrate_page(struct drm_i915_gem_object *obj)
>> +{
>> + struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
>> + int ret = 0;
>> +
>> + if (!can_migrate_page(obj))
>> + return -EBUSY;
>> +
>> + /* HW access would be required for a GGTT bound object, for which
>> + * device has to be kept awake. But a deadlock scenario can arise if
>> + * the attempt is made to resume the device, when either a suspend
>> + * or a resume operation is already happening concurrently from some
>> + * other path and that only also triggers compaction. So only unbind
>> + * if the device is currently awake.
>> + */
>> + if (!intel_runtime_pm_get_if_in_use(dev_priv))
>> + return -EBUSY;
>> +
>> + i915_gem_object_get(obj);
>> + if (!unsafe_drop_pages(obj))
>> + ret = -EBUSY;
>> + i915_gem_object_put(obj);
>
> Since the object release changes, we can now do this without the
> i915_gem_object_get / i915_gem_object_put (as we are guarded by the BKL
> struct_mutex).
Fine will remove object_get/put as with struct_mutex protection object
can't disappear across unsafe_drop_pages().
Best regards
Akash
> -Chris
>
More information about the Intel-gfx
mailing list