Skip to content

Commit

Permalink
drm/i915: Process page flags once rather than per pwrite/pread
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Chris Wilson authored and Daniel Vetter committed Mar 7, 2014
1 parent 2fae6a8 commit 17793c9
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 17793c9

Please sign in to comment.