>> Nice patches! This does not yet solve the append issue that your MSG_EOR patch addresses, of course.
The straightforward jump to new_segment that I proposed as simplification is more properly a "start-of-record" than "end-of-record" signal. It is probably preferable to indeed be able to pass EOR as signal that the last skb must not be appended to in subsequent calls. I think that the record bounds issue is best solved independently from the interface for intermittent timestamps because (a) changing the tcp bytestream packetization for timestamping introduces subtle differences between tracked and untracked data that are not always acceptable and (b) EOR can also be useful outside timestamps. A zerocopy sendmsg patchset that I sent for RFC last year encountered a similar requirement, to give one example: each skb with user data must point to a completion notification structure (ubuf_info), and can only point to one at a time. Appends that cause a conflict in skb->uarg pointers had to be blocked, at the cost of possibly different packetization compared to regular sends.