I'll follow that approach.
On Fri, 10 Mar 2023 11:22:54 -0800
> >> + trace_ksm_remove_rmap_item(stable_node->kpfn, rmap_item, rmap_item->mm);
> >
> > Instead of dereferencing the stable_node here, where the work could
> > possibly happen outside the trace event and in the hot path, could you pass
> > in the stable_node instead, and then in the TP_fast_assign() do:
> >
> > __entry->pfn = stable_node->kpfn;
> >
> >
>
> To do this, the structure would need to be exposed. Currently the
> structure is defined in ksm.c. This is an internal structure that we
> most likely don't want to expose. We can get by not printing the pfn
> and use the rmap_item to refer back to it, but exposing it directly
> here is more convenient for debugging.
>
> Any thoughts?
Sounds like the include/trace/events/ksm.h should be local too.
See my reply about include/trace/events/thermal.h
And their solution.
I suggest you do the same.
-- Steve