summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_bio.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>2007-03-08 06:44:34 +0000
committerjulian <julian@FreeBSD.org>2007-03-08 06:44:34 +0000
commit80d6cde009b5766eaf8fb0ee64deb32113487939 (patch)
treef414b9c84952f9cf32c444f2ea351d4886916534 /sys/kern/vfs_bio.c
parent3483dab550cf625cb12e9b0c98e86757477d7a9c (diff)
downloadFreeBSD-src-80d6cde009b5766eaf8fb0ee64deb32113487939.zip
FreeBSD-src-80d6cde009b5766eaf8fb0ee64deb32113487939.tar.gz
Instead of doing comparisons using the pcpu area to see if
a thread is an idle thread, just see if it has the IDLETD flag set. That flag will probably move to the pflags word as it's permenent and never chenges for the life of the system so it doesn't need locking.
Diffstat (limited to 'sys/kern/vfs_bio.c')
-rw-r--r--sys/kern/vfs_bio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 5b5302d..5ae3e4f 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -749,7 +749,7 @@ breada(struct vnode * vp, daddr_t * rablkno, int * rabsize,
rabp = getblk(vp, *rablkno, *rabsize, 0, 0, 0);
if ((rabp->b_flags & B_CACHE) == 0) {
- if (curthread != PCPU_GET(idlethread))
+ if (!TD_IS_IDLETHREAD(curthread))
curthread->td_proc->p_stats->p_ru.ru_inblock++;
rabp->b_flags |= B_ASYNC;
rabp->b_flags &= ~B_INVAL;
@@ -784,7 +784,7 @@ breadn(struct vnode * vp, daddr_t blkno, int size,
/* if not found in cache, do some I/O */
if ((bp->b_flags & B_CACHE) == 0) {
- if (curthread != PCPU_GET(idlethread))
+ if (!TD_IS_IDLETHREAD(curthread))
curthread->td_proc->p_stats->p_ru.ru_inblock++;
bp->b_iocmd = BIO_READ;
bp->b_flags &= ~B_INVAL;
@@ -863,7 +863,7 @@ bufwrite(struct buf *bp)
bp->b_runningbufspace = bp->b_bufsize;
atomic_add_int(&runningbufspace, bp->b_runningbufspace);
- if (curthread != PCPU_GET(idlethread))
+ if (!TD_IS_IDLETHREAD(curthread))
curthread->td_proc->p_stats->p_ru.ru_oublock++;
if (oldflags & B_ASYNC)
BUF_KERNPROC(bp);
@@ -2445,7 +2445,7 @@ loop:
* XXX remove if 0 sections (clean this up after its proven)
*/
if (numfreebuffers == 0) {
- if (curthread == PCPU_GET(idlethread))
+ if (TD_IS_IDLETHREAD(curthread))
return NULL;
mtx_lock(&nblock);
needsbuffer |= VFS_BIO_NEED_ANY;
OpenPOWER on IntegriCloud