qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Frederic Konrad <fred.konrad@greensocs.com>
Cc: peter.maydell@linaro.org, rth@twiddle.net, pbonzini@redhat.com,
	mttcg@listserver.greensocs.com, nikunj@linux.vnet.ibm.com,
	a.rigo@virtualopensystems.com, qemu-devel@nongnu.org,
	cota@braap.org, bobby.prani@gmail.com
Subject: Re: [Qemu-devel] [PATCH v2 00/11] MTTCG fixups for 2.9
Date: Mon, 06 Mar 2017 09:43:55 +0000	[thread overview]
Message-ID: <87pohuivtw.fsf@linaro.org> (raw)
In-Reply-To: <058f0960-bc1b-fd44-9871-66d11d2e9b76@greensocs.com>


Frederic Konrad <fred.konrad@greensocs.com> writes:

> Hi All,
>
> I've a strangeness with the "drop iolock" patch.
> It seems it has an impact on the MMIO execution patch-set I'm working
> on:

Hmm the only real change is the BQL (implicit or explict) being taken on
entry to the mmio functions.

> Basically modifying the memory tree is causing a Bad Ram Address error.
> I wonder if this can't happen with hotplug/unplug model as well.

Isn't this all done under an RCU? I don't think any of this should have
changed for the MTTCG patch series.

> I'll look into this.
> Shoot if you have any evidence of why that doesn't work :).

--enable-tcg-debug will turn on more lock checking (at a performance
  hit). You could try that.

>
> Thanks,
> Fred
>
> On 03/02/2017 08:53 PM, Alex Bennée wrote:
>> Hi Peter,
>>
>> So perhaps predictably the merging of MTTCG has thrown up some issues
>> during soft-freeze. The following patches fix up some of those:
>>
>> The following where in v1 and just have r-b tags:
>>
>>   vl/cpus: be smarter with icount and MTTCG
>>   target/i386/cpu.h: declare TCG_GUEST_DEFAULT_MO
>>   cpus.c: add additional error_report when !TARGET_SUPPORT_MTTCG
>>
>> The next change downgrades the asserts to tcg_debug_asserts. This will
>> reduce the instances of production builds failing on non-MTTCG enabled
>> guests. The races still need to be fixed but you now have to
>> --enable-debug-tcg to go hunting for them:
>>
>>   translate: downgrade IRQ BQL asserts to tcg_debug_assert
>>
>> This never came up in my testing but it seems some guests can
>> translate while doing a tlb_fill. The call to cpu_restore_state never
>> worked before (as we are translating the block you are looking for)
>> but by bugging out we avoid the double tb_lock().
>>
>>   translate-all: exit cpu_restore_state early if translating
>>
>> Then we have a bunch of fixes from the reports on the list. They are
>> safe to merge but I'll leave that up to the maintainers. There may be
>> an argument for holding these patches back until the guest is
>> converted to be MTTCG aware and a full audit of the CPU<->HW emulation
>> boundaries is done for each one:
>>
>>   sparc/sparc64: grab BQL before calling cpu_check_irqs
>>   s390x/misc_helper.c: wrap IO instructions in BQL
>>   target/xtensa: hold BQL for interrupt processing
>>   target/mips/op_helper: hold BQL before calling cpu_mips_get_count
>>
>> Finally these are just tiny debug fixes while investigating the icount
>> regression:
>>
>>   target/arm/helper: make it clear the EC field is also in hex
>>   hw/intc/arm_gic: modernise the DPRINTF
>>
>> Going forward I think 1-5 are ready to be merged now. For 6-9 we
>> should await decisions from the target maintainers. The last two are
>> entirely up to you.
>>
>> It looks like the -icount regression is a poor interaction between
>> icount timers and the BQL but this is going to require discussion with
>> Paolo in the morning.
>>
>> Cheers,
>>
>>
>> Alex Bennée (11):
>>   vl/cpus: be smarter with icount and MTTCG
>>   target/i386/cpu.h: declare TCG_GUEST_DEFAULT_MO
>>   cpus.c: add additional error_report when !TARGET_SUPPORT_MTTCG
>>   translate: downgrade IRQ BQL asserts to tcg_debug_assert
>>   translate-all: exit cpu_restore_state early if translating
>>   sparc/sparc64: grab BQL before calling cpu_check_irqs
>>   s390x/misc_helper.c: wrap IO instructions in BQL
>>   target/xtensa: hold BQL for interrupt processing
>>   target/mips/op_helper: hold BQL before calling cpu_mips_get_count
>>   target/arm/helper: make it clear the EC field is also in hex
>>   hw/intc/arm_gic: modernise the DPRINTF
>>
>>  cpus.c                      | 11 +++++++----
>>  hw/intc/arm_gic.c           | 13 +++++++++----
>>  hw/sparc/sun4m.c            |  3 +++
>>  hw/sparc64/sparc64.c        |  3 +++
>>  target/arm/helper.c         |  2 +-
>>  target/i386/cpu.h           |  3 +++
>>  target/mips/op_helper.c     | 17 ++++++++++++++---
>>  target/s390x/misc_helper.c  | 21 +++++++++++++++++++++
>>  target/sparc/int64_helper.c |  3 +++
>>  target/sparc/win_helper.c   | 11 +++++++++++
>>  target/xtensa/helper.c      |  1 +
>>  target/xtensa/op_helper.c   |  7 +++++++
>>  translate-all.c             |  9 ++++++++-
>>  translate-common.c          |  3 ++-
>>  vl.c                        |  7 ++-----
>>  15 files changed, 95 insertions(+), 19 deletions(-)
>>


--
Alex Bennée

  reply	other threads:[~2017-03-06  9:43 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-02 19:53 [Qemu-devel] [PATCH v2 00/11] MTTCG fixups for 2.9 Alex Bennée
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 01/11] vl/cpus: be smarter with icount and MTTCG Alex Bennée
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 02/11] target/i386/cpu.h: declare TCG_GUEST_DEFAULT_MO Alex Bennée
2017-03-03 19:28   ` Eduardo Habkost
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 03/11] cpus.c: add additional error_report when !TARGET_SUPPORT_MTTCG Alex Bennée
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 04/11] translate: downgrade IRQ BQL asserts to tcg_debug_assert Alex Bennée
2017-03-03 10:08   ` Peter Maydell
2017-03-03 11:05     ` Alex Bennée
2017-03-03 11:19       ` Peter Maydell
2017-03-03 19:35         ` Richard Henderson
2017-03-03 19:47           ` Eric Blake
2017-03-03 19:48             ` Eric Blake
2017-03-03 11:49     ` Paolo Bonzini
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 05/11] translate-all: exit cpu_restore_state early if translating Alex Bennée
2017-03-02 21:46   ` Richard Henderson
2017-03-03 10:03     ` Alex Bennée
2017-03-03 19:50       ` Richard Henderson
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 06/11] sparc/sparc64: grab BQL before calling cpu_check_irqs Alex Bennée
2017-03-03 11:47   ` Paolo Bonzini
2017-03-06 10:28     ` Alex Bennée
2017-03-06 13:22       ` Paolo Bonzini
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 07/11] s390x/misc_helper.c: wrap IO instructions in BQL Alex Bennée
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 08/11] target/xtensa: hold BQL for interrupt processing Alex Bennée
2017-03-07  0:15   ` Max Filippov
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 09/11] target/mips/op_helper: hold BQL before calling cpu_mips_get_count Alex Bennée
2017-03-03 11:18   ` Yongbok Kim
2017-03-03 12:54     ` Alex Bennée
2017-03-03 13:00       ` Yongbok Kim
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 10/11] target/arm/helper: make it clear the EC field is also in hex Alex Bennée
2017-03-03 17:07   ` Frederic Konrad
2017-03-03 18:10   ` Peter Maydell
2017-03-02 19:53 ` [Qemu-devel] [PATCH v2 11/11] hw/intc/arm_gic: modernise the DPRINTF Alex Bennée
2017-03-03 17:05   ` Frederic Konrad
2017-03-03 17:09     ` Peter Maydell
2017-03-03 18:09   ` Peter Maydell
2017-03-03 17:38 ` [Qemu-devel] [PATCH v2 00/11] MTTCG fixups for 2.9 Frederic Konrad
2017-03-06  9:43   ` Alex Bennée [this message]
2017-03-06 10:45     ` Frederic Konrad

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=87pohuivtw.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=a.rigo@virtualopensystems.com \
    --cc=bobby.prani@gmail.com \
    --cc=cota@braap.org \
    --cc=fred.konrad@greensocs.com \
    --cc=mttcg@listserver.greensocs.com \
    --cc=nikunj@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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 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).