Hi Vakul, On 3/12/2019 9:09 AM, Vakul Garg wrote: > A previous fix ("tls: Fix write space handling") assumed that > user space application gets informed about the socket send buffer > availability when tls_push_sg() gets called. Inside tls_push_sg(), in > case do_tcp_sendpages() returns 0, the function returns without calling > ctx->sk_write_space. Further, the new function tls_sw_write_space() > did not invoke ctx->sk_write_space. This leads to situation that user > space application encounters a lockup always waiting for socket send > buffer to become available. > > Rather than call ctx->sk_write_space from tls_push_sg(), it should be > called from tls_sw_write_space. So whenever tcp stack invokes > sk->sk_write_space after freeing socket send buffer, we always declare > the same to user space by the way of invoking ctx->sk_write_space. The > function tls_device_write_space() already invokes ctx->sk_write_space. >
Thanks for your patch. Since both tls_device and tls_sw call this. I suggest we remove the if condition in tls_device, then unify the code and place the call in tls_main. Reviewed-by: Boris Pismenny <bor...@mellanox.com>