[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <5aa3b1d7-ba99-546d-9440-2ffce28b1a11@mellanox.com>
Date: Mon, 13 Jul 2020 10:49:49 +0300
From: Boris Pismenny <borisp@...lanox.com>
To: David Miller <davem@...emloft.net>
Cc: kuba@...nel.org, john.fastabend@...il.com, daniel@...earbox.net,
tariqt@...lanox.com,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH] tls: add zerocopy device sendpage
On 13/07/2020 1:32, David Miller wrote:
> From: Boris Pismenny <borisp@...lanox.com>
> Date: Sun, 12 Jul 2020 13:44:09 +0300
>
>> This patch adds two configuration knobs to control TLS zerocopy sendfile:
>> 1) socket option named TLS_TX_ZEROCOPY_SENDFILE that enables
>> applications to use zerocopy sendfile on a per-socket basis.
>> 2) global sysctl named tls_zerocopy_sendfile that defines the default
>> for the entire system.
> We already have too many knobs, don't add this until we find that
> it is necessary and that the kernel can't do the optimal thing
> on it's own.
An alternative approach that requires no knobs is to change the
current TLS_DEVICE sendfile flow to skip the copy. It is really
not necessary to copy the data, as the guarantees it provides to
users, namely that users can modify page cache data sent via sendfile
with no error, justifies the performance overhead.
Users that sendfile data from the pagecache while modifying
it cannot reasonably expect data on the other side to be
consistent. TCP sendfile guarantees nothing except that
the TCP checksum is correct. TLS sendfile with copy guarantees
the same, but TLS sendfile zerocopy (with offload) will send
the modified data, and this can trigger an authentication error
on the TLS layer when inconsistent data is received. If the data
is inconsistent, then letting the user know via an error is desirable,
right?
If there are no objections, I'd gladly resubmit it with the approach
described above.
Powered by blists - more mailing lists