thread-pool: optimize scheduling of completion bottom half
authorPaolo Bonzini <pbonzini@redhat.com>
Sat, 14 May 2022 06:50:10 +0000 (08:50 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 25 May 2022 19:25:42 +0000 (21:25 +0200)
commit3c7b72ddca9ce85a9d1e8a98fd0996b74597b5ae
tree608e8d89de8309ca384731aacfa98ea2c5d6df7a
parentf8d426a6852c560fdd8648ae961c8189909a4b82
thread-pool: optimize scheduling of completion bottom half

The completion bottom half was scheduled within the pool->lock
critical section.  That actually results in worse performance,
because the worker thread can run its own small critical section
and go to sleep before the bottom half starts running.

Note that this simple change does not produce an improvement without
changing the thread pool QemuSemaphore to a condition variable.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Message-Id: <20220514065012.1149539-2-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
util/thread-pool.c