All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] pwrite/pread rework
@ 2011-11-06 19:13 ` Daniel Vetter
  0 siblings, 0 replies; 32+ messages in thread
From: Daniel Vetter @ 2011-11-06 19:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: linux-kernel, dri-devel, Daniel Vetter

Hi all,

I've finally managed to clean up my pwrite/pread rework. Major changes since the
first submission:
- fixed a bunch of bugs, some of them discovered by the intel-gpu-tools gem test
  suite
- extracted the clflush helper into common drm code as suggested by Chris
  Wilson.
- extended the prefault helpers in pagemap.h instead of rolling our own. Also
  add a patch to not prefault for writes (which change the userspace memory)
  before we're committed to the write. Both address issues raised by Keith
  Packard.

Why this is cool stuff:
- fixes the spurious -EFAULTS when handing in a pointer to a gem gtt mappings.
  See https://bugs.freedesktop.org/show_bug.cgi?id=38115
- Kills a bunch of code by dropping the practically useless ranged cpu read
  domain tracking and integrating the slow paths into the fast paths.
- Fixes pwrite/pread to use snooped cpu access on llc machines, hereby decently
  speeding up microbenchmarks.
- Paves the way for further clever tricks to reduce pressure on the mappable gtt
  area.

Reviews and comments highly welcome.

Yours, Daniel

Daniel Vetter (13):
  drm/i915: fall through pwrite_gtt_slow to the shmem slow path
  drm/i915: rewrite shmem_pwrite_slow to use copy_from_user
  drm/i915: rewrite shmem_pread_slow to use copy_to_user
  drm/i915: merge shmem_pwrite slow&fast-path
  drm/i915: merge shmem_pread slow&fast-path
  drm: add helper to clflush a virtual address range
  drm/i915: move clflushing into shmem_pread
  drm/i915: kill ranged cpu read domain support
  drm/i915: don't use gtt_pwrite on LLC cached objects
  drm/i915: don't call shmem_read_mapping unnecessarily
  mm: extend prefault helpers to fault in more than PAGE_SIZE
  drm/i915: drop gtt slowpath
  drm/i915: don't clobber userspace memory before commiting to the
    pread

 drivers/gpu/drm/drm_cache.c     |   23 ++
 drivers/gpu/drm/i915/i915_drv.h |    7 -
 drivers/gpu/drm/i915/i915_gem.c |  824 +++++++++++----------------------------
 include/drm/drmP.h              |    1 +
 include/linux/pagemap.h         |   28 +-
 5 files changed, 273 insertions(+), 610 deletions(-)

-- 
1.7.6.4


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2011-11-21 19:46 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-06 19:13 [PATCH 00/13] pwrite/pread rework Daniel Vetter
2011-11-06 19:13 ` Daniel Vetter
2011-11-06 19:13 ` [PATCH 01/13] drm/i915: fall through pwrite_gtt_slow to the shmem slow path Daniel Vetter
2011-11-06 19:13   ` Daniel Vetter
2011-11-21  3:09   ` [Intel-gfx] " Ben Widawsky
2011-11-21 10:20     ` Chris Wilson
2011-11-06 19:13 ` [PATCH 02/13] drm/i915: rewrite shmem_pwrite_slow to use copy_from_user Daniel Vetter
2011-11-06 19:13   ` Daniel Vetter
2011-11-21  5:56   ` Ben Widawsky
2011-11-21  5:56     ` [Intel-gfx] " Ben Widawsky
2011-11-21 16:02     ` Daniel Vetter
2011-11-21 17:55       ` Ben Widawsky
2011-11-21 18:43         ` Ben Widawsky
2011-11-06 19:13 ` [PATCH 03/13] drm/i915: rewrite shmem_pread_slow to use copy_to_user Daniel Vetter
2011-11-06 19:13 ` [PATCH 04/13] drm/i915: merge shmem_pwrite slow&fast-path Daniel Vetter
2011-11-06 19:13 ` [PATCH 05/13] drm/i915: merge shmem_pread slow&fast-path Daniel Vetter
2011-11-06 19:13 ` [PATCH 06/13] drm: add helper to clflush a virtual address range Daniel Vetter
2011-11-21 19:46   ` [Intel-gfx] " Ben Widawsky
2011-11-06 19:13 ` [PATCH 07/13] drm/i915: move clflushing into shmem_pread Daniel Vetter
2011-11-06 19:13 ` [PATCH 08/13] drm/i915: kill ranged cpu read domain support Daniel Vetter
2011-11-06 19:13 ` [PATCH 09/13] drm/i915: don't use gtt_pwrite on LLC cached objects Daniel Vetter
2011-11-06 21:16   ` Chris Wilson
2011-11-06 21:16     ` Chris Wilson
2011-11-06 22:19     ` Daniel Vetter
2011-11-06 19:13 ` [PATCH 10/13] drm/i915: don't call shmem_read_mapping unnecessarily Daniel Vetter
2011-11-06 19:13 ` [PATCH 11/13] mm: extend prefault helpers to fault in more than PAGE_SIZE Daniel Vetter
2011-11-06 19:13   ` Daniel Vetter
2011-11-06 22:24   ` Chris Wilson
2011-11-06 22:24     ` Chris Wilson
2011-11-06 22:24     ` Chris Wilson
2011-11-06 19:13 ` [PATCH 12/13] drm/i915: drop gtt slowpath Daniel Vetter
2011-11-06 19:14 ` [PATCH 13/13] drm/i915: don't clobber userspace memory before commiting to the pread Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.