From: "Pavel Dovgalyuk" <dovgaluk@ispras.ru>
To: 'Paolo Bonzini' <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: serge.fdrv@gmail.com, pavel.dovgaluk@ispras.ru, peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [RFC/RFT PATCH 0/7] cpu-exec: simplify cpu_exec and remove some icount special cases
Date: Wed, 15 Feb 2017 15:45:16 +0300 [thread overview]
Message-ID: <000c01d28789$5b942330$12bc6990$@ru> (raw)
In-Reply-To: <0775ca1e-ecdb-39a1-d2e9-6e410f0d4e54@redhat.com>
> From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo Bonzini
> On 29/01/2017 22:09, Paolo Bonzini wrote:
> > The series includes three parts:
> >
> > 1-2: fix two bugs, the first one pretty bad, the second seems
> > to be theoretical only.
> >
> > 3-5: simplify cpu_exec. This builds on Sergey's conversion
> > of cpu_exec to a simple top-down logic, making the phases
> > clearer and saving on the cost of siglongjmp in the meanwhile.
>
> I'll include these five in my next pull request. Review for patch 6 is
> welcome!
I've tested all 7 and briefly looked at their code.
Do you need official reviewed-by?
Pavel Dovgalyuk
>
> > 6-7: these are intended to be a base for Pavel's record/replay
> > fixes. The main thing I noticed while reviewing is that icount
> > is redoing (with u16.high) a lot of things that tcg_exit_req is
> > doing too. This is because, at the time icount was introduced,
> > tcg_exit_req didn't exist and QEMU instead unwound chained TBs
> > through POSIX signals. But now we have essentially two ways to
> > do the same thing with subtly different invariants or downright
> > bugs (such as the one fixed by patch 1). Patch 6 therefore
> > unifies tcg_exit_req and the icount interrupt flag. It saves a
> > handful of instructions per TB in icount mode and generally
> > makes icount mode "less special", which is a good thing since
> > no one seems to understand it well. Patch 7 then removes another
> > EXCP_INTERRUPT/cpu_loop_exit pair; by exiting to main loop simply
> > through cpu->exit_request, hopefully it fixes one of the issues that
> > Pavel was seeing.
> >
> > For now I've tested this only on an aarch64 Linux image (with
> > and without -icount). Thanks,
> >
> > Paolo
> >
> > Paolo Bonzini (7):
> > cpu-exec: fix jmp_first out-of-bounds access with icount
> > cpu-exec: tighten barrier on TCG_EXIT_REQUESTED
> > cpu-exec: avoid cpu_loop_exit in cpu_handle_interrupt
> > cpu-exec: avoid repeated sigsetjmp on interrupts
> > cpu-exec: remove outermost infinite loop
> > cpu-exec: unify icount_decr and tcg_exit_req
> > cpu-exec: centralize exiting to the main loop
> >
> > cpu-exec.c | 153 +++++++++++++++++++++-------------------------
> > include/exec/exec-all.h | 1 +
> > include/exec/gen-icount.h | 53 ++++++++--------
> > include/qom/cpu.h | 15 +++--
> > qom/cpu.c | 2 +-
> > tcg/tcg.h | 1 -
> > translate-all.c | 2 +-
> > translate-common.c | 13 ++--
> > 8 files changed, 109 insertions(+), 131 deletions(-)
> >
next prev parent reply other threads:[~2017-02-15 12:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-29 21:09 [Qemu-devel] [RFC/RFT PATCH 0/7] cpu-exec: simplify cpu_exec and remove some icount special cases Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 1/7] cpu-exec: fix jmp_first out-of-bounds access with icount Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 2/7] cpu-exec: tighten barrier on TCG_EXIT_REQUESTED Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 3/7] cpu-exec: avoid cpu_loop_exit in cpu_handle_interrupt Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 4/7] cpu-exec: avoid repeated sigsetjmp on interrupts Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 5/7] cpu-exec: remove outermost infinite loop Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 6/7] cpu-exec: unify icount_decr and tcg_exit_req Paolo Bonzini
2017-01-29 21:09 ` [Qemu-devel] [PATCH 7/7] cpu-exec: centralize exiting to the main loop Paolo Bonzini
2017-01-29 21:18 ` [Qemu-devel] [RFC/RFT PATCH 0/7] cpu-exec: simplify cpu_exec and remove some icount special cases no-reply
2017-01-31 9:05 ` Pavel Dovgalyuk
2017-02-01 20:54 ` Paolo Bonzini
2017-02-03 7:07 ` Pavel Dovgalyuk
2017-02-03 15:07 ` Paolo Bonzini
2017-02-15 12:42 ` Paolo Bonzini
2017-02-15 12:45 ` Pavel Dovgalyuk [this message]
2017-02-15 12:57 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000c01d28789$5b942330$12bc6990$@ru' \
--to=dovgaluk@ispras.ru \
--cc=pavel.dovgaluk@ispras.ru \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=serge.fdrv@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.