Re: [PATCH v1 03/11] perf: Allow for multiple ring buffers per event

Dave Hansen
2014-02-19T22:02:39Z

On 02/17/2014 06:33 AM, Peter Zijlstra wrote:
> Then write the PERF_RECORD_DATA structure into the normal ring-buffer
> location; set data_offset to point to the first page boundary, data_size
> to 1mb.
>
> Then frob things such that perf_mmap_to_page() for the next 1mb of pages
> points to your buffer pages and wipe the page-table entries.

Wouldn't we have to teach a ton of code how to be IRQ safe for this to
work? Just step one: how do we go modifying page tables safely from an
interrupt? mm->page_table_lock is a plain non-irq spinlock.