[Intel-gfx] [PATCH v3 0/5] Command parser batch buffer copy
Volkin, Bradley D
bradley.d.volkin at intel.com
Mon Nov 3 23:44:55 CET 2014
On Mon, Nov 03, 2014 at 11:19:40AM -0800, Volkin, Bradley D wrote:
> From: Brad Volkin <bradley.d.volkin at intel.com>
>
> This is v3 of the series I sent here:
> http://lists.freedesktop.org/archives/intel-gfx/2014-July/048705.html
>
> Most of the previous commentary still applies. We've fixed the secure
> dispatch regression though, so the series now puts the parser into
> enabling mode in patch 2.
>
> There are currently some regressions. I've sent i-g-t patches for a couple that
> are test issues. The remaining issues are:
>
> drv_hangman error-state-capture-*
> The test has checks that the logged 'gtt_offset' matches the expected
> offset of the userspace-supplied batch buffer. Similarly for the address
> in an MI_BATCH_BUFFER_START command found in the logged ringbuffer contents.
> These obviously won't match if the buffer submitted to hardware is from the
> batch pool instead of the one from userspace.
>
> gem_reloc_vs_gpu *-thrash-inactive
> gem_persistent_relocs *-thrash-inactive
> These fail with this type of error:
>
> Test assertion failure function do_test, file gem_reloc_vs_gpu.c:221:
> Failed assertion: test == 0xdeadbeef
> mismatch in buffer 0: 0x00000000 instead of 0xdeadbeef
> child 6 failed with exit status 99
> Subtest forked-thrash-inactive: FAIL (3.824s)
>
> One crashed, apparently in i915_gem_object_move_to_inactive() called via
> i915_gem_reset(). I assume there's an issue with my active tracking or
> madv usage for batch pool objects. Any input would be helpful.
Follow up: the current patches aren't setting any read domains for the shadow
batch object. Simply setting
shadow_batch_obj->base.pending_read_domains = batch_obj->base.pending_read_domains;
after parsing has these passing consistently in local testing. So unless anyone
sees further problems, I'll send a new version of the one patch with that change
squashed in.
Brad
>
> gem_cs_tlb
> This test takes longer and may time out.
>
> Brad Volkin (5):
> drm/i915: Implement a framework for batch buffer pools
> drm/i915: Use batch pools with the command parser
> drm/i915: Add a batch pool debugfs file
> drm/i915: Add batch pool details to i915_gem_objects debugfs
> drm/i915: Use batch length instead of object size in command parser
>
> Documentation/DocBook/drm.tmpl | 5 +
> drivers/gpu/drm/i915/Makefile | 1 +
> drivers/gpu/drm/i915/i915_cmd_parser.c | 102 +++++++++++++++----
> drivers/gpu/drm/i915/i915_debugfs.c | 86 ++++++++++++++--
> drivers/gpu/drm/i915/i915_dma.c | 1 +
> drivers/gpu/drm/i915/i915_drv.h | 26 +++++
> drivers/gpu/drm/i915/i915_gem.c | 11 +++
> drivers/gpu/drm/i915/i915_gem_batch_pool.c | 153 +++++++++++++++++++++++++++++
> drivers/gpu/drm/i915/i915_gem_execbuffer.c | 62 +++++++++++-
> 9 files changed, 416 insertions(+), 31 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/i915_gem_batch_pool.c
>
> --
> 1.9.1
>
More information about the Intel-gfx
mailing list