mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
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>
This commit is contained in:
parent
f8d426a685
commit
3c7b72ddca
1 changed files with 1 additions and 2 deletions
|
@ -127,9 +127,8 @@ static void *worker_thread(void *opaque)
|
|||
smp_wmb();
|
||||
req->state = THREAD_DONE;
|
||||
|
||||
qemu_mutex_lock(&pool->lock);
|
||||
|
||||
qemu_bh_schedule(pool->completion_bh);
|
||||
qemu_mutex_lock(&pool->lock);
|
||||
}
|
||||
|
||||
pool->cur_threads--;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue