From: "Emilio G. Cota" <cota@braap.org>
To: qemu-devel@nongnu.org
Cc: Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [RFC 0/7] tcg: parallel code generation (Work in Progress)
Date: Thu, 29 Jun 2017 16:28:22 -0400 [thread overview]
Message-ID: <1498768109-4092-1-git-send-email-cota@braap.org> (raw)
This is a request for comments as well as a request for help :-)
I've been experimenting with making TCGContext per-thread, so that we can
run most of tcg_gen_code in parallel. I've made some progress,
but haven't yet got it to work.
My guess is that the TCG stack is still global instead of per-vCPU
(it's been global since tmp_buf was removed from CPUState, right?),
but I'm having trouble following that code so most likely I'm wrong.
Any help would be appreciated--please disregard minor nits, I want
to see whether I can make this work to then take measurements
to decide whether this is worth the trouble.
- Patch 1 is a trivial doc fixup, feel free to pick it up
- Patches 2-3 remove *tbs[] to use a binary search tree instead.
This removes the assumption in tb_find_pc that *tbs[] are ordered
by tc_ptr, thereby allowing us to generate code regardless of
its location on the host (as we do after patch 6).
- Patch 4 addresses a reporting issue: ever since we embedded the
struct TB's in code_gen_buffer (6e3b2bfd6), we have been
misreporting the size of the generated code. Not a huge deal,
but I noticed while I was working on this.
- Patches 5-7 make TCGContext per-thread in softmmu. I have put there
some XXX's to note that I'm aware of those issues, so don't worry
too much about those--except of course if you have any input on
what the cause of the race(s) might be.
Thanks,
Emilio
next reply other threads:[~2017-06-29 20:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-29 20:28 Emilio G. Cota [this message]
2017-06-29 20:28 ` [Qemu-devel] [RFC 1/7] exec-all: fix typos in TranslationBlock's documentation Emilio G. Cota
2017-06-30 6:17 ` Richard Henderson
2017-06-29 20:28 ` [Qemu-devel] [RFC 2/7] translate-all: add out_size field to TranslationBlock Emilio G. Cota
2017-06-30 6:31 ` Richard Henderson
2017-06-29 20:28 ` [Qemu-devel] [RFC 3/7] translate-all: use a binary search tree to track TBs in TBContext Emilio G. Cota
2017-06-30 7:41 ` Richard Henderson
2017-06-30 7:49 ` Richard Henderson
2017-06-30 14:55 ` Emilio G. Cota
2017-06-29 20:28 ` [Qemu-devel] [RFC 4/7] translate-all: report correct avg host TB size Emilio G. Cota
2017-06-30 7:50 ` Richard Henderson
2017-06-29 20:28 ` [Qemu-devel] [RFC 5/7] tcg: take tb_ctx out of TCGContext Emilio G. Cota
2017-06-30 7:58 ` Richard Henderson
2017-06-29 20:28 ` [Qemu-devel] [RFC 6/7] [XXX] tcg: make TCGContext thread-local for softmmu Emilio G. Cota
2017-06-30 8:18 ` Richard Henderson
2017-07-01 1:54 ` Emilio G. Cota
2017-07-01 1:47 ` [Qemu-devel] [PATCH] fixup: missed some TLS variables Emilio G. Cota
2017-06-29 20:28 ` [Qemu-devel] [RFC 7/7] [XXX] translate-all: generate TCG code without holding tb_lock Emilio G. Cota
2017-06-30 8:25 ` [Qemu-devel] [RFC 0/7] tcg: parallel code generation (Work in Progress) Richard Henderson
2017-07-01 2:00 ` Emilio G. Cota
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=1498768109-4092-1-git-send-email-cota@braap.org \
--to=cota@braap.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).