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