On Thu, 30 Apr 2020 11:20:15 -0400 (EDT) Mathieu Desnoyers <mathieu.desnoy...@efficios.com> wrote:
> > The right fix is to call vmalloc_sync_mappings() right after allocating > > tracing or perf buffers via v[zm]alloc(). > > Either right after allocation, or right before making the vmalloc'd data > structure visible to the instrumentation. In the case of the pid filter, > that would be the rcu_assign_pointer() which publishes the new pid filter > table. > > As long as vmalloc_sync_mappings() is performed somewhere *between* allocation > and publishing the pointer for instrumentation, it's fine. > > I'll let Steven decide on which approach works best for him. As stated in the other email, I don't see it having anything to do with vmalloc, but with the per_cpu() allocation. I'll test this theory out by not even allocating the pid masks and touching the per cpu data at every event to see if it crashes. -- Steve