On Sat, 14 Jan 2017 13:20:00 +0900 Namhyung Kim <namhy...@kernel.org> wrote:
> But I'm not sure how to synchronize hash table manipulations. It > seems synchronize_sched() is not good enough for function graph > tracer, right? So I limited changing filter size only when no tracer > is used, but is it ok to have the limitation when adding or removing > an entry to/from the table? If not, what can I do? There's already a hash that function tracing uses. Look at the code in ftrace_hash_move(). If you make it where the hash is always looked at with preemption disabled, you can use synchronize_sched() to modify the hash. The trampolines are a bit trickier, because there's no way to disable preemption or do any other synchronization when they are called. -- Steve