All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Konrad <fred.konrad@greensocs.com>
To: qemu-devel <qemu-devel@nongnu.org>, mttcg@listserver.greensocs.com
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Mark Burton <mark.burton@greensocs.com>,
	Peter Maydell <peter.maydell@linaro.org>
Subject: [Qemu-devel] Thread local TCGContext.
Date: Wed, 28 Jan 2015 16:04:27 +0100	[thread overview]
Message-ID: <54C8FA7B.3050501@greensocs.com> (raw)

Hi,

I wondering how we can have one TCGContext per thread cleanly.

We should be able to do this:

diff --git a/tcg/tcg.h b/tcg/tcg.h
index baf053a..8d488dc 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -533,7 +533,7 @@ struct TCGContext {
      struct TCGBackendData *be;
  };

-extern TCGContext tcg_ctx;
+extern __thread TCGContext tcg_ctx;
  extern TBContext tb_ctx;

  /* pool based memory allocation */
diff --git a/translate-all.c b/translate-all.c
index a986d61..69c6b83 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -125,11 +125,30 @@ uintptr_t qemu_host_page_mask;
  static void *l1_map[V_L1_SIZE];

  /* code generation context */
-TCGContext tcg_ctx;
+__thread TCGContext tcg_ctx;

But the big problem is the initialisation, it's done only onetime in the 
iothread with
the accelerator..

(gdb) bt
#0  tcg_context_init (s=0x7ffff7fb7a50) at qemu/tcg/tcg.c:333
#1  0x000055555560d90e in cpu_gen_init () at qemu/translate-all.c:158
#2  tcg_exec_init (tb_size=0) at qemu/translate-all.c:719
#3  0x000055555571a5c5 in tcg_init (ms=<optimized out>) at accel.c:42
#4  0x000055555571a6fb in accel_init_machine (ms=0x55555626b670, 
acc=0x555556251f20) at accel.c:70
#5  configure_accelerator (ms=0x55555626b670) at accel.c:109
#6  0x00005555555fee66 in main (argc=<optimized out>, argv=<optimized 
out>, envp=<optimized out>) at vl.c:4030

Any idea how to deal with this cleanly?

Thanks,
Fred

             reply	other threads:[~2015-01-28 15:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-28 15:04 Frederic Konrad [this message]
2015-01-28 15:17 ` [Qemu-devel] Thread local TCGContext Paolo Bonzini
2015-01-28 15:27   ` Frederic Konrad
2015-01-28 15:30     ` Paolo Bonzini

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=54C8FA7B.3050501@greensocs.com \
    --to=fred.konrad@greensocs.com \
    --cc=mark.burton@greensocs.com \
    --cc=mttcg@listserver.greensocs.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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.