[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL
From: |
Peter Xu |
Subject: |
[PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL |
Date: |
Tue, 21 Apr 2020 12:21:00 -0400 |
This is a continuous work of previous discussion on memory transactions [1].
It should be helpful to fail QEMU far earlier if there's misuse of BQL against
the QEMU memory model.
One example is run_on_cpu() during memory commit. That'll work previously, but
it'll fail with very strange errors (like KVM ioctl failure due to memslot
already existed, and it's not guaranteed to trigger constantly). Now it'll
directly fail when run_on_cpu() is called.
Please have a look, thanks.
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-04/msg03205.html
Peter Xu (8):
memory: Introduce memory_region_transaction_{push|pop}()
memory: Don't do topology update in memory finalize()
cpus: Use qemu_cond_wait_iothread() where proper
cpus: Introduce qemu_cond_timedwait_iothread()
cpus: Remove the mutex parameter from do_run_on_cpu()
cpus: Introduce qemu_mutex_unlock_iothread_prepare()
memory: Assert on no ongoing memory transaction before release BQL
memory: Delay the transaction pop() until commit completed
cpus-common.c | 5 ++--
cpus.c | 32 ++++++++++++++------
include/exec/memory-internal.h | 1 +
include/hw/core/cpu.h | 4 +--
include/qemu/main-loop.h | 7 +++++
memory.c | 53 ++++++++++++++++++++++++++++++----
6 files changed, 81 insertions(+), 21 deletions(-)
--
2.24.1
- [PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL,
Peter Xu <=
- [PATCH 1/8] memory: Introduce memory_region_transaction_{push|pop}(), Peter Xu, 2020/04/21
- [PATCH 2/8] memory: Don't do topology update in memory finalize(), Peter Xu, 2020/04/21
- [PATCH 4/8] cpus: Introduce qemu_cond_timedwait_iothread(), Peter Xu, 2020/04/21
- [PATCH 3/8] cpus: Use qemu_cond_wait_iothread() where proper, Peter Xu, 2020/04/21
- [PATCH 5/8] cpus: Remove the mutex parameter from do_run_on_cpu(), Peter Xu, 2020/04/21
- [PATCH 6/8] cpus: Introduce qemu_mutex_unlock_iothread_prepare(), Peter Xu, 2020/04/21
- [PATCH 7/8] memory: Assert on no ongoing memory transaction before release BQL, Peter Xu, 2020/04/21
- [PATCH 8/8] memory: Delay the transaction pop() until commit completed, Peter Xu, 2020/04/21