drm/i915: Remove bitmap tracking for used-ptes
We only operate on known extents (both for alloc/clear) and so we can use both the knowledge of the bind/unbind range along with the knowledge of the existing pagetable to avoid having to allocate temporary and auxiliary bitmaps. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99295 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170215084357.19977-12-chris@chris-wilson.co.uk
This commit is contained in:
@@ -245,15 +245,14 @@ DEFINE_EVENT_PRINT(i915_px_entry, i915_page_directory_pointer_entry_alloc,
|
||||
|
||||
DECLARE_EVENT_CLASS(i915_page_table_entry_update,
|
||||
TP_PROTO(struct i915_address_space *vm, u32 pde,
|
||||
struct i915_page_table *pt, u32 first, u32 count, u32 bits),
|
||||
TP_ARGS(vm, pde, pt, first, count, bits),
|
||||
struct i915_page_table *pt, u32 first, u32 count),
|
||||
TP_ARGS(vm, pde, pt, first, count),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(struct i915_address_space *, vm)
|
||||
__field(u32, pde)
|
||||
__field(u32, first)
|
||||
__field(u32, last)
|
||||
__dynamic_array(char, cur_ptes, TRACE_PT_SIZE(bits))
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
@@ -261,22 +260,16 @@ DECLARE_EVENT_CLASS(i915_page_table_entry_update,
|
||||
__entry->pde = pde;
|
||||
__entry->first = first;
|
||||
__entry->last = first + count - 1;
|
||||
scnprintf(__get_str(cur_ptes),
|
||||
TRACE_PT_SIZE(bits),
|
||||
"%*pb",
|
||||
bits,
|
||||
pt->used_ptes);
|
||||
),
|
||||
|
||||
TP_printk("vm=%p, pde=%d, updating %u:%u\t%s",
|
||||
__entry->vm, __entry->pde, __entry->last, __entry->first,
|
||||
__get_str(cur_ptes))
|
||||
TP_printk("vm=%p, pde=%d, updating %u:%u",
|
||||
__entry->vm, __entry->pde, __entry->last, __entry->first)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(i915_page_table_entry_update, i915_page_table_entry_map,
|
||||
TP_PROTO(struct i915_address_space *vm, u32 pde,
|
||||
struct i915_page_table *pt, u32 first, u32 count, u32 bits),
|
||||
TP_ARGS(vm, pde, pt, first, count, bits)
|
||||
struct i915_page_table *pt, u32 first, u32 count),
|
||||
TP_ARGS(vm, pde, pt, first, count)
|
||||
);
|
||||
|
||||
TRACE_EVENT(i915_gem_object_change_domain,
|
||||
|
Viittaa uudesa ongelmassa
Block a user