git: aff9b9ee894e - main - Restore condition removed in df3747c6607b.

Alexander Motin mav at FreeBSD.org
Wed Mar 3 17:06:20 UTC 2021


The branch main has been updated by mav:

URL: https://cgit.FreeBSD.org/src/commit/?id=aff9b9ee894e3e6b6d8c7e4182d6b973804df853

commit aff9b9ee894e3e6b6d8c7e4182d6b973804df853
Author:     Alexander Motin <mav at FreeBSD.org>
AuthorDate: 2021-03-03 16:58:04 +0000
Commit:     Alexander Motin <mav at FreeBSD.org>
CommitDate: 2021-03-03 17:03:08 +0000

    Restore condition removed in df3747c6607b.
    
    I think it allowed to avoid some TX thread wakeups while the socket
    buffer is full.  But add there another options if ic_check_send_space
    is set, which means socket just reported that new space appeared, so
    it may have sense to pull more data from ic_to_send for better TX
    coalescing.
    
    MFC after:      1 week
---
 sys/dev/iscsi/icl_soft.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/dev/iscsi/icl_soft.c b/sys/dev/iscsi/icl_soft.c
index d579c034e63f..57ab24defabb 100644
--- a/sys/dev/iscsi/icl_soft.c
+++ b/sys/dev/iscsi/icl_soft.c
@@ -975,7 +975,8 @@ icl_send_thread(void *arg)
 			 * This way the icl_conn_send_pdus() can go through
 			 * all the queued PDUs without holding any locks.
 			 */
-			STAILQ_CONCAT(&queue, &ic->ic_to_send);
+			if (STAILQ_EMPTY(&queue) || ic->ic_check_send_space)
+				STAILQ_CONCAT(&queue, &ic->ic_to_send);
 
 			ic->ic_check_send_space = false;
 			ICL_CONN_UNLOCK(ic);


More information about the dev-commits-src-main mailing list