All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next v6 0/2] Minor code cleanup patches
@ 2018-07-24 10:14 Vakul Garg
  2018-07-24 10:14 ` [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability Vakul Garg
  2018-07-24 10:14 ` [net-next v6 2/2] net/tls: Remove redundant variable assignments and wakeup Vakul Garg
  0 siblings, 2 replies; 8+ messages in thread
From: Vakul Garg @ 2018-07-24 10:14 UTC (permalink / raw)
  To: netdev; +Cc: borisp, aviadye, davejwatson, davem, Vakul Garg

This patch series improves tls_sw.c code by:

1) Using correct socket callback for flagging data availability.
2) Removing redundant variable assignments and wakeup callbacks.


Vakul Garg (2):
  net/tls: Use socket data_ready callback on record availability
  net/tls: Remove redundant variable assignments and wakeup

 net/tls/tls_sw.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

-- 
2.13.6

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-24 10:14 [net-next v6 0/2] Minor code cleanup patches Vakul Garg
@ 2018-07-24 10:14 ` Vakul Garg
  2018-07-24 20:12   ` David Miller
  2018-07-24 10:14 ` [net-next v6 2/2] net/tls: Remove redundant variable assignments and wakeup Vakul Garg
  1 sibling, 1 reply; 8+ messages in thread
From: Vakul Garg @ 2018-07-24 10:14 UTC (permalink / raw)
  To: netdev; +Cc: borisp, aviadye, davejwatson, davem, Vakul Garg

On receipt of a complete tls record, use socket's saved data_ready
callback instead of state_change callback.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
---
 net/tls/tls_sw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index 0c2d029c9d4c..fee1240eff92 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -1028,7 +1028,7 @@ static void tls_queue(struct strparser *strp, struct sk_buff *skb)
 	ctx->recv_pkt = skb;
 	strp_pause(strp);
 
-	strp->sk->sk_state_change(strp->sk);
+	ctx->saved_data_ready(strp->sk);
 }
 
 static void tls_data_ready(struct sock *sk)
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [net-next v6 2/2] net/tls: Remove redundant variable assignments and wakeup
  2018-07-24 10:14 [net-next v6 0/2] Minor code cleanup patches Vakul Garg
  2018-07-24 10:14 ` [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability Vakul Garg
@ 2018-07-24 10:14 ` Vakul Garg
  1 sibling, 0 replies; 8+ messages in thread
From: Vakul Garg @ 2018-07-24 10:14 UTC (permalink / raw)
  To: netdev; +Cc: borisp, aviadye, davejwatson, davem, Vakul Garg

In function decrypt_skb_update(), the assignment to tls receive context
variable 'decrypted' is redundant as the same is being done in function
tls_sw_recvmsg() after calling decrypt_skb_update(). Also calling callback
function to wakeup processes sleeping on socket data availability is
useless as decrypt_skb_update() is invoked from user processes only. This
patch cleans these up.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
---
 net/tls/tls_sw.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index fee1240eff92..6c71da7b147f 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -679,8 +679,6 @@ static int decrypt_skb_update(struct sock *sk, struct sk_buff *skb,
 	rxm->offset += tls_ctx->rx.prepend_size;
 	rxm->full_len -= tls_ctx->rx.overhead_size;
 	tls_advance_record_sn(sk, &tls_ctx->rx);
-	ctx->decrypted = true;
-	ctx->saved_data_ready(sk);
 
 	return err;
 }
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-24 10:14 ` [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability Vakul Garg
@ 2018-07-24 20:12   ` David Miller
  2018-07-25  5:51     ` Vakul Garg
  0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2018-07-24 20:12 UTC (permalink / raw)
  To: vakul.garg; +Cc: netdev, borisp, aviadye, davejwatson

From: Vakul Garg <vakul.garg@nxp.com>
Date: Tue, 24 Jul 2018 15:44:02 +0530

> On receipt of a complete tls record, use socket's saved data_ready
> callback instead of state_change callback.
> 
> Signed-off-by: Vakul Garg <vakul.garg@nxp.com>

I don't think this is correct.

Here, the stream parser has given us a complete TLS record.

But we haven't decrypted this packet yet.  It sits on the
stream parser's queue to be processed by tls_sw_recvmsg(),
not the saved socket's receive queue.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-24 20:12   ` David Miller
@ 2018-07-25  5:51     ` Vakul Garg
  2018-07-29  6:01       ` Vakul Garg
  0 siblings, 1 reply; 8+ messages in thread
From: Vakul Garg @ 2018-07-25  5:51 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, borisp, aviadye, davejwatson



> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Wednesday, July 25, 2018 1:43 AM
> To: Vakul Garg <vakul.garg@nxp.com>
> Cc: netdev@vger.kernel.org; borisp@mellanox.com;
> aviadye@mellanox.com; davejwatson@fb.com
> Subject: Re: [net-next v6 1/2] net/tls: Use socket data_ready callback on
> record availability
> 
> From: Vakul Garg <vakul.garg@nxp.com>
> Date: Tue, 24 Jul 2018 15:44:02 +0530
> 
> > On receipt of a complete tls record, use socket's saved data_ready
> > callback instead of state_change callback.
> >
> > Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
> 
> I don't think this is correct.
> 
> Here, the stream parser has given us a complete TLS record.
> 
> But we haven't decrypted this packet yet.  It sits on the stream parser's
> queue to be processed by tls_sw_recvmsg(), not the saved socket's receive
> queue.

I understand that at this point in code, the TLS record is still queued in encrypted
state. But the decryption happens inline when tls_sw_recvmsg() gets invokved.
So it should be ok to notify the  waiting context about the availability of data as soon
as we could collect a full TLS record.

For new data availability notification, sk_data_ready callback should be more
more appropriate. It points to sock_def_readable() which wakes up specifically for
EPOLLIN event. 

This is in contrast to the socket callback sk_state_change which points
to sock_def_wakeup() which issues a wakeup unconditionally (without event mask).

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-25  5:51     ` Vakul Garg
@ 2018-07-29  6:01       ` Vakul Garg
  2018-07-29  6:17         ` David Miller
  0 siblings, 1 reply; 8+ messages in thread
From: Vakul Garg @ 2018-07-29  6:01 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, borisp, aviadye, davejwatson

Hi David

Could you please correct me if my counter-reasoning behind changing the socket callback is wrong?

Thanks & Regards

Vakul

> -----Original Message-----
> From: Vakul Garg
> Sent: Wednesday, July 25, 2018 11:22 AM
> To: David Miller <davem@davemloft.net>
> Cc: netdev@vger.kernel.org; borisp@mellanox.com;
> aviadye@mellanox.com; davejwatson@fb.com
> Subject: RE: [net-next v6 1/2] net/tls: Use socket data_ready callback on
> record availability
> 
> 
> 
> > -----Original Message-----
> > From: David Miller [mailto:davem@davemloft.net]
> > Sent: Wednesday, July 25, 2018 1:43 AM
> > To: Vakul Garg <vakul.garg@nxp.com>
> > Cc: netdev@vger.kernel.org; borisp@mellanox.com;
> aviadye@mellanox.com;
> > davejwatson@fb.com
> > Subject: Re: [net-next v6 1/2] net/tls: Use socket data_ready callback
> > on record availability
> >
> > From: Vakul Garg <vakul.garg@nxp.com>
> > Date: Tue, 24 Jul 2018 15:44:02 +0530
> >
> > > On receipt of a complete tls record, use socket's saved data_ready
> > > callback instead of state_change callback.
> > >
> > > Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
> >
> > I don't think this is correct.
> >
> > Here, the stream parser has given us a complete TLS record.
> >
> > But we haven't decrypted this packet yet.  It sits on the stream
> > parser's queue to be processed by tls_sw_recvmsg(), not the saved
> > socket's receive queue.
> 
> I understand that at this point in code, the TLS record is still queued in
> encrypted state. But the decryption happens inline when tls_sw_recvmsg()
> gets invokved.
> So it should be ok to notify the  waiting context about the availability of data
> as soon as we could collect a full TLS record.
> 
> For new data availability notification, sk_data_ready callback should be more
> more appropriate. It points to sock_def_readable() which wakes up
> specifically for EPOLLIN event.
> 
> This is in contrast to the socket callback sk_state_change which points to
> sock_def_wakeup() which issues a wakeup unconditionally (without event
> mask).

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-29  6:01       ` Vakul Garg
@ 2018-07-29  6:17         ` David Miller
  2018-07-29  6:20           ` Vakul Garg
  0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2018-07-29  6:17 UTC (permalink / raw)
  To: vakul.garg; +Cc: netdev, borisp, aviadye, davejwatson

From: Vakul Garg <vakul.garg@nxp.com>
Date: Sun, 29 Jul 2018 06:01:29 +0000

> Could you please correct me if my counter-reasoning behind changing
> the socket callback is wrong?

Ok, after stufying the code a bit I agree with your analysis.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability
  2018-07-29  6:17         ` David Miller
@ 2018-07-29  6:20           ` Vakul Garg
  0 siblings, 0 replies; 8+ messages in thread
From: Vakul Garg @ 2018-07-29  6:20 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, borisp, aviadye, davejwatson



> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Sunday, July 29, 2018 11:48 AM
> To: Vakul Garg <vakul.garg@nxp.com>
> Cc: netdev@vger.kernel.org; borisp@mellanox.com;
> aviadye@mellanox.com; davejwatson@fb.com
> Subject: Re: [net-next v6 1/2] net/tls: Use socket data_ready callback on
> record availability
> 
> From: Vakul Garg <vakul.garg@nxp.com>
> Date: Sun, 29 Jul 2018 06:01:29 +0000
> 
> > Could you please correct me if my counter-reasoning behind changing
> > the socket callback is wrong?
> 
> Ok, after stufying the code a bit I agree with your analysis.

Thanks.
Kindly advise, if I need to resubmit/rebase the patch.
 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-07-29  7:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-24 10:14 [net-next v6 0/2] Minor code cleanup patches Vakul Garg
2018-07-24 10:14 ` [net-next v6 1/2] net/tls: Use socket data_ready callback on record availability Vakul Garg
2018-07-24 20:12   ` David Miller
2018-07-25  5:51     ` Vakul Garg
2018-07-29  6:01       ` Vakul Garg
2018-07-29  6:17         ` David Miller
2018-07-29  6:20           ` Vakul Garg
2018-07-24 10:14 ` [net-next v6 2/2] net/tls: Remove redundant variable assignments and wakeup Vakul Garg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.