summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_mqueue.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2005-12-12 05:04:56 +0000
committerdavidxu <davidxu@FreeBSD.org>2005-12-12 05:04:56 +0000
commita7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd (patch)
treeef76eff58e57ede61ddefdfa29658c0151bd742d /sys/kern/uipc_mqueue.c
parent820329430ae37e4b738136ec5c9afbce9d1dd103 (diff)
downloadFreeBSD-src-a7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd.zip
FreeBSD-src-a7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd.tar.gz
Stop fiddling thread priority with msleep, eliminating unnecessary
context switching. This improves performance about 30% on UP machine.
Diffstat (limited to 'sys/kern/uipc_mqueue.c')
-rw-r--r--sys/kern/uipc_mqueue.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c
index 0e38e31..bb3812c 100644
--- a/sys/kern/uipc_mqueue.c
+++ b/sys/kern/uipc_mqueue.c
@@ -1643,7 +1643,7 @@ _mqueue_send(struct mqueue *mq, struct mqueue_msg *msg, int timo)
}
mq->mq_senders++;
error = msleep(&mq->mq_senders, &mq->mq_mutex,
- PSOCK | PCATCH, "mqsend", timo);
+ curthread->td_priority | PCATCH, "mqsend", timo);
mq->mq_senders--;
if (error == EAGAIN)
error = ETIMEDOUT;
@@ -1795,7 +1795,7 @@ _mqueue_recv(struct mqueue *mq, struct mqueue_msg **msg, int timo)
}
mq->mq_receivers++;
error = msleep(&mq->mq_receivers, &mq->mq_mutex,
- PSOCK | PCATCH, "mqrecv", timo);
+ curthread->td_priority | PCATCH, "mqrecv", timo);
mq->mq_receivers--;
if (error == EAGAIN)
error = ETIMEDOUT;
OpenPOWER on IntegriCloud