Re: [PATCH v1] drm/i915/guc: Fix a fw content lost issue after it is evicted

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 11, 2015 at 2:37 PM, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Nov 10, 2015 at 03:27:36PM -0800, yu.dai@xxxxxxxxx wrote:
>> From: Alex Dai <yu.dai@xxxxxxxxx>
>>
>> We keep a copy of GuC fw in a GEM obj. However its content is lost
>> if the GEM obj is swapped (igt/gem_evict_*). Therefore, the later
>> fw loading during GPU reset will fail. Mark the obj dirty after
>> copying data into the pages. So its content will be kept during
>> swapped out.
>>
>> Signed-off-by: Alex Dai <yu.dai@xxxxxxxxx>
>> ---
>>  drivers/gpu/drm/i915/i915_gem.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> index f1e3fde..3b15167 100644
>> --- a/drivers/gpu/drm/i915/i915_gem.c
>> +++ b/drivers/gpu/drm/i915/i915_gem.c
>> @@ -5199,6 +5199,7 @@ i915_gem_object_create_from_data(struct drm_device *dev,
>>       i915_gem_object_pin_pages(obj);
>>       sg = obj->pages;
>>       bytes = sg_copy_from_buffer(sg->sgl, sg->nents, (void *)data, size);
>> +     obj->dirty = 1;
>
> That's one way of doing it, but atypical for our CPU access to the pages.
> The root cause is still that sg_copy_from_buffer() isn't calling
> set_page_dirty() and so there will be other places in the kernel that
> fall foul of it. Also, not that we could have written this to not require
> the whole object to be pinned at once as well.
>
> I would prefer this to be fixed in sg_copy_from_buffer() for the reason
> that all callers are susceptible to this bug.
> -Chris

Probably the sg_copy_from_buffer is written with an assumption that
the pages it is supposed to write to,
would always be the kernel pages (GFP_KERNEL), which will always be
resident in RAM. Thus no real need to mark the pages as dirty.
Or the Clients/Users of  sg_copy_from_buffer function are expected to
explicitly mark the pages as dirty.

Best regards
Akash

>
> --
> Chris Wilson, Intel Open Source Technology Centre
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux