Am 10.07.2020 um 10:54 hat Zhenyu Ye geschrieben: > Because the QMP command runs in the main thread, and changes > to the aio context of iothread will only be executed in the > main thread (they will not be in parallel), so there is no > need a lock protection while querying blockstats. > > If we hold the lock here, while the I/O pressure is high in > vm and the I/O returns slowly, the main thread will be stuck > until the lock is released, which will affect the vcpu operation > and finall cause the vm to be stuck. > > Signed-off-by: Zhenyu Ye <yezhen...@huawei.com>
Are you saying that you think qmp_query_blockstats() runs in the iothread? This is not true, it runs in the main thread. This makes dropping the lock wrong, and even dropping it shouldn't make a difference for other things that should run in the main thread because the main thread is still busy executing the QMP command. Am I missing something? (Also, a change like this is most definitely *not* trivial.) Kevin