All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.