* [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
@ 2017-02-23 18:29 Alex Bennée
2017-02-23 20:35 ` Richard Henderson
0 siblings, 1 reply; 8+ messages in thread
From: Alex Bennée @ 2017-02-23 18:29 UTC (permalink / raw)
To: rth, peter.maydell
Cc: qemu-devel, mttcg, fred.konrad, a.rigo, cota, bobby.prani, nikunj,
mark.burton, pbonzini, jan.kiszka, serge.fdrv, bamvor.zhangjian,
Alex Bennée
Hi Richard/Peter,
Well obviously it was expecting a bit much for v13 to pass with flying
colours. A merge failure which didn't affect ARM caused the
regressions on other platforms resulting in the iothread not being
released during cpu_handle_interrupt. This fix has been merged into
Jan's drop global lock patch. I also fixed a whitespace issue on the
error_report/printf for the memory order check.
The rest of this message is as with the v13 post:
I'm hoping this is the final version and we are ready to submit a
pull-request to merge MTTCG upstream. Apart from the final set of
architecture reviewed-by's the following patches have had minor
tweaks:
tcg: handle EXCP_ATOMIC exception for system emulation
Fixed to handle yet another corner case of tb-flush being triggered
during an EXCP_ATOMIC exceptions. Also the mmap_lock is now correctly
taken (as EXCP_ATOMIC can be taken for linux-user).
tcg: remove global exit_request
In the single threaded round robin we also check for
cpu->queued_work_first and bail the loop if needed. Otherwise we run
into strangeness when the "target-arm: ensure all cross vCPUs TLB
flushes complete" runs in single-threaded mode. The tail end of the
commit message has been tweaked to explain this.
tcg: enable thread-per-vCPU
Pranith found a regression running linux-user tests/atomic_bench
which was due to the fact we previously removed a setting of
cpu->exit_request to 0 in cpu_handle_interrupt. Because the
linux-user loop doesn't have the outer loop of system emulation this
caused it to hang - always exiting the TB. There was a knock on
effect w.r.t to safe work for single-threaded execution but this was
fixed in commit above.
So if you are happy are you going to be able to submit the pull
request before the soft-freeze kicks in?
Regards,
Alex.
Alex Bennée (18):
docs: new design document multi-thread-tcg.txt
tcg: move TCG_MO/BAR types into own file
tcg: add kick timer for single-threaded vCPU emulation
tcg: rename tcg_current_cpu to tcg_current_rr_cpu
tcg: remove global exit_request
tcg: enable tb_lock() for SoftMMU
tcg: enable thread-per-vCPU
cputlb: add assert_cpu_is_self checks
cputlb: tweak qemu_ram_addr_from_host_nofail reporting
cputlb and arm/sparc targets: convert mmuidx flushes from varg to
bitmap
cputlb: add tlb_flush_by_mmuidx async routines
cputlb: atomically update tlb fields used by tlb_reset_dirty
cputlb: introduce tlb_flush_*_all_cpus[_synced]
target-arm/powerctl: defer cpu reset work to CPU context
target-arm: don't generate WFE/YIELD calls for MTTCG
target-arm: ensure all cross vCPUs TLB flushes complete
hw/misc/imx6_src: defer clearing of SRC_SCR reset bits
tcg: enable MTTCG by default for ARM on x86 hosts
Jan Kiszka (1):
tcg: drop global lock during TCG code execution
KONRAD Frederic (2):
tcg: add options for enabling MTTCG
cputlb: introduce tlb_flush_* async work.
Pranith Kumar (3):
mttcg: translate-all: Enable locking debug in a debug build
mttcg: Add missing tb_lock/unlock() in cpu_exec_step()
tcg: handle EXCP_ATOMIC exception for system emulation
configure | 6 +
cpu-exec-common.c | 3 -
cpu-exec.c | 89 ++++++---
cpus.c | 345 ++++++++++++++++++++++++++-------
cputlb.c | 463 +++++++++++++++++++++++++++++++++++++--------
docs/multi-thread-tcg.txt | 350 ++++++++++++++++++++++++++++++++++
exec.c | 12 +-
hw/core/irq.c | 1 +
hw/i386/kvmvapic.c | 4 +-
hw/intc/arm_gicv3_cpuif.c | 3 +
hw/misc/imx6_src.c | 58 +++++-
hw/ppc/ppc.c | 16 +-
hw/ppc/spapr.c | 3 +
include/exec/cputlb.h | 2 -
include/exec/exec-all.h | 132 +++++++++++--
include/qom/cpu.h | 16 ++
include/sysemu/cpus.h | 2 +
memory.c | 2 +
qemu-options.hx | 20 ++
qom/cpu.c | 10 +
target/arm/arm-powerctl.c | 202 +++++++++++++-------
target/arm/arm-powerctl.h | 2 +
target/arm/cpu.c | 4 +-
target/arm/cpu.h | 18 +-
target/arm/helper.c | 219 ++++++++++-----------
target/arm/kvm.c | 7 +-
target/arm/machine.c | 41 +++-
target/arm/op_helper.c | 50 ++++-
target/arm/psci.c | 4 +-
target/arm/translate-a64.c | 8 +-
target/arm/translate.c | 20 +-
target/i386/smm_helper.c | 7 +
target/s390x/misc_helper.c | 5 +-
target/sparc/ldst_helper.c | 8 +-
tcg/i386/tcg-target.h | 11 ++
tcg/tcg-mo.h | 48 +++++
tcg/tcg.h | 27 +--
translate-all.c | 66 ++-----
translate-common.c | 21 +-
vl.c | 49 ++++-
40 files changed, 1878 insertions(+), 476 deletions(-)
create mode 100644 docs/multi-thread-tcg.txt
create mode 100644 tcg/tcg-mo.h
--
2.11.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-23 18:29 Alex Bennée
@ 2017-02-23 20:35 ` Richard Henderson
2017-02-24 7:16 ` Alex Bennée
0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2017-02-23 20:35 UTC (permalink / raw)
To: Alex Bennée, peter.maydell
Cc: qemu-devel, mttcg, fred.konrad, a.rigo, cota, bobby.prani, nikunj,
mark.burton, pbonzini, jan.kiszka, serge.fdrv, bamvor.zhangjian
On 02/24/2017 05:29 AM, Alex Bennée wrote:
> Hi Richard/Peter,
>
> Well obviously it was expecting a bit much for v13 to pass with flying
> colours. A merge failure which didn't affect ARM caused the
> regressions on other platforms resulting in the iothread not being
> released during cpu_handle_interrupt. This fix has been merged into
> Jan's drop global lock patch. I also fixed a whitespace issue on the
> error_report/printf for the memory order check.
LGTM. I've re-tested with Alpha and everything seems to be ok.
You've got all of my R-B already.
> So if you are happy are you going to be able to submit the pull
> request before the soft-freeze kicks in?
Are you looking for someone else to sent the pull? I suspect that Peter and I
are happy for you to do so.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-23 20:35 ` Richard Henderson
@ 2017-02-24 7:16 ` Alex Bennée
0 siblings, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2017-02-24 7:16 UTC (permalink / raw)
To: Richard Henderson
Cc: peter.maydell, qemu-devel, mttcg, fred.konrad, a.rigo, cota,
bobby.prani, nikunj, mark.burton, pbonzini, jan.kiszka,
serge.fdrv, bamvor.zhangjian
Richard Henderson <rth@twiddle.net> writes:
> On 02/24/2017 05:29 AM, Alex Bennée wrote:
>> Hi Richard/Peter,
>>
>> Well obviously it was expecting a bit much for v13 to pass with flying
>> colours. A merge failure which didn't affect ARM caused the
>> regressions on other platforms resulting in the iothread not being
>> released during cpu_handle_interrupt. This fix has been merged into
>> Jan's drop global lock patch. I also fixed a whitespace issue on the
>> error_report/printf for the memory order check.
>
> LGTM. I've re-tested with Alpha and everything seems to be ok.
> You've got all of my R-B already.
Cool.
>> So if you are happy are you going to be able to submit the pull
>> request before the soft-freeze kicks in?
>
> Are you looking for someone else to sent the pull? I suspect that
> Peter and I are happy for you to do so.
I was following convention:
"Generally only existing submaintainers of a tree will need to submit
pull requests, although occasionally for a large patch series we might
ask a submitter to send a pull request. "
So if Peter is happy I'll send the pullreq today. Peter?
--
Alex Bennée
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
[not found] <mailman.54661.1487925109.22739.qemu-devel@nongnu.org>
@ 2017-02-24 14:58 ` G 3
2017-02-24 18:37 ` Alex Bennée
0 siblings, 1 reply; 8+ messages in thread
From: G 3 @ 2017-02-24 14:58 UTC (permalink / raw)
To: Alex Benn?e; +Cc: qemu-devel qemu-devel
Hi I was wondering if your MTTCG patches have been tested with a
PowerPC guest yet. Also do you have a repo someone could clone to
test out all your patches?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-24 14:58 ` [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement G 3
@ 2017-02-24 18:37 ` Alex Bennée
2017-02-26 1:46 ` Programmingkid
0 siblings, 1 reply; 8+ messages in thread
From: Alex Bennée @ 2017-02-24 18:37 UTC (permalink / raw)
To: G 3; +Cc: qemu-devel qemu-devel, Nikunj A Dadhania
G 3 <programmingkidx@gmail.com> writes:
> Hi I was wondering if your MTTCG patches have been tested with a
> PowerPC guest yet.
You would have to talk to PPC guys about the current status of MTTCG for
the PowerPC architecture. You can force it to run with -accel
tcg,thread=multi but it will likely behave weirdly if the atomic/barrier
updates haven't been made to the front end.
> Also do you have a repo someone could clone to test
> out all your patches?
Sure:
https://github.com/stsquad/qemu/tree/mttcg/base-patches-v14
Hopefully it will get merged in the next couple of days ;-)
--
Alex Bennée
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-24 18:37 ` Alex Bennée
@ 2017-02-26 1:46 ` Programmingkid
2017-02-26 3:03 ` Pranith Kumar
0 siblings, 1 reply; 8+ messages in thread
From: Programmingkid @ 2017-02-26 1:46 UTC (permalink / raw)
To: Alex Bennée
Cc: qemu-devel qemu-devel, Nikunj A Dadhania,
list@suse.de:PowerPC list:PowerPC
On Feb 24, 2017, at 1:37 PM, Alex Bennée wrote:
>
> G 3 <programmingkidx@gmail.com> writes:
>
>> Hi I was wondering if your MTTCG patches have been tested with a
>> PowerPC guest yet.
>
> You would have to talk to PPC guys about the current status of MTTCG for
> the PowerPC architecture. You can force it to run with -accel
> tcg,thread=multi but it will likely behave weirdly if the atomic/barrier
> updates haven't been made to the front end.
>
>> Also do you have a repo someone could clone to test
>> out all your patches?
>
> Sure:
>
> https://github.com/stsquad/qemu/tree/mttcg/base-patches-v14
>
> Hopefully it will get merged in the next couple of days ;-)
>
> --
> Alex Bennée
Ok I have tried out the PowerPC target with "-accel tcg,thread=multi".
What I saw while booting was this message:
kernel[0]: USBF: 235.754 AppleUSBOHCI[0x1151000] Watchdog detected
dead controller (hcca #: 0, hc #: 836)
The maximum host cpu usgae for QEMU went up, but only by 2 percent. Before
qemu-system-ppc would use at most 101% of the host CPU. With the accel option, it went
up to 104%.
My Mac OS X guest was able to boot up and shutdown correctly with your patches.
With the i386 target, I did see host CPU usage go up to 120%. That was nice
to see. Windows XP and Windows 2000 would not boot to the desktop for some
reason.
Your patches can be a real game changer for emulation. Please let me know
if there is anything else I could do.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-26 1:46 ` Programmingkid
@ 2017-02-26 3:03 ` Pranith Kumar
2017-03-03 0:56 ` Programmingkid
0 siblings, 1 reply; 8+ messages in thread
From: Pranith Kumar @ 2017-02-26 3:03 UTC (permalink / raw)
To: Programmingkid
Cc: Alex Bennée, list@suse.de:PowerPC list:PowerPC,
qemu-devel qemu-devel, Nikunj A Dadhania
On Sat, Feb 25, 2017 at 8:46 PM, Programmingkid
<programmingkidx@gmail.com> wrote:
>
>
> With the i386 target, I did see host CPU usage go up to 120%. That was nice
> to see. Windows XP and Windows 2000 would not boot to the desktop for some
> reason.
For windows XP, you need the patch here:
http://patchwork.ozlabs.org/patch/731915/
Let me know if that patch helps.
Thanks,
--
Pranith
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement
2017-02-26 3:03 ` Pranith Kumar
@ 2017-03-03 0:56 ` Programmingkid
0 siblings, 0 replies; 8+ messages in thread
From: Programmingkid @ 2017-03-03 0:56 UTC (permalink / raw)
To: Pranith Kumar; +Cc: Alex Bennée, qemu-devel qemu-devel, Nikunj A Dadhania
On Feb 25, 2017, at 10:03 PM, Pranith Kumar wrote:
> On Sat, Feb 25, 2017 at 8:46 PM, Programmingkid
> <programmingkidx@gmail.com> wrote:
>>
>>
>> With the i386 target, I did see host CPU usage go up to 120%. That was nice
>> to see. Windows XP and Windows 2000 would not boot to the desktop for some
>> reason.
>
> For windows XP, you need the patch here:
> http://patchwork.ozlabs.org/patch/731915/
>
> Let me know if that patch helps.
>
> Thanks,
> --
> Pranith
The patch does make Windows 2000 work again. While playing a game I saw qemu-system-i386 use 120% of CPU usage, which shows mttcg patches are working. Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-03-03 0:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.54661.1487925109.22739.qemu-devel@nongnu.org>
2017-02-24 14:58 ` [Qemu-devel] [PATCH v14 00/24] MTTCG Base enabling patches with ARM enablement G 3
2017-02-24 18:37 ` Alex Bennée
2017-02-26 1:46 ` Programmingkid
2017-02-26 3:03 ` Pranith Kumar
2017-03-03 0:56 ` Programmingkid
2017-02-23 18:29 Alex Bennée
2017-02-23 20:35 ` Richard Henderson
2017-02-24 7:16 ` 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.