From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <rth@twiddle.net>
Cc: Pranith Kumar <bobby.prani@gmail.com>,
pbonzini@redhat.com, qemu-devel@nongnu.org, mttcg@greensocs.com,
fred.konrad@greensocs.com, a.rigo@virtualopensystems.com,
cota@braap.org, nikunj@linux.vnet.ibm.com,
mark.burton@greensocs.com, jan.kiszka@siemens.com,
serge.fdrv@gmail.com, peter.maydell@linaro.org,
claudio.fontana@huawei.com,
Peter Crosthwaite <crosthwaite.peter@gmail.com>
Subject: Re: [Qemu-devel] [PATCH v6 13/19] cputlb: atomically update tlb fields used by tlb_reset_dirty
Date: Thu, 10 Nov 2016 18:00:10 +0000 [thread overview]
Message-ID: <87a8d78bbp.fsf@linaro.org> (raw)
In-Reply-To: <2f256c7e-cd92-0678-db23-e269203a7164@twiddle.net>
Richard Henderson <rth@twiddle.net> writes:
> On 11/10/2016 05:14 PM, Alex Bennée wrote:
>> Even worse than that we trip up the atomic.h QEMU_BUILD_BUG_ON with the
>> atomic_cmpxchg. Now I believe we can use atomic_cmpxchg__nocheck without
>> too much issue on x86 but we'll need to #ifdef it on detection of wide
>> atomics.
>
> You've already got CONFIG_ATOMIC64. And what's the fallback?
I'm going to re-factor cputlb a bit so all the TLB read and write's can
be done in helper functions so I don't scatter stuff around too much. I
was thinking something like:
#ifdef CONFIG_ATOMIC64
.. as usual ..
#else
assert(!parallel_cpus)
.. non atomic update ..
#endif
> We ought not be enabling mttcg for 32-bit host and 64-bit guest at all. But
> that doesn't help much here, where we're otherwise guest width
> agnostic.
Hmm well the most common case (any guest on x86) should work. Currently
the default mttcg code in cpus.c works when:
#if defined(CONFIG_MTTCG_TARGET) && defined(CONFIG_MTTCG_HOST)
I should probably expand that to default to false in the case of (sizeof
target_ulong > sizeof void *) when we don't have CONFIG_ATOMIC64.
Then if the user does force mttcg on they will quickly get an assert
although maybe we want to report that in a nicer way?
>
>
> r~
--
Alex Bennée
next prev parent reply other threads:[~2016-11-10 18:00 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-09 14:57 [Qemu-devel] [PATCH v6 00/19] Remaining MTTCG Base patches and ARM enablement Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 01/19] docs: new design document multi-thread-tcg.txt Alex Bennée
2016-11-10 15:00 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 02/19] tcg: add options for enabling MTTCG Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 03/19] tcg: add kick timer for single-threaded vCPU emulation Alex Bennée
2016-11-10 15:10 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 04/19] tcg: rename tcg_current_cpu to tcg_current_rr_cpu Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 05/19] tcg: drop global lock during TCG code execution Alex Bennée
2016-11-10 15:18 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 06/19] tcg: remove global exit_request Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 07/19] tcg: enable tb_lock() for SoftMMU Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 08/19] tcg: enable thread-per-vCPU Alex Bennée
2016-11-10 16:35 ` Richard Henderson
2016-11-10 16:46 ` Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 09/19] tcg: handle EXCP_ATOMIC exception for system emulation Alex Bennée
2016-11-10 16:36 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 10/19] cputlb: add assert_cpu_is_self checks Alex Bennée
2016-11-10 16:39 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 11/19] cputlb: introduce tlb_flush_* async work Alex Bennée
2016-11-10 16:48 ` Richard Henderson
2016-11-10 17:34 ` Alex Bennée
2016-11-10 17:40 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 12/19] cputlb: tweak qemu_ram_addr_from_host_nofail reporting Alex Bennée
2016-11-10 16:51 ` Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 13/19] cputlb: atomically update tlb fields used by tlb_reset_dirty Alex Bennée
2016-11-09 19:36 ` Pranith Kumar
2016-11-10 16:14 ` Alex Bennée
2016-11-10 17:27 ` Richard Henderson
2016-11-10 18:00 ` Alex Bennée [this message]
2016-11-10 18:32 ` Richard Henderson
2016-11-10 17:23 ` Richard Henderson
2016-11-10 18:07 ` Alex Bennée
2016-11-09 14:57 ` [PATCH v6 14/19] target-arm/powerctl: defer cpu reset work to CPU context Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] " Alex Bennée
2016-11-10 17:35 ` Richard Henderson
2016-11-10 17:35 ` [Qemu-devel] " Richard Henderson
2016-11-09 14:57 ` [PATCH v6 15/19] target-arm/cpu: don't reset TLB structures, use cputlb to do it Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] " Alex Bennée
2016-11-10 17:48 ` Richard Henderson
2016-11-10 17:48 ` [Qemu-devel] " Richard Henderson
2016-11-10 18:08 ` Alex Bennée
2016-11-10 18:08 ` [Qemu-devel] " Alex Bennée
2016-11-09 14:57 ` [PATCH v6 16/19] target-arm: ensure BQL taken for ARM_CP_IO register access Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] " Alex Bennée
2016-11-10 17:54 ` Richard Henderson
2016-11-10 17:54 ` [Qemu-devel] " Richard Henderson
2016-11-09 14:57 ` [PATCH v6 17/19] target-arm: helpers which may affect global state need the BQL Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] " Alex Bennée
2016-11-10 17:56 ` Richard Henderson
2016-11-10 17:56 ` [Qemu-devel] " Richard Henderson
2016-11-09 14:57 ` [PATCH v6 18/19] target-arm: don't generate WFE/YIELD calls for MTTCG Alex Bennée
2016-11-09 14:57 ` [Qemu-devel] " Alex Bennée
2016-11-10 17:59 ` Richard Henderson
2016-11-10 17:59 ` [Qemu-devel] " Richard Henderson
2016-11-09 14:57 ` [Qemu-devel] [PATCH v6 19/19] tcg: enable MTTCG by default for ARM on x86 hosts Alex Bennée
2016-11-10 18:00 ` Richard Henderson
2016-11-10 18:13 ` Alex Bennée
2016-11-10 18:41 ` Richard Henderson
2016-11-09 15:11 ` [Qemu-devel] [PATCH v6 00/19] Remaining MTTCG Base patches and ARM enablement Paolo Bonzini
2016-11-09 18:38 ` Alex Bennée
2016-11-13 5:50 ` no-reply
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=87a8d78bbp.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=a.rigo@virtualopensystems.com \
--cc=bobby.prani@gmail.com \
--cc=claudio.fontana@huawei.com \
--cc=cota@braap.org \
--cc=crosthwaite.peter@gmail.com \
--cc=fred.konrad@greensocs.com \
--cc=jan.kiszka@siemens.com \
--cc=mark.burton@greensocs.com \
--cc=mttcg@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 \
--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.