On Wed, May 22, 2019 at 02:22:15PM -0400, Kris Van Hees wrote: > > Let me further NAK it for adding all sorts of garbage to the code -- > > we're not going to do gaps and stay_in_page nonsense. > > Could you give some guidance in terms of an alternative? The ring buffer code > provides both non-contiguous page allocation support and a vmalloc-based > allocation, and the vmalloc version certainly would avoid the entire gap and > page boundary stuff. But since the allocator is chosen at build time based on > the arch capabilities, there is no way to select a specific memory allocator. > I'd be happy to use an alternative approach that allows direct writing into > the ring buffer. So why can't you do what the regular perf does? Use an output iterator that knows about the page breaks? See perf_output_put() for example. Anyway, I agree with Alexei and DaveM, get it working without/minimal kernel changes first, and then we can talk about possible optimizations.