* Peter Zijlstra <pet...@infradead.org> wrote: > How about something like this for the itrace thing? > > You would mmap() the regular buffer; when write ->aux_{offset,size} > in the control page. After which you can do a second mmap() with the > .pgoff matching the aux_offset you gave and .length matching the > aux_size you gave. > > This way the mmap() content still looks like a single linear file > (could be sparse if you leave a hole, although we could require the > aux_offset to match the end of the data section). > > And there is still the single event->rb, not more. > > Then, when data inside that aux data store changes they should > inject an PERF_RECORD_AUX to indicate this did happen, which ties it > back into the normal event flow. > > With this there should be no difficult page table tricks or > anything. > > The patch is way incomplete but should sketch enough of the idea.. > > So the aux_head/tail values should also be in the file space and not > start at 0 again, similar for the offsets in the AUX record.
This looks like a pretty good concept to me, to support the buffering quirks/constraints that itrace CPUs apparently have. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/