diff options
author | mav <mav@FreeBSD.org> | 2015-10-01 19:07:15 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2015-10-01 19:07:15 +0000 |
commit | ebebc98996a834ed2fbb7623b017ceca00eaf3e9 (patch) | |
tree | c668142e485df89766ff14363080da3b05503975 /sys/cam | |
parent | e6448d3ce04113fa55305f4d9b53a92f11189be6 (diff) | |
download | FreeBSD-src-ebebc98996a834ed2fbb7623b017ceca00eaf3e9.zip FreeBSD-src-ebebc98996a834ed2fbb7623b017ceca00eaf3e9.tar.gz |
More aggressively fill WUT read pipeline.
On some tests I've measured 5% copy speedup from this.
Diffstat (limited to 'sys/cam')
-rw-r--r-- | sys/cam/ctl/ctl_tpc.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/cam/ctl/ctl_tpc.c b/sys/cam/ctl/ctl_tpc.c index 6aa2080..d21b5e3 100644 --- a/sys/cam/ctl/ctl_tpc.c +++ b/sys/cam/ctl/ctl_tpc.c @@ -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; |