From: Ben Widawsky <ben@bwidawsk.net>
To: Intel GFX <intel-gfx@lists.freedesktop.org>
Cc: Ben Widawsky <ben@bwidawsk.net>
Subject: [PATCH 00/34] PPGTT prep part 2 (and unmerged part 1)
Date: Sat, 25 May 2013 12:26:34 -0700 [thread overview]
Message-ID: <1369510028-3343-1-git-send-email-ben@bwidawsk.net> (raw)
Hello.
I'm continuing to develop full PPGTT support for the i915 driver. This
series is a follow-up to the previously posted RFC [1]. This series
contains reworked versions of the unmerged patches (fingers crossed that
I didn't miss review comments). I've rebased this series to hell and
back, so I'm sure there are some lingering errors due to that. I've found
several, but my eyes are no longer capable of finding them. I've also added
some last minute fixups, which I always promise myself I'll never do because
they always have bugs.
To reiterate the steps I am planning to take which I did this in the
previous RFC [1], but it has changed a bit:
1. Make a link between contexts and PPGTT. Every context has it's own
address space implemented.
2. Create the VMA/VM, plumb through the driver.
3. Create a context per fd. This involves abstracting the notion of
context to not just mean a HW context, but also an address space.
4. Switch address spaces on context switch.
5. Develop interfaces.
This patch series addresses steps 1 & 2. A lot of the future patches
should have much less room for debate on what color to paint the
bikeshed, so I feel this is a good point to submit for some review. I am
currently developing 3 & 4. I have some half baked patches which aren't
really ready, but do give me some notion that things will work. Note
that The order of 3 and 4 really matter because if we start switching
page tables for applications not using contexts, everything will blow up
pretty badly.
To not scare off potential reviewers, even though the series is as long
as it is, many of the patches really could be squashed. To keep rebase +
easier review, I've split things out to multiple steps.
1-5: Random fixes.
6-15: Equivalent to reworked version of the PPGTT prep part 1
6-9: Make PPGTT PDE allocation more generic
10-15: Tie contexts to PPGTT.
16-34: create the VM and VMAs.
16-20: Mostly cut and paste to set us up for future patches.
21-25: Set up the address space abstraction.
26-31: Reorganize code to prepare for VMAs
31-34: are logically one patch. I split them out for my own debug
after the enormous patch didn't work. I'm fine with squashing
them in to 1 after review, or leaving a large bisect warning
(as I've done).
I do have a work in progress branch on fd.o [2]. This may not reflect this
series 1:1 as it will have rebases, plus some future patches as I feel they are
ready. If someone wants a branch on fd.o for review, please let me know.
References:
[1] http://lists.freedesktop.org/archives/intel-gfx/2013-April/027144.html
[2] http://cgit.freedesktop.org/~bwidawsk/drm-intel/log/?h=ppgtt-prep-2
--
Ben Widawsky (33):
drm/i915: pre-fixes for checkpatch
drm/i915: use mappable size for fb kickout
drm/i915: use drm_mm_takedown
drm/i915: context debug messages
drm/i915: Call context fini at cleanup
drm/i915: make PDE|PTE platform specific
drm/i915: Use drm_mm for PPGTT PDEs
drm/i915: Use PDEs as the guard page
drm/i915: cleanup context fini
drm/i915: Do a fuller init after reset
drm/i915: Split context enabling from init
drm/i915: destroy i915_gem_init_global_gtt
drm/i915: Embed PPGTT into the context
drm/i915: Tie context to PPGTT
drm/i915: Really share scratch page
drm/i915: Combine scratch members into a struct
drm/i915: Drop dev from pte_encode
drm/i915: Use gtt shortform where possible
drm/i915: Move fbc members out of line
drm/i915: Move gtt and ppgtt under address space umbrella
drm/i915: Move gtt_mtrr to i915_gtt
drm/i915: Move stolen stuff to i915_gtt
drm/i915: Move aliasing_ppgtt
drm/i915: Put the mm in the parent address space
drm/i915: Move object tracking lists to new mm
drm/i915: Create a global list of vms
drm/i915: Start using vm lists
drm/i915: Remove object's gtt_offset
drm: pre allocate node for create_block
drm/i915: Getter/setter for object attributes
drm/i915: Create VMAs (part 1)
drm/i915: Create VMAs (part 2)
drm/i915: Create VMAs (part 3)
Chris Wilson (1):
drm: Optionally create mm blocks from top-to-bottom
drivers/gpu/drm/drm_mm.c | 134 ++++----
drivers/gpu/drm/i915/i915_debugfs.c | 63 ++--
drivers/gpu/drm/i915/i915_dma.c | 33 +-
drivers/gpu/drm/i915/i915_drv.c | 29 +-
drivers/gpu/drm/i915/i915_drv.h | 275 +++++++++++------
drivers/gpu/drm/i915/i915_gem.c | 481 ++++++++++++++++++++---------
drivers/gpu/drm/i915/i915_gem_context.c | 67 ++--
drivers/gpu/drm/i915/i915_gem_debug.c | 11 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 63 ++--
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 83 +++--
drivers/gpu/drm/i915/i915_gem_gtt.c | 373 +++++++++++-----------
drivers/gpu/drm/i915/i915_gem_stolen.c | 88 +++---
drivers/gpu/drm/i915/i915_gem_tiling.c | 18 +-
drivers/gpu/drm/i915/i915_irq.c | 37 ++-
drivers/gpu/drm/i915/i915_trace.h | 20 +-
drivers/gpu/drm/i915/intel_display.c | 40 ++-
drivers/gpu/drm/i915/intel_drv.h | 7 -
drivers/gpu/drm/i915/intel_fb.c | 8 +-
drivers/gpu/drm/i915/intel_overlay.c | 26 +-
drivers/gpu/drm/i915/intel_pm.c | 58 ++--
drivers/gpu/drm/i915/intel_ringbuffer.c | 28 +-
drivers/gpu/drm/i915/intel_sprite.c | 8 +-
include/drm/drm_mm.h | 147 +++++----
23 files changed, 1244 insertions(+), 853 deletions(-)
--
1.8.2.3
next reply other threads:[~2013-05-25 19:24 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-25 19:26 Ben Widawsky [this message]
2013-05-25 19:26 ` [PATCH 01/34] drm/i915: pre-fixes for checkpatch Ben Widawsky
2013-05-25 19:26 ` [PATCH 02/34] drm/i915: use mappable size for fb kickout Ben Widawsky
2013-05-25 19:26 ` [PATCH 03/34] drm/i915: use drm_mm_takedown Ben Widawsky
2013-05-25 19:26 ` [PATCH 04/34] drm/i915: context debug messages Ben Widawsky
2013-05-25 19:26 ` [PATCH 05/34] drm/i915: Call context fini at cleanup Ben Widawsky
2013-05-26 13:27 ` Daniel Vetter
2013-05-25 19:26 ` [PATCH 06/34] drm/i915: make PDE|PTE platform specific Ben Widawsky
2013-05-25 19:26 ` [PATCH 07/34] drm: Optionally create mm blocks from top-to-bottom Ben Widawsky
2013-05-25 19:26 ` [PATCH 08/34] drm/i915: Use drm_mm for PPGTT PDEs Ben Widawsky
2013-05-25 19:26 ` [PATCH 09/34] drm/i915: Use PDEs as the guard page Ben Widawsky
2013-05-25 19:26 ` [PATCH 10/34] drm/i915: cleanup context fini Ben Widawsky
2013-05-25 19:26 ` [PATCH 11/34] drm/i915: Do a fuller init after reset Ben Widawsky
2013-05-25 19:26 ` [PATCH 12/34] drm/i915: Split context enabling from init Ben Widawsky
2013-05-26 1:41 ` [PATCH v3 " Ben Widawsky
2013-05-25 19:26 ` [PATCH 13/34] drm/i915: destroy i915_gem_init_global_gtt Ben Widawsky
2013-05-25 19:26 ` [PATCH 14/34] drm/i915: Embed PPGTT into the context Ben Widawsky
2013-05-25 19:26 ` [PATCH 15/34] drm/i915: Tie context to PPGTT Ben Widawsky
2013-05-29 5:32 ` [PATCH 14.5/34] drm/i915: Unify PPGTT codepaths on gen6+ Ben Widawsky
2013-05-25 19:26 ` [PATCH 16/34] drm/i915: Really share scratch page Ben Widawsky
2013-05-25 19:26 ` [PATCH 17/34] drm/i915: Combine scratch members into a struct Ben Widawsky
2013-05-25 19:26 ` [PATCH 18/34] drm/i915: Drop dev from pte_encode Ben Widawsky
2013-05-25 20:14 ` Kenneth Graunke
2013-05-25 19:26 ` [PATCH 19/34] drm/i915: Use gtt shortform where possible Ben Widawsky
2013-05-25 19:26 ` [PATCH 20/34] drm/i915: Move fbc members out of line Ben Widawsky
2013-05-25 19:26 ` [PATCH 21/34] drm/i915: Move gtt and ppgtt under address space umbrella Ben Widawsky
2013-05-25 19:26 ` [PATCH 22/34] drm/i915: Move gtt_mtrr to i915_gtt Ben Widawsky
2013-05-25 19:26 ` [PATCH 23/34] drm/i915: Move stolen stuff " Ben Widawsky
2013-05-25 19:26 ` [PATCH 24/34] drm/i915: Move aliasing_ppgtt Ben Widawsky
2013-05-25 19:26 ` [PATCH 25/34] drm/i915: Put the mm in the parent address space Ben Widawsky
2013-05-25 19:27 ` [PATCH 26/34] drm/i915: Move object tracking lists to new mm Ben Widawsky
2013-05-25 19:27 ` [PATCH 27/34] drm/i915: Create a global list of vms Ben Widawsky
2013-05-26 17:19 ` Ben Widawsky
2013-05-25 19:27 ` [PATCH 28/34] drm/i915: Start using vm lists Ben Widawsky
2013-05-25 19:27 ` [PATCH 29/34] drm/i915: Remove object's gtt_offset Ben Widawsky
2013-05-25 19:27 ` [PATCH 30/34] drm: pre allocate node for create_block Ben Widawsky
2013-05-25 19:27 ` [PATCH 31/34] drm/i915: Getter/setter for object attributes Ben Widawsky
2013-05-25 19:27 ` [PATCH 32/34] drm/i915: Create VMAs (part 1) Ben Widawsky
2013-05-25 19:27 ` [PATCH 33/34] drm/i915: Create VMAs (part 2) Ben Widawsky
2013-05-25 19:27 ` [PATCH 34/34] drm/i915: Create VMAs (part 3) Ben Widawsky
2013-05-27 7:31 ` Chris Wilson
2013-05-27 8:59 ` Daniel Vetter
2013-06-04 21:49 ` [PATCH 00/34] PPGTT prep part 2 (and unmerged part 1) Ben Widawsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1369510028-3343-1-git-send-email-ben@bwidawsk.net \
--to=ben@bwidawsk.net \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox