[Intel-gfx] Modesetting bug on 945GSE (Atom N270) with Chris Wilson drm-intel-next kernel
simon.farnsworth at onelan.co.uk
Tue Nov 23 08:06:00 PST 2010
On Monday 22 November 2010, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> In theory, we should be able to gather quite a bit of interesting
> information for analysing deadlines from using perf timechart in
> conjunction with i915:i915_gem_request_wait_begin,
> i915:i915_flip_request, i915:i915_flip_complete. Just needs a lot more
> effort for useful analysis.
So, I looked at this a bit; started by using:
./perf record -e sched:sched_wakeup -e sched:sched_switch -e i915:i915_flip_request -e i915:i915_flip_complete -e i915:i915_gem_request_wait_begin -a
to record traces, and viewed them with perf trace, to check that I was on the
right sort of track. I then tried perf timechart, just to see what the output
looks like, but found that 8GB RAM and 10GB swap isn't enough space for
Inkspace, Google Chrome or Firefox to examine the resulting SVG.
I'm therefore just using perf trace to look at deadline misses; the record
command above gives you enough data to see who's pushed you off the CPU and
thus determine why you couldn't make your deadline, albeit not nicely
You can then recognise missed deadlines by a long interval between
i915_flip_complete events. Looking inbetween then lets you see why you missed
your deadline; the sched events tell you if your process isn't being scheduled,
while the presence of i915_gem_request_wait_begin tells you that you stalled
waiting for the GPU.
If someone has more spare time and UI skill than I do, a nice UI to find
crisis periods and zoom in on them would be a nice thing to have; I'm
currently spotting them by hand, although a simple Python program could also
do the filtering.
More information about the Intel-gfx