diff options
author | le <le@FreeBSD.org> | 2004-10-26 21:01:42 +0000 |
---|---|---|
committer | le <le@FreeBSD.org> | 2004-10-26 21:01:42 +0000 |
commit | d0679d2fdeeb0c9bb64e2ae78b7f98bc543d30d4 (patch) | |
tree | 382e6f6972c91797bf8981e2f40ccb5cbbeffc77 /sys/geom/vinum/geom_vinum_var.h | |
parent | 2678190fba2279d62aa63ea24a5492273b2c4bce (diff) | |
download | FreeBSD-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.h | 1 |
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. */ |