Re: [RFC -next 00/10] Add ZC notifications to splice and sendfile

Jens Axboe
2025-03-21T20:33:18Z

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.

--
Jens Axboe