On Fri, Oct 24, 2014 at 04:30:52PM +0100, daniele.ceraolospurio@xxxxxxxxx wrote: > From: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > > These tracepoints are useful for observing the creation and > destruction of Full PPGTTs. > > v4: add DOC information > v5: pull the DOC in drm.tmpl > > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > +TRACE_EVENT(i915_ppgtt_create, > + TP_PROTO(struct i915_address_space *vm), > + > + TP_ARGS(vm), > + > + TP_STRUCT__entry( > + __field(struct i915_address_space *, vm) > + __field(u32, dev) > + __field(int, pid) > + ), > + > + TP_fast_assign( > + __entry->vm = vm; > + __entry->dev = vm->dev->primary->index; > + __entry->pid = (int)task_pid_nr(current); This is redundant. Current pid is part of the perf header (iirc at least). Besides which storing the creator pid is useful elsewhere when debugging vm (especially as now vm->pid != file->pid). > + ), > + > + TP_printk("dev=%u, task_pid=%d, vm=%p", > + __entry->dev, __entry->pid, __entry->vm) > +); > + > +TRACE_EVENT(i915_ppgtt_release, > + > + TP_PROTO(struct i915_address_space *vm), > + > + TP_ARGS(vm), > + > + TP_STRUCT__entry( > + __field(struct i915_address_space *, vm) > + __field(u32, dev) > + ), > + > + TP_fast_assign( > + __entry->vm = vm; > + __entry->dev = vm->dev->primary->index; > + ), > + > + TP_printk("dev=%u, vm=%p", __entry->dev, __entry->vm) > +); So what about switch_mm (accounting for both execlists/non-execlists)? ppgtt_close is also another important point in the lifetime, and so you also want ppgtt_open for symmetry. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx