drm/i915: Process page flags once rather than per pwrite/pread
We used to lock individual pages inside the buffer object and so needed to update the page flags every time. However, we now pin the pages into the object for the duration of the pwrite/pread (and hopefully much longer) and so we can forgo the flag updates until we release all the pages. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
2fae6a860c
Коммит
17793c9a46
|
@ -510,12 +510,10 @@ i915_gem_shmem_pread(struct drm_device *dev,
|
|||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
|
||||
next_page:
|
||||
mark_page_accessed(page);
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
next_page:
|
||||
remain -= page_length;
|
||||
user_data += page_length;
|
||||
offset += page_length;
|
||||
|
@ -831,13 +829,10 @@ i915_gem_shmem_pwrite(struct drm_device *dev,
|
|||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
|
||||
next_page:
|
||||
set_page_dirty(page);
|
||||
mark_page_accessed(page);
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
next_page:
|
||||
remain -= page_length;
|
||||
user_data += page_length;
|
||||
offset += page_length;
|
||||
|
|
Загрузка…
Ссылка в новой задаче