mirror of https://gitee.com/openkylin/linux.git
strparser: Don't schedule in workqueue in paused state
In function strp_data_ready(), it is useless to call queue_work if the state of strparser is already paused. The state checking should be done before calling queue_work. The change reduces the context switches and improves the ktls-rx throughput by approx 20% (measured on cortex-a53 based platform). Signed-off-by: Vakul Garg <vakul.garg@nxp.com> Acked-by: Dave Watson <davejwatson@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
73f9c33beb
commit
456488cd95
|
@ -392,7 +392,7 @@ static int strp_read_sock(struct strparser *strp)
|
|||
/* Lower sock lock held */
|
||||
void strp_data_ready(struct strparser *strp)
|
||||
{
|
||||
if (unlikely(strp->stopped))
|
||||
if (unlikely(strp->stopped) || strp->paused)
|
||||
return;
|
||||
|
||||
/* This check is needed to synchronize with do_strp_work.
|
||||
|
@ -407,9 +407,6 @@ void strp_data_ready(struct strparser *strp)
|
|||
return;
|
||||
}
|
||||
|
||||
if (strp->paused)
|
||||
return;
|
||||
|
||||
if (strp->need_bytes) {
|
||||
if (strp_peek_len(strp) < strp->need_bytes)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue