Alexander Shishkin <alexander.shish...@linux.intel.com> writes: > Peter Zijlstra <pet...@infradead.org> writes: > >> How about something like this for the itrace thing? > > It's much nicer than the page swizzling draft I was about to send you. > >> 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. > > Why do we need aux_{offset,size} at all, then? Userspace should know how > they mmap()ed it. > >> 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. > > Fair enough. > >> 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. > > True. > >> The patch is way incomplete but should sketch enough of the idea.. > > Can I take it over? > >> 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. > > With PERF_RECORD_AUX carrying offset and size, we shouldn't need > aux_{head,tail} either, don't you think?
I take this one back, as perf record doesn't actually parse records from the buffer, it would still need the pointers. Regards, -- Alex -- 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/