]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
msg/async: avoid unnecessary costly wakeups for outbound messages 28388/head
authorJason Dillaman <dillaman@redhat.com>
Tue, 4 Jun 2019 17:48:57 +0000 (13:48 -0400)
committerJason Dillaman <dillaman@redhat.com>
Tue, 4 Jun 2019 19:01:16 +0000 (15:01 -0400)
commit294c41f18adada6ab762d5b3f9f45d7c8bed4316
tree05d13ef3edfd7a0367818f91fd4076d51cfc14c7
parentf6b022bdbec3e323e48cfd8197b8de6da471b0a6
msg/async: avoid unnecessary costly wakeups for outbound messages

If a wakeup for an outbound message has already been scheduled or is
currently executing within the worker thread, avoid re-adding a wakeup.
For small IO sizes under high queue depths, these extra syscalls start
to add up. For larger IO sizes or small queue depths, it doesn't hurt
performance.

fio --ioengine=rbd results:

IOPS pre-change post-change
4K: 84.9k 98.3k
32K: 58.4k 59.5k
256K: 12.1k 12.2k
4M: 803 802

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/msg/async/ProtocolV1.cc
src/msg/async/ProtocolV1.h
src/msg/async/ProtocolV2.cc
src/msg/async/ProtocolV2.h