All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/12] icount and misc MTTCG fixes for 2.9-rc4
@ 2017-04-05 13:24 Alex Bennée
  2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 01/12] scripts/qemugdb/mtree.py: fix up mtree dump Alex Bennée
                   ` (11 more replies)
  0 siblings, 12 replies; 24+ messages in thread
From: Alex Bennée @ 2017-04-05 13:24 UTC (permalink / raw)
  To: dovgaluk, rth, pbonzini
  Cc: peter.maydell, qemu-devel, mttcg, fred.konrad, a.rigo, cota,
	bobby.prani, nikunj, Alex Bennée

Hi,

Here is my current queue for icount and miscellaneous MTTCG related
fixes. The main difference from the RFC series is I have dropped the
graceful handling of backward time events in the replay log in favour
of updating the global qemu_icount more frequently. The graceful
handling is now replaced with an assertion about the arrow of time.

With these changes I was able to dispenses with additional BQL locking
which I had been applying during cpu_handle_exception.

It doesn't completely solve the problem of keeping the main-loop and
vCPU events stream in sync but it works pretty reliably in my test
case. Given the current release time-line I think this is the best
solution for now. Options for post-2.9 include either replacing the
BQL mediated sequencing with a new lock (pushing replay_lock up the
tree?) or marshalling events through a single thread which can then
keep things in order.

Aside from that other patches have had various r-b and a-b tags
applied from the original posting.

I hope to roll a pull request with these fixes by the end of the week
so we there isn't a rush for next Tuesday's rc4. Expedient comments
and reviews are therefor gratefully received ;-)

Regards,


Alex Bennée (12):
  scripts/qemugdb/mtree.py: fix up mtree dump
  scripts/qemu-gdb/timers.py: new helper to dump timer state
  scripts/replay-dump.py: replay log dumper
  target/i386/misc_helper: wrap BQL around another IRQ generator
  cpus: remove icount handling from qemu_tcg_cpu_thread_fn
  cpus: check cpu->running in cpu_get_icount_raw()
  cpus: move icount preparation out of tcg_exec_cpu
  cpus: don't credit executed instructions before they have run
  cpus: introduce cpu_update_icount helper
  cpu-exec: update icount after each TB_EXIT
  cpus: call cpu_update_icount on read
  replay: assert time only goes forward

 cpu-exec.c                |  14 +--
 cpus.c                    |  98 ++++++++++++-----
 include/qemu/timer.h      |   1 +
 include/qom/cpu.h         |   1 +
 replay/replay-internal.c  |   4 +
 replay/replay.c           |   4 +
 scripts/qemu-gdb.py       |   3 +-
 scripts/qemugdb/mtree.py  |  12 +-
 scripts/qemugdb/timers.py |  54 +++++++++
 scripts/replay-dump.py    | 272 ++++++++++++++++++++++++++++++++++++++++++++++
 target/i386/misc_helper.c |   3 +
 11 files changed, 426 insertions(+), 40 deletions(-)
 create mode 100644 scripts/qemugdb/timers.py
 create mode 100755 scripts/replay-dump.py

-- 
2.11.0

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

end of thread, other threads:[~2017-04-07 18:42 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-05 13:24 [Qemu-devel] [PATCH v2 00/12] icount and misc MTTCG fixes for 2.9-rc4 Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 01/12] scripts/qemugdb/mtree.py: fix up mtree dump Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 02/12] scripts/qemu-gdb/timers.py: new helper to dump timer state Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 03/12] scripts/replay-dump.py: replay log dumper Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 04/12] target/i386/misc_helper: wrap BQL around another IRQ generator Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 05/12] cpus: remove icount handling from qemu_tcg_cpu_thread_fn Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 06/12] cpus: check cpu->running in cpu_get_icount_raw() Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 07/12] cpus: move icount preparation out of tcg_exec_cpu Alex Bennée
2017-04-05 13:24 ` [Qemu-devel] [PATCH v2 08/12] cpus: don't credit executed instructions before they have run Alex Bennée
2017-04-05 13:25 ` [Qemu-devel] [PATCH v2 09/12] cpus: introduce cpu_update_icount helper Alex Bennée
2017-04-05 14:08   ` Paolo Bonzini
2017-04-05 14:34     ` Alex Bennée
2017-04-05 15:00       ` Paolo Bonzini
2017-04-05 13:25 ` [Qemu-devel] [PATCH v2 10/12] cpu-exec: update icount after each TB_EXIT Alex Bennée
2017-04-05 13:25 ` [Qemu-devel] [PATCH v2 11/12] cpus: call cpu_update_icount on read Alex Bennée
2017-04-05 14:07   ` Paolo Bonzini
2017-04-07 11:35     ` Alex Bennée
2017-04-07 12:19       ` Paolo Bonzini
2017-04-07 13:14         ` Alex Bennée
2017-04-07 18:42           ` Richard Henderson
2017-04-05 13:25 ` [Qemu-devel] [PATCH v2 12/12] replay: assert time only goes forward Alex Bennée
2017-04-05 13:33   ` Pavel Dovgalyuk
2017-04-05 13:49     ` Paolo Bonzini
2017-04-05 14:37       ` Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.