All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [CI 1/6] drm/i915: Remove temporary allocation of dma addresses when rotating
Date: Mon, 20 Feb 2017 10:36:33 +0000	[thread overview]
Message-ID: <6a94bdcd-da14-f985-8eb3-7c57846e2041@linux.intel.com> (raw)
In-Reply-To: <20170217163753.GD4100@nuc-i3427.alporthouse.com>


On 17/02/2017 16:37, Chris Wilson wrote:
> On Fri, Feb 17, 2017 at 04:28:13PM +0000, Tvrtko Ursulin wrote:
>>
>> On 17/02/2017 15:12, Chris Wilson wrote:
>>> The object already stores (computed on the fly) the index to dma address
>>> so use it instead of reallocating a large temporary array every time we
>>> bind a rotated framebuffer.
>>
>> On the other hand how big is the radix tree for a large framebuffer?
>> I remember those nodes were quite chunky and will hang around for
>> the lifetime of the object. While the above mentioned large
>> temporary array needs to be allocated only if rotated VMAs have been
>> discarded due GGTT pressure, no?
>>
>> On the other other hand maybe the radix tree won't be so big in the
>> typical case, due sg entry coalescing, but it will hang around for
>> much longer.
>
> Also don't forget that we use the radixtree for mmaps, partials, single
> page lookups. In all likelihood it already exists, and it doesn't hang
> around forever.

Yeah, but for a typical framebuffer none of this are actually used to 
trigger creating the radix tree.

For a standard 1920x1080x32 fb, temporary allocation for rotation is 
only ~16KiB so don't see that it can cause any problems even with 4k 
screens.

Struct radix_tree_node is much chunkier so how many of those will a 
typical framebuffer need and how much memory in total would it tie up? 
It would only be dropped once we drop the backing store, so for 
framebuffers basically never.

>>> -	DRM_DEBUG_KMS("Created rotated page mapping for object size %zu (%ux%u tiles, %u pages)\n",
>>> -		      obj->base.size, rot_info->plane[0].width, rot_info->plane[0].height, size);
>>
>> Hm given how chatty KMS log level is this one wasn't that harmful
>> but OK. Use to save me looking in debugfs/i915_gem_framebuffer and
>> eyeball the VMA list. Granted that is much more manageable now after
>> you added the human readable output there.
>
> It's just the odd one out. If it is useful here, it presumably has some
> use on the other branches - and do we want it at page allocation time or
> vma creation. And I don't think we really want one at vma create, so I'd
> prefer to improve the debugfs (or other) probe.

I agree that debugfs output is sufficent nowadays.

Regards,

Tvrtko


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-02-20 10:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-17 15:12 [CI 1/6] drm/i915: Remove temporary allocation of dma addresses when rotating Chris Wilson
2017-02-17 15:13 ` [CI 2/6] drm/i915: Postpone fake breadcrumb interrupt until real interrupts cease Chris Wilson
2017-02-17 15:13 ` [CI 3/6] drm/i915: Break i915_spin_request() if we see an interrupt Chris Wilson
2017-02-17 15:13 ` [CI 4/6] drm/i915: Defer declaration of missed-interrupt until the waiter is asleep Chris Wilson
2017-02-17 15:13 ` [CI 5/6] drm/i915: Only start with the fake-irq timer if interrupts are dead Chris Wilson
2017-02-17 15:13 ` [CI 6/6] drm/i915: Remove completed fences after a wait Chris Wilson
2017-02-17 16:28 ` [CI 1/6] drm/i915: Remove temporary allocation of dma addresses when rotating Tvrtko Ursulin
2017-02-17 16:37   ` Chris Wilson
2017-02-20 10:36     ` Tvrtko Ursulin [this message]
2017-02-20 10:46       ` Chris Wilson
2017-02-17 18:52 ` ✓ Fi.CI.BAT: success for series starting with [CI,1/6] " Patchwork

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=6a94bdcd-da14-f985-8eb3-7c57846e2041@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.