summaryrefslogtreecommitdiffstats
path: root/sys/geom/vinum/geom_vinum_var.h
diff options
context:
space:
mode:
authorle <le@FreeBSD.org>2004-10-26 21:01:42 +0000
committerle <le@FreeBSD.org>2004-10-26 21:01:42 +0000
commitd0679d2fdeeb0c9bb64e2ae78b7f98bc543d30d4 (patch)
tree382e6f6972c91797bf8981e2f40ccb5cbbeffc77 /sys/geom/vinum/geom_vinum_var.h
parent2678190fba2279d62aa63ea24a5492273b2c4bce (diff)
downloadFreeBSD-src-d0679d2fdeeb0c9bb64e2ae78b7f98bc543d30d4.zip
FreeBSD-src-d0679d2fdeeb0c9bb64e2ae78b7f98bc543d30d4.tar.gz
Give each plex a separate queue where held back bios are put on.
This lowers the CPU usage of the worker thread and prevents a possible live lock on non-SMP machines. MFC candidate.
Diffstat (limited to 'sys/geom/vinum/geom_vinum_var.h')
-rw-r--r--sys/geom/vinum/geom_vinum_var.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/geom/vinum/geom_vinum_var.h b/sys/geom/vinum/geom_vinum_var.h
index 196f7f8..95d8956 100644
--- a/sys/geom/vinum/geom_vinum_var.h
+++ b/sys/geom/vinum/geom_vinum_var.h
@@ -274,6 +274,7 @@ struct gv_plex {
struct mtx bqueue_mtx; /* Lock for the BIO queue. */
TAILQ_HEAD(,gv_bioq) bqueue; /* BIO queue. */
+ TAILQ_HEAD(,gv_bioq) wqueue; /* Waiting BIO queue. */
TAILQ_HEAD(,gv_raid5_packet) packets; /* RAID5 sub-requests. */
LIST_HEAD(,gv_sd) subdisks; /* List of attached subdisks. */
OpenPOWER on IntegriCloud