Re: [Intel-gfx] [PATCH 7/8] drm/i915: Disable tracing points on PREEMPT_RT

Sebastian Andrzej Siewior
2021-12-14T15:57:00Z

On 2021-12-14 09:36:52 [-0500], Steven Rostedt wrote:
> Another way around this that I can see is if the data for the tracepoints
> can fit on the stack and add wrappers around the tracepoints. For example,
> looking at the first tracepoint in i915_trace.h:
…

Nice.

> We could modify this to be:
…
> static inline void do_trace_intel_pipe(struct intel_crtc *crtc)
> {
> u32 frame[3];
> u32 scanline[3];
> enum pipe pipe;
>
> if (!trace_intel_pipe_enable_enabled())
> return;
>
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> struct intel_crtc *it__;
> for_each_intel_crtc(&dev_priv->drm, it__) {
> frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
> scanline[it__->pipe] = intel_get_crtc_scanline(it__);
> }
>
> trace_intel_pipe(frame, scanline, crtc->pipe);
> }
…

> Then have the code call do_trace_intel_pipe() instead of trace_intel_pipe()
> and this should fix the issue with preempt rt.

Is this is something, that the i915 devs would accept?

> -- Steve

Sebastian