qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL
@ 2020-04-21 16:21 Peter Xu
  2020-04-21 16:21 ` [PATCH 1/8] memory: Introduce memory_region_transaction_{push|pop}() Peter Xu
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Peter Xu @ 2020-04-21 16:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, peterx, Richard Henderson

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



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-05-23 20:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-21 16:21 [PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL Peter Xu
2020-04-21 16:21 ` [PATCH 1/8] memory: Introduce memory_region_transaction_{push|pop}() Peter Xu
2020-04-21 16:21 ` [PATCH 2/8] memory: Don't do topology update in memory finalize() Peter Xu
2020-04-21 16:21 ` [PATCH 3/8] cpus: Use qemu_cond_wait_iothread() where proper Peter Xu
2020-04-21 16:21 ` [PATCH 4/8] cpus: Introduce qemu_cond_timedwait_iothread() Peter Xu
2020-04-21 16:21 ` [PATCH 5/8] cpus: Remove the mutex parameter from do_run_on_cpu() Peter Xu
2020-04-21 16:21 ` [PATCH 6/8] cpus: Introduce qemu_mutex_unlock_iothread_prepare() Peter Xu
2020-04-21 16:21 ` [PATCH 7/8] memory: Assert on no ongoing memory transaction before release BQL Peter Xu
2020-04-21 16:21 ` [PATCH 8/8] memory: Delay the transaction pop() until commit completed Peter Xu
2020-05-23 20:30 ` [PATCH 0/8] memory: Sanity checks memory transaction when releasing BQL Peter Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).