diff options
author | attilio <attilio@FreeBSD.org> | 2012-01-28 14:00:21 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2012-01-28 14:00:21 +0000 |
commit | 1521eb447956638ea699e9468527cdcbd2b28659 (patch) | |
tree | 51e3a468764edd7cbdf62d40b3ad43948e5ccd09 /sys/geom | |
parent | a1d2d789bd56b6e4fbadcea3ce4cab8cd7fed168 (diff) | |
download | FreeBSD-src-1521eb447956638ea699e9468527cdcbd2b28659.zip FreeBSD-src-1521eb447956638ea699e9468527cdcbd2b28659.tar.gz |
Avoid to check the same cache line/variable from all the locking
primitives by breaking stop_scheduler into a per-thread variable.
Also, store the new td_stopsched very close to td_*locks members as
they will be accessed mostly in the same codepaths as td_stopsched and
this results in avoiding a further cache-line pollution, possibly.
STOP_SCHEDULER() was pondered to use a new 'thread' argument, in order to
take advantage of already cached curthread, but in the end there should
not really be a performance benefit, while introducing a KPI breakage.
In collabouration with: flo
Reviewed by: avg
MFC after: 3 months (or never)
X-MFC: r228424
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/geom_bsd.c | 1 | ||||
-rw-r--r-- | sys/geom/geom_mbr.c | 1 | ||||
-rw-r--r-- | sys/geom/geom_pc98.c | 1 | ||||
-rw-r--r-- | sys/geom/mountver/g_mountver.c | 1 |
4 files changed, 4 insertions, 0 deletions
diff --git a/sys/geom/geom_bsd.c b/sys/geom/geom_bsd.c index 60fc50c..5742509f 100644 --- a/sys/geom/geom_bsd.c +++ b/sys/geom/geom_bsd.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include <sys/errno.h> #include <sys/disklabel.h> #include <sys/gpt.h> +#include <sys/proc.h> #include <sys/sbuf.h> #include <sys/uuid.h> #include <geom/geom.h> diff --git a/sys/geom/geom_mbr.c b/sys/geom/geom_mbr.c index 6a736a7..42a9c8e 100644 --- a/sys/geom/geom_mbr.c +++ b/sys/geom/geom_mbr.c @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include <sys/lock.h> #include <sys/mutex.h> #include <sys/md5.h> +#include <sys/proc.h> #include <sys/diskmbr.h> #include <sys/sbuf.h> diff --git a/sys/geom/geom_pc98.c b/sys/geom/geom_pc98.c index 71c194d..8e14f09 100644 --- a/sys/geom/geom_pc98.c +++ b/sys/geom/geom_pc98.c @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include <sys/bio.h> #include <sys/lock.h> #include <sys/mutex.h> +#include <sys/proc.h> #include <sys/sbuf.h> #include <sys/diskpc98.h> diff --git a/sys/geom/mountver/g_mountver.c b/sys/geom/mountver/g_mountver.c index 30af511..37cb924 100644 --- a/sys/geom/mountver/g_mountver.c +++ b/sys/geom/mountver/g_mountver.c @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include <sys/mutex.h> #include <sys/bio.h> #include <sys/disk.h> +#include <sys/proc.h> #include <sys/sbuf.h> #include <sys/sysctl.h> #include <sys/malloc.h> |