On 3/21/25 2:30 PM, Joe Damato wrote:
On Fri, Mar 21, 2025 at 09:36:34AM -0700, Joe Damato wrote:
On Fri, Mar 21, 2025 at 05:14:59AM -0600, Jens Axboe wrote:
On 3/20/25 11:56 PM, Christoph Hellwig wrote:
I don't know the entire historical context, but I presume sendmsg did that because there was no other mechanism at the time.
At least aio had been around for about 15 years at the point, but networking folks tend to be pretty insular and reinvent things.
Yep...
It seems like Jens suggested that plumbing this through for splice was a possibility, but sounds like you disagree.
Yes, very strongly.
And that is very much not what I suggested, fwiw.
Your earlier message said:
If the answer is "because splice", then it would seem saner to plumb up those bits only. Would be much simpler too...
wherein I interpreted "plumb those bits" to mean plumbing the error queue notifications on TX completions.
My sincere apologies that I misunderstood your prior message and/or misconstrued what you said -- it was not clear to me what you meant.
I think what added to my confusion here was this bit, Jens:
As far as the bit about plumbing only the splice bits, sorry if I'm being dense here, do you mean plumbing the error queue through to splice only and dropping sendfile2?
That is an option. Then the apps currently using sendfile could use splice instead and get completion notifications on the error queue. That would probably work and be less work than rewriting to use iouring, but probably a bit more work than using a new syscall.
Yep
I thought I was explicitly asking if adding SPLICE_F_ZC and plumbing through the error queue notifications was OK and your response here ("Yep") suggested to me that it would be a suitable path to consider.
I take it from your other responses, though, that I was mistaken.
I guess I missed your error queue thing here, I was definitely pretty clear in other ones that I consider that part a hack and something that only exists because networking never looked into doing a proper async API for anything.