From: "Alex Bennée" <alex.bennee@linaro.org>
To: Sergey Fedorov <sergey.fedorov@linaro.org>
Cc: qemu-devel@nongnu.org,
"MTTCG Devel" <mttcg@listserver.greensocs.com>,
"KONRAD Frédéric" <fred.konrad@greensocs.com>,
"Alvise Rigo" <a.rigo@virtualopensystems.com>,
"Emilio G. Cota" <cota@braap.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <rth@twiddle.net>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Sergey Fedorov" <serge.fdrv@gmail.com>
Subject: Re: [Qemu-devel] [RFC v2 00/11] cpu-exec: Safe work in quiescent state
Date: Thu, 14 Jul 2016 17:00:16 +0100 [thread overview]
Message-ID: <878tx443cf.fsf@linaro.org> (raw)
In-Reply-To: <1467839703-11733-1-git-send-email-sergey.fedorov@linaro.org>
Sergey Fedorov <sergey.fedorov@linaro.org> writes:
> From: Sergey Fedorov <serge.fdrv@gmail.com>
>
> Hi,
>
> This is a v2 of the RFC series [3] that was a follow-up for a discussion
> on the subject [1]. This is sill marked as FRC becuse it laks bsd-user
> support.
Given the maintenance state of BSD I'm not sure how important this is. I
assume the exclusive handling will be pretty much the same though.
>
> Basically, this series suggests a way to perform some operations in
> quiescent state. The goal is to implement such a mechanism which can be
> used for safe translation buffer flush in multi-threaded user-mode
> emulation (and later in MTTCG) and merge it into mainline as soon as
> possible.
>
> This series is a more elaborated version of the original series since
> there was some positive feedback and I'd appreciate some comments from
> maintainers this time.
>
> The first two patches are some useful tweak from Alex's MTTCG trees.
>
> The patches 3 through 8 are arrangements for the patch 9 which adds
> support for CPU work in linux-user. This wouldn't make any sense without
> the patch 10 which is the subject matter of this series. Although there
> is nothing special to do in case of single-threaded round-robin CPU loop
> of current system-mode emulation to ensure quiescent state, that is
> shown in the patch 10, how it would look like in MTTCG. The last patch
> actually employs this new mechanism making translation buffer flush
> thread safe.
>
> The considerations on expensiveness of work item dynamic allocation [2]
> was not taken into account. I'll just mention here that the desired
> effect can be achieved by either using dynamic arrays for CPU work
> queues or making queue_work_on_cpu() from the patch 3 a public interface
> thus allowing to use preallocated work items.
>
> I would like your comments in order to produce something upstreamable
> quickly!
>
> This series is available at a public git repository:
>
> https://github.com/sergefdrv/qemu.git safe-cpu-work-v2
>
I've finished by review pass now. If Sergey doesn't get a chance to
re-spin before he moves onto other things I'll pick the series up.
--
Alex Bennée
prev parent reply other threads:[~2016-07-14 16:00 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-06 21:14 [Qemu-devel] [RFC v2 00/11] cpu-exec: Safe work in quiescent state Sergey Fedorov
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 01/11] atomic: introduce atomic_dec_fetch Sergey Fedorov
2016-07-06 21:14 ` [RFC v2 02/11] cpus: pass CPUState to run_on_cpu helpers Sergey Fedorov
2016-07-06 21:14 ` [Qemu-devel] " Sergey Fedorov
2016-07-07 0:30 ` David Gibson
2016-07-07 0:30 ` [Qemu-devel] " David Gibson
2016-07-11 12:36 ` Christian Borntraeger
2016-07-11 12:36 ` [Qemu-devel] " Christian Borntraeger
2016-07-11 12:38 ` Sergey Fedorov
2016-07-11 12:38 ` [Qemu-devel] " Sergey Fedorov
2016-07-11 12:55 ` Christian Borntraeger
2016-07-11 12:55 ` [Qemu-devel] " Christian Borntraeger
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 03/11] cpus: Move common code out of {async_, }run_on_cpu() Sergey Fedorov
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 04/11] cpus: Wrap mutex used to protect CPU work Sergey Fedorov
2016-07-11 12:06 ` Alex Bennée
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 05/11] cpus: Rename flush_queued_work() Sergey Fedorov
2016-07-11 12:07 ` Alex Bennée
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 06/11] linux-user: Use QemuMutex and QemuCond Sergey Fedorov
2016-07-11 12:08 ` Alex Bennée
2016-07-06 21:14 ` [Qemu-devel] [RFC v2 07/11] linux-user: Rework exclusive operation mechanism Sergey Fedorov
2016-07-14 15:04 ` Alex Bennée
2016-07-06 21:15 ` [Qemu-devel] [RFC v2 08/11] linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick() Sergey Fedorov
2016-07-14 15:07 ` Alex Bennée
2016-07-06 21:15 ` [Qemu-devel] [RFC v2 09/11] linux-user: Support CPU work queue Sergey Fedorov
2016-07-14 15:10 ` Alex Bennée
2016-07-06 21:15 ` [Qemu-devel] [RFC v2 10/11] cpu-exec-common: Introduce async_safe_run_on_cpu() Sergey Fedorov
2016-07-14 15:57 ` Alex Bennée
2016-07-06 21:15 ` [Qemu-devel] [RFC v2 11/11] tcg: Make tb_flush() thread safe Sergey Fedorov
2016-07-07 20:11 ` Sergey Fedorov
2016-07-14 8:41 ` Alex Bennée
2016-07-14 8:54 ` Sergey Fedorov
2016-07-14 9:49 ` Alex Bennée
2016-07-14 16:00 ` Alex Bennée [this message]
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=878tx443cf.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=a.rigo@virtualopensystems.com \
--cc=cota@braap.org \
--cc=fred.konrad@greensocs.com \
--cc=mttcg@listserver.greensocs.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=serge.fdrv@gmail.com \
--cc=sergey.fedorov@linaro.org \
/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.