On Tue, Jun 12, 2018 at 10:51:15AM +0300, Alexander Shishkin wrote: > + ret = rb_output_aux(rb, data->aux.from, data->aux.to, > + (aux_copyfn)perf_output_copy, handle);
If you look closely, you'll find that perf_output_copy() as 'unsigned int' return type and your aux_copyfn has 'unsigned long'. I'm thinking that the compiler is entirely in its right to make that explode at random points in time.