All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Konrad <fred.konrad@greensocs.com>
To: "Alex Bennée" <alex.bennee@linaro.org>,
	qemu-devel@nongnu.org, mttcg@listserver.greensocs.com
Cc: mark.burton@greensocs.com, claudio.fontana@huawei.com,
	a.rigo@virtualopensystems.com, "Emilio G. Cota" <cota@braap.org>,
	Alexander Spyridakis <a.spyridakis@virtualopensystems.com>,
	Pbonzini@redhat.com
Subject: Re: [Qemu-devel] MTTCG Tasks (kvmforum summary)
Date: Fri, 04 Sep 2015 10:10:44 +0200	[thread overview]
Message-ID: <55E95204.1050408@greensocs.com> (raw)
In-Reply-To: <87fv2uipzf.fsf@linaro.org>

Hi Alex,

On 04/09/2015 09:49, Alex Bennée wrote:
> Hi,
>
> At KVM Forum I sat down with Paolo and Frederic and we came up with the
> current outstanding tasks on MTTCG. This is not comprehensive but
> hopefully covers the big areas. They are sorted in rough order we'd like
> to get them up-streamed.
>
> * linux-user patches (Paolo)
>
> Paolo has already grabbed a bunch of Fred's patch set where it makes
> sense on its own. They are up on the list and need review to expedite
> there way into the main tree now it is open for pull requests.
>
> See thread: 1439397664-70734-1-git-send-email-pbonzini@redhat.com
>
> * TLB_EXCL based LL/SC patches (Alvise)
>
> I think our consensus is these provide a good basis for the solution to
> modelling our atomics within TCG. I haven't had a chance to review
> Emilio's series yet which may approach this problem differently. I think
> the core patches with the generic backend support make a good basis to
> base development work on.
>
> We need to iterate and review the non-MTTCG variant of the patch set
> with a view to up-streaming soon.
>
> * Signal free qemu_cpu_kick (Paolo)
>
> I don't know much about this patch set but I assume this avoids the need
> to catch signals and longjmp about just to wake up?
>
> * RCU tb_flush (needs writing)
>
> The idea has been floated to introduce an RCU based translation buffer
> to flushes can be done lazily and the buffers dumped once all threads
> have stopped using them.
>
> I have been pondering if looking into having translation regions would
> be worth looking into so we can have translation buffers for contiguous
> series of pages. That way we don't have to throw away all translations
> on these big events. Currently every time we roll over the translation
> buffer we throw a bunch of perfectly good code away. This may or may not
> be orthogonal to using RCU?
I'm still not sure tb_flush needs so much effort.
tb_flush is happening very rarely just exiting everybody seems easier..

>
> * Memory barrier support (need RFC for discussion)
>
> I came to KVM forum with a back of the envelope idea we could implement
> one or two barrier ops (acquire/release?). Various suggestions of other
> types of memory behaviour have been suggested.
>
> I'll try to pull together an RFC patch with design outline for
> discussion. It would be nice to be able to demonstrate barrier failures
> in my test cases as well ;-)
>
> * longjmp in cpu_exec
>
> Paolo is fairly sure that if you take page faults while IRQs happening
> problems will occur with cpu->interrupt_request. Does it need to take
> the BQL?
>
> I'd like to see if we can get a torture test to stress this code
> although it will require IPI support in the unit tests.
>
> * tlb_flush and dmb behaviour (am I waiting for TLB flush?)
>
> I think this means we need explicit memory barriers to sync updates to
> the tlb.
>
> * tb_find_fast outside the lock
>
> Currently it is a big performance win as the tb_find_fast has a lot of
> contention with other threads. However there is concern it needs to be
> properly protected.
>
> * Additional review comments on the Fred's branch
>   - page->code_bitmap isn't protected by lock
>   - cpu_breakpoint_insert needs locks
Thoses one are OK, I didn't send all that yet.

>   - check gdbstub works
>
> * What to do about icount?
>
> What is the impact of multi-thread on icount? Do we need to disable it
> for MTTCG or can it be correct per-cpu? Can it be updated lock-step?
>
> We need some input from the guys that use icount the most.
>
> Cheers,
>
Also we might want to have everything in a branch. So rebasing the 
Atomics series
on eg: 2.4.0 + 2 Paolo's series so I can rebase MTTCG on it and pick the 
MTTCG
atomic parts can be usefull.

Thanks,
Fred

  reply	other threads:[~2015-09-04  8:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-04  7:49 [Qemu-devel] MTTCG Tasks (kvmforum summary) Alex Bennée
2015-09-04  8:10 ` Frederic Konrad [this message]
2015-09-04  9:25 ` Paolo Bonzini
2015-09-04  9:41   ` Edgar E. Iglesias
2015-09-04 10:18     ` Mark Burton
2015-09-04 13:00       ` Lluís Vilanova
2015-09-04 13:10         ` dovgaluk
2015-09-04 14:59           ` Lluís Vilanova
2015-09-04  9:45 ` dovgaluk
2015-09-04 12:38   ` Lluís Vilanova
2015-09-04 12:46     ` Mark Burton

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=55E95204.1050408@greensocs.com \
    --to=fred.konrad@greensocs.com \
    --cc=Pbonzini@redhat.com \
    --cc=a.rigo@virtualopensystems.com \
    --cc=a.spyridakis@virtualopensystems.com \
    --cc=alex.bennee@linaro.org \
    --cc=claudio.fontana@huawei.com \
    --cc=cota@braap.org \
    --cc=mark.burton@greensocs.com \
    --cc=mttcg@listserver.greensocs.com \
    --cc=qemu-devel@nongnu.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.