Karim Yaghmour writes: > > Tom Zanussi wrote: > > - removed the deliver() callback > > - removed the relay_commit() function > > This breaks LTT. Any reason why this needed to be removed? In the end, > the code will just end up being duplicated in ltt and all other users. > IOW, this is not some potential future use, but something that's > currently being used.
Because I realized that like the padding and commit arrays, they're not really necessary. In all the examples, the padding is saved in space reserved at the beginning of the sub-buffer via subbuf_start_reserve(), except that now the padding is passed into the subbuf_start() callback rather than kept in an array. The padding value passed in is then directly saved in the reserved padding space. Similarly, in the case of the reserve/commit example, extra space is also reserved for the commit count using subbuf_start_reserve(). After space for an event is reserved using relay_reserve() and completely written, the event length is added to that commit value. In userspace, the sub-buffer reading loop looks at the commit value in the sub-buffer, and if it matches (sub-buffer size - padding), the buffer has been completely written and can be saved, otherwise it's not yet complete and is checked again the next time around. This way, there's no need for a deliver() callback, the relay_commit() is replaced with the increment of the reserved commit value, the arrays aren't needed and you get the same result in the end in a much simpler way, IMHO. But if you see a problem with it or have any suggestions to make it better/different, please let me know... Tom - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/