Author: mav
Date: Thu Oct  1 19:07:15 2015
New Revision: 288458
URL: https://svnweb.freebsd.org/changeset/base/288458

Log:
  More aggressively fill WUT read pipeline.
  
  On some tests I've measured 5% copy speedup from this.

Modified:
  head/sys/cam/ctl/ctl_tpc.c

Modified: head/sys/cam/ctl/ctl_tpc.c
==============================================================================
--- head/sys/cam/ctl/ctl_tpc.c  Thu Oct  1 19:02:45 2015        (r288457)
+++ head/sys/cam/ctl/ctl_tpc.c  Thu Oct  1 19:07:15 2015        (r288458)
@@ -1128,7 +1128,7 @@ static int
 tpc_process_wut(struct tpc_list *list)
 {
        struct tpc_io *tio, *tior, *tiow;
-       struct runl run, *prun;
+       struct runl run;
        int drange, srange;
        off_t doffset, soffset;
        off_t srclba, dstlba, numbytes, donebytes, roundbytes;
@@ -1208,8 +1208,7 @@ tpc_process_wut(struct tpc_list *list)
 //    srclba, dstlba);
        donebytes = 0;
        TAILQ_INIT(&run);
-       prun = &run;
-       list->tbdio = 1;
+       list->tbdio = 0;
        TAILQ_INIT(&list->allio);
        while (donebytes < numbytes) {
                roundbytes = numbytes - donebytes;
@@ -1262,8 +1261,8 @@ tpc_process_wut(struct tpc_list *list)
                tiow->io->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr = tiow;
 
                TAILQ_INSERT_TAIL(&tior->run, tiow, rlinks);
-               TAILQ_INSERT_TAIL(prun, tior, rlinks);
-               prun = &tior->run;
+               TAILQ_INSERT_TAIL(&run, tior, rlinks);
+               list->tbdio++;
                donebytes += roundbytes;
                srclba += roundbytes / srcblock;
                dstlba += roundbytes / dstblock;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to