diff options
author | julian <julian@FreeBSD.org> | 2007-03-08 06:44:34 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2007-03-08 06:44:34 +0000 |
commit | 80d6cde009b5766eaf8fb0ee64deb32113487939 (patch) | |
tree | f414b9c84952f9cf32c444f2ea351d4886916534 /sys/kern/vfs_bio.c | |
parent | 3483dab550cf625cb12e9b0c98e86757477d7a9c (diff) | |
download | FreeBSD-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.c | 8 |
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; |