From: Chris Wilson <chris@chris-wilson.co.uk> To: intel-gfx@lists.freedesktop.org Subject: [PATCH 06/16] drm/i915: Allow objects to be created with no backing pages, but stolen space Date: Thu, 15 Nov 2012 11:32:21 +0000 Message-ID: <1352979151-9934-7-git-send-email-chris@chris-wilson.co.uk> (raw) In-Reply-To: <1352979151-9934-1-git-send-email-chris@chris-wilson.co.uk> In order to accommodate objects that are not backed by struct pages, but instead point into a contiguous region of stolen space, we need to make various changes to avoid dereferencing obj->pages or obj->base.filp. First introduce a marker for the stolen object, that specifies its offset into the stolen region and implies that it has no backing pages. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Ben Widawsky <ben@bwidawsk.net> --- drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ drivers/gpu/drm/i915/i915_drv.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 4568e7d..d6e9198 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -124,6 +124,8 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) if (obj->gtt_space != NULL) seq_printf(m, " (gtt offset: %08x, size: %08x)", obj->gtt_offset, (unsigned int)obj->gtt_space->size); + if (obj->stolen) + seq_printf(m, " (stolen: %08lx)", obj->stolen->start); if (obj->pin_mappable || obj->fault_mappable) { char s[3], *t = s; if (obj->pin_mappable) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 196d1b7..9705380 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -962,6 +962,8 @@ struct drm_i915_gem_object { /** Current space allocated to this object in the GTT, if any. */ struct drm_mm_node *gtt_space; + /** Stolen memory for this object, instead of being backed by shmem. */ + struct drm_mm_node *stolen; struct list_head gtt_list; /** This object's place on the active/inactive lists */ -- 1.7.10.4
next prev parent reply index Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-11-15 11:32 Hopefully the last round of stolen work Chris Wilson 2012-11-15 11:32 ` [PATCH 01/16] drm: Introduce drm_mm_create_block() Chris Wilson 2012-11-15 11:32 ` [PATCH 02/16] drm: Introduce an iterator over holes in the drm_mm range manager Chris Wilson 2012-11-15 11:32 ` [PATCH 03/16] drm/i915: Fix detection of base of stolen memory Chris Wilson 2012-11-15 11:32 ` [PATCH 04/16] drm/i915: Avoid clearing preallocated regions from the GTT Chris Wilson 2012-11-15 11:32 ` [PATCH 05/16] drm/i915: Delay allocation of stolen space for FBC Chris Wilson 2012-11-15 11:32 ` Chris Wilson [this message] 2012-11-15 11:32 ` [PATCH 07/16] drm/i915: Differentiate between prime and stolen objects Chris Wilson 2012-11-15 11:32 ` [PATCH 08/16] drm/i915: Support readback of stolen objects upon error Chris Wilson 2012-11-15 11:32 ` [PATCH 09/16] drm/i915: Handle stolen objects in pwrite Chris Wilson 2012-11-15 11:32 ` [PATCH 10/16] drm/i915: Handle stolen objects for pread Chris Wilson 2012-11-30 22:33 ` Daniel Vetter 2012-11-30 23:46 ` Chris Wilson 2012-12-01 0:03 ` Daniel Vetter 2012-12-01 0:14 ` Chris Wilson 2012-11-15 11:32 ` [PATCH 11/16] drm/i915: Introduce i915_gem_object_create_stolen() Chris Wilson 2012-11-15 11:32 ` [PATCH 12/16] drm/i915: Allocate fbcon from stolen memory Chris Wilson 2012-11-15 11:32 ` [PATCH 13/16] drm/i915: Allocate ringbuffers " Chris Wilson 2012-11-15 11:32 ` [PATCH 14/16] drm/i915: Allocate overlay registers " Chris Wilson 2012-11-15 11:32 ` [PATCH 15/16] drm/i915: Use a slab for object allocation Chris Wilson 2012-11-30 22:45 ` Daniel Vetter 2012-11-15 11:32 ` [PATCH 16/16] drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl Chris Wilson 2012-11-30 23:06 ` Daniel Vetter 2012-11-30 23:57 ` Chris Wilson 2012-12-01 11:25 ` Chris Wilson 2012-12-01 11:35 ` Daniel Vetter
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=1352979151-9934-7-git-send-email-chris@chris-wilson.co.uk \ --to=chris@chris-wilson.co.uk \ --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
Intel-GFX Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/intel-gfx/0 intel-gfx/git/0.git git clone --mirror https://lore.kernel.org/intel-gfx/1 intel-gfx/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 intel-gfx intel-gfx/ https://lore.kernel.org/intel-gfx \ intel-gfx@lists.freedesktop.org public-inbox-index intel-gfx Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.freedesktop.lists.intel-gfx AGPL code for this site: git clone https://public-inbox.org/public-inbox.git