* [Qemu-devel] Updated patch for the opcode table
@ 2016-02-03 10:14 John Paul Adrian Glaubitz
2016-02-03 10:14 ` [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues John Paul Adrian Glaubitz
0 siblings, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2016-02-03 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent
Hi Laurent!
Here's the second patch again, this time checked with ./scripts/checkpatch.pl.
Thanks for the heads-up!
Adrian
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 10:14 [Qemu-devel] Updated patch for the opcode table John Paul Adrian Glaubitz
@ 2016-02-03 10:14 ` John Paul Adrian Glaubitz
2016-02-03 15:16 ` Eric Blake
0 siblings, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2016-02-03 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, John Paul Adrian Glaubitz
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
---
target-m68k/translate.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 535d7f9..a989961 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2828,6 +2828,10 @@ register_opcode (disas_proc proc, uint16_t opcode, uint16_t mask)
Later insn override earlier ones. */
void register_m68k_insns (CPUM68KState *env)
{
+ /* Build the opcode table only once to avoid
+ multithreading issues. */
+ if (opcode_table[0] != NULL)
+ return;
#define INSN(name, opcode, mask, feature) do { \
if (m68k_feature(env, M68K_FEATURE_##feature)) \
register_opcode(disas_##name, 0x##opcode, 0x##mask); \
--
2.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 10:14 ` [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues John Paul Adrian Glaubitz
@ 2016-02-03 15:16 ` Eric Blake
2016-02-03 15:19 ` Laurent Vivier
2016-02-03 15:20 ` John Paul Adrian Glaubitz
0 siblings, 2 replies; 8+ messages in thread
From: Eric Blake @ 2016-02-03 15:16 UTC (permalink / raw)
To: John Paul Adrian Glaubitz, qemu-devel; +Cc: laurent
[-- Attachment #1: Type: text/plain, Size: 1091 bytes --]
On 02/03/2016 03:14 AM, John Paul Adrian Glaubitz wrote:
> Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> ---
> target-m68k/translate.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/target-m68k/translate.c b/target-m68k/translate.c
> index 535d7f9..a989961 100644
> --- a/target-m68k/translate.c
> +++ b/target-m68k/translate.c
> @@ -2828,6 +2828,10 @@ register_opcode (disas_proc proc, uint16_t opcode, uint16_t mask)
> Later insn override earlier ones. */
> void register_m68k_insns (CPUM68KState *env)
> {
> + /* Build the opcode table only once to avoid
> + multithreading issues. */
> + if (opcode_table[0] != NULL)
> + return;
Missing {}. Are you sure this is the version that passed checkpatch.pl?
> #define INSN(name, opcode, mask, feature) do { \
> if (m68k_feature(env, M68K_FEATURE_##feature)) \
> register_opcode(disas_##name, 0x##opcode, 0x##mask); \
>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 15:16 ` Eric Blake
@ 2016-02-03 15:19 ` Laurent Vivier
2016-02-03 15:20 ` John Paul Adrian Glaubitz
1 sibling, 0 replies; 8+ messages in thread
From: Laurent Vivier @ 2016-02-03 15:19 UTC (permalink / raw)
To: Eric Blake, John Paul Adrian Glaubitz, qemu-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Le 03/02/2016 16:16, Eric Blake a écrit :
> On 02/03/2016 03:14 AM, John Paul Adrian Glaubitz wrote:
>> Signed-off-by: John Paul Adrian Glaubitz
>> <glaubitz@physik.fu-berlin.de> --- target-m68k/translate.c | 4
>> ++++ 1 file changed, 4 insertions(+)
>>
>> diff --git a/target-m68k/translate.c b/target-m68k/translate.c
>> index 535d7f9..a989961 100644 --- a/target-m68k/translate.c +++
>> b/target-m68k/translate.c @@ -2828,6 +2828,10 @@ register_opcode
>> (disas_proc proc, uint16_t opcode, uint16_t mask) Later insn
>> override earlier ones. */ void register_m68k_insns (CPUM68KState
>> *env) { + /* Build the opcode table only once to avoid +
>> multithreading issues. */ + if (opcode_table[0] != NULL) +
>> return;
>
> Missing {}. Are you sure this is the version that passed
> checkpatch.pl?
It seems checkpatch.pl doesn't ask for this anymore.
>
>> #define INSN(name, opcode, mask, feature) do { \ if
>> (m68k_feature(env, M68K_FEATURE_##feature)) \
>> register_opcode(disas_##name, 0x##opcode, 0x##mask); \
>>
>
Laurent
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJWshqdAAoJEPMMOL0/L748AQUP/jKv0x4FC8MSqRKJjiL27O1O
rQ98JqbZPaykz+wXRvRM6ZD5NEUE/PdDXQbzq3iVAJZFMXzMjv1RgOXVAVhhZRCr
3P6qv9hTzWoqrBDXHGEI0ACiTZwtWOd630SMr1Xz91WKkM9Iet7ULazmg+GinRv/
5fzn0YoJ9f8WBahkAW1NYZk1dlJKKab2N8hYcbOiWj0PiwyGd4mGJZrpPrbNYzCL
cnuRqSbJvBB+hyzWNYdLRdAcvLbpuYcKUltPDry3aYdkpTw7zS+iFQBe4E69j70h
7qtEyv2sIqQ2cgidWKAZPJ8l/jtUST82qfD0bGigELBKIaSE3+FVzim87WDpnB46
joeglUTU+TEBrY+FDyhNZtOB+XIfOoG2YVUQEVyDnFeBZP+XQWprrI1D318sAv/a
P0Huv3Fije52SUGLSHfP03Z6CYmYV4Gp113XVX6qOJoqSq/2P0ML3sWpwb/fppwF
VSykpdxUPGtHi+fh8o9VSVW5wwY3LrbfNriGs0bB8XDas6EdhpFmgXO07TC4OosI
aCy3OT56rM4FdmbcdSL7nzD9IG4e0GRGcNEzKOlBDcGt8/NGxIEOyKz/gv7piSLB
zLpKnyMFVn2FEUldhf6AmEl6L3huUzjlbWWylu8YPkjIqVOjSi5qZLH6j9C3a4zk
R9OOqSJXGKW7xelPgYpP
=zXmA
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 15:16 ` Eric Blake
2016-02-03 15:19 ` Laurent Vivier
@ 2016-02-03 15:20 ` John Paul Adrian Glaubitz
2016-02-03 16:11 ` Eric Blake
1 sibling, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2016-02-03 15:20 UTC (permalink / raw)
To: Eric Blake, qemu-devel; +Cc: laurent
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 02/03/2016 04:16 PM, Eric Blake wrote:
> Missing {}. Are you sure this is the version that passed
> checkpatch.pl?
Yes:
glaubitz@z6:..qemu/target-m68k> ../scripts/checkpatch.pl
0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch
total: 0 errors, 0 warnings, 10 lines checked
0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch has no
obvious style problems and is ready for submission.
glaubitz@z6:..qemu/target-m68k> cat
0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch
- From 2d8ef8d0244db95e41e04ff909560f12676e1dec Mon Sep 17 00:00:00 2001
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Wed, 3 Feb 2016 10:22:35 +0100
Subject: [PATCH 2/2] m68k: Build the opcode table only once to avoid
multithreading issues
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
- ---
target-m68k/translate.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 535d7f9..a989961 100644
- --- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2828,6 +2828,10 @@ register_opcode (disas_proc proc, uint16_t
opcode, uint16_t mask)
Later insn override earlier ones. */
void register_m68k_insns (CPUM68KState *env)
{
+ /* Build the opcode table only once to avoid
+ multithreading issues. */
+ if (opcode_table[0] != NULL)
+ return;
#define INSN(name, opcode, mask, feature) do { \
if (m68k_feature(env, M68K_FEATURE_##feature)) \
register_opcode(disas_##name, 0x##opcode, 0x##mask); \
- --
2.7.0
glaubitz@z6:..qemu/target-m68k>
- --
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJWshrHAAoJEHQmOzf1tfkT9V0P/1cMCHys6vImaJZtGOzQyaf2
PgsAw0fpgaOuL6u8ypxVHo++7QRI4lbZMTBx5PPuZQsc1iRhN27bAcxIzsoDPDeg
KVHx5Jc7JcvDNQiCTArOW1FVQeFFVYkQlAoTWzOqr+DYje8flU3OmKzbVoU+MXTN
Vv7P5CQk90mSxYMLzaggM+BpPMtVGvhxuVy0wOQKnMgTyF0U0r/G+/PmUBcidwDv
w7v7EcUSzzEXp6vZR6W0qBP6QBRqJyG3lrxWjZBl1K9lWfEv4gd4IQxWbf/A6P22
3GQjtEiiIEgppP1YFl0ah0VY/7uEtsx5sxo5vEOiWgaRm1Th8Y3rctFEyfT8Y73K
da1ro7KLFqRSut2tzuQ+ebsTujLY+XTs0y5Sxg3K8LfuMIs6fjzPN0hpx+8Z0hjD
7wqXoINLxIuCPz66cLkVFdtJTl7Z2uXGwGplel7wGTgLaIJHY8ZlOowmwELivVTh
ZhoVM3vaF3bHAx5g5CgsJ3X9EaJoxu268hJoMLwaOVte8lgOr48acGZPWPrMwdHp
hi9lJtnKzfMN09WFmYWiAeB0sx6TpniK48o2URwLX+UVMnkQz2qIEjFeAfmz//IR
vRQtLGqZg1Cjw76TpIPVd7hJPeklZXqt1rd4NoWn3CML0xIlWOYGSBNi7CTboPyr
MyBXXeWItvj6kwO4pm7f
=L8Yn
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 15:20 ` John Paul Adrian Glaubitz
@ 2016-02-03 16:11 ` Eric Blake
2016-02-04 15:18 ` John Paul Adrian Glaubitz
0 siblings, 1 reply; 8+ messages in thread
From: Eric Blake @ 2016-02-03 16:11 UTC (permalink / raw)
To: John Paul Adrian Glaubitz, qemu-devel; +Cc: laurent
[-- Attachment #1: Type: text/plain, Size: 2090 bytes --]
On 02/03/2016 08:20 AM, John Paul Adrian Glaubitz wrote:
> On 02/03/2016 04:16 PM, Eric Blake wrote:
>> Missing {}. Are you sure this is the version that passed
>> checkpatch.pl?
>
> Yes:
>
> glaubitz@z6:..qemu/target-m68k> ../scripts/checkpatch.pl
> 0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch
> total: 0 errors, 0 warnings, 10 lines checked
>
> 0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch has no
> obvious style problems and is ready for submission.
> glaubitz@z6:..qemu/target-m68k> cat
> 0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch
> From 2d8ef8d0244db95e41e04ff909560f12676e1dec Mon Sep 17 00:00:00 2001
> From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Date: Wed, 3 Feb 2016 10:22:35 +0100
> Subject: [PATCH 2/2] m68k: Build the opcode table only once to avoid
> multithreading issues
Weird. Wonder why it doesn't complain on that file? I'm guessing that
it is due to the #define on the next line. Because rearranging things
to put the code after the #define changes the situation (but not the
semantics):
diff --git i/target-m68k/translate.c w/target-m68k/translate.c
index 342c040..587c44f 100644
--- i/target-m68k/translate.c
+++ w/target-m68k/translate.c
@@ -2832,6 +2832,10 @@ void register_m68k_insns (CPUM68KState *env)
if (m68k_feature(env, M68K_FEATURE_##feature)) \
register_opcode(disas_##name, 0x##opcode, 0x##mask); \
} while(0)
+
+ if (0)
+ return;
+
INSN(undef, 0000, 0000, CF_ISA_A);
INSN(arith_im, 0080, fff8, CF_ISA_A);
INSN(bitrev, 00c0, fff8, CF_ISA_APLUSC);
properly warns:
$ git commit -a -m tmp
WARNING: braces {} are necessary for all arms of this statement
#10: FILE: target-m68k/translate.c:2836:
+ if (opcode_table[0])
[...]
total: 0 errors, 1 warnings, 10 lines checked
(yes, I've hooked up git to have a pre-commit check to run checkpatch.pl).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-03 16:11 ` Eric Blake
@ 2016-02-04 15:18 ` John Paul Adrian Glaubitz
2016-02-08 23:15 ` John Paul Adrian Glaubitz
0 siblings, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2016-02-04 15:18 UTC (permalink / raw)
To: Eric Blake, qemu-devel; +Cc: laurent
[-- Attachment #1: Type: text/plain, Size: 1407 bytes --]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 02/03/2016 05:11 PM, Eric Blake wrote:
> Weird. Wonder why it doesn't complain on that file? I'm guessing
> that it is due to the #define on the next line. Because
> rearranging things to put the code after the #define changes the
> situation (but not the semantics):
Alright, this should do the trick then.
Adrian
- --
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJWs2vKAAoJEHQmOzf1tfkTR6MQAJWRekJIKOcxgdpFWWenL5c2
LmLPFtnFN+d4mvrSRuha7onRt/IFQ514oakur93gi45uholK0zR1/KVQPaLN/0ED
jnDUf9z2orJQjn36RnP2HJa4uoTEHQyXfmZ++nKWRlqvxeMNjSiLFzw/NycZapmd
CGllQ9mHX1UKFwbsZJWrrKfDN/jlqMp9Ph8t9pTyehUPsMP5fe+anZWG9cdiUtJI
C/rQUIdzIRi2dAntcVoWOeX6sx+uXfxtHanRdxl5gDv1e53fD9tuSVGnkpqwd0fU
2QKeSvPFh+OTDT4UPLr6ljukzwx2dTEYujtmZPgOz2d4KZg/XMS71vuE9Rjye+O+
y7LXAfamW/gtKAY2QdYSsvxsua7UsitlqOqC4BQ0TCvrdRZufRm6ruL+K45F6zag
brRc//20GYqunS67uw2qo4zh3hJCgv9z8Cah3W4KIRM1T+WhNIiunHQkte5gCkKD
MBZ9JisxNMAK2DnUElHIcY83LDCdfDe3M4T8ndk+4OyBw8SIPGAOO3KEhJ7Q132B
dFpL0zJ/VBPgUCRYedX5+c3YxKJLfFrXv1UZWE4Gt/lbBNqet/Ayv5dHIh48BU1D
u09tCUXjobOK2+H6vKiW60/b/IcNPKSsz35xpJXc91TmMBuYTnUap4ppy2jCTXpY
VBFmKPRgI3q8lhzrkUgh
=SFbP
-----END PGP SIGNATURE-----
[-- Attachment #2: 0002-m68k-Build-the-opcode-table-only-once-to-avoid-multi.patch --]
[-- Type: text/x-diff, Size: 1069 bytes --]
>From 9a78a2f7f8a9063c2ef4dd9b52ffc061d045886b Mon Sep 17 00:00:00 2001
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Wed, 3 Feb 2016 10:22:35 +0100
Subject: [PATCH 2/2] m68k: Build the opcode table only once to avoid
multithreading issues
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
---
target-m68k/translate.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 535d7f9..015e220 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2828,6 +2828,12 @@ register_opcode (disas_proc proc, uint16_t opcode, uint16_t mask)
Later insn override earlier ones. */
void register_m68k_insns (CPUM68KState *env)
{
+ /* Build the opcode table only once to avoid
+ multithreading issues. */
+ if (opcode_table[0] != NULL) {
+ return;
+ }
+
#define INSN(name, opcode, mask, feature) do { \
if (m68k_feature(env, M68K_FEATURE_##feature)) \
register_opcode(disas_##name, 0x##opcode, 0x##mask); \
--
2.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues
2016-02-04 15:18 ` John Paul Adrian Glaubitz
@ 2016-02-08 23:15 ` John Paul Adrian Glaubitz
0 siblings, 0 replies; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2016-02-08 23:15 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
On 02/04/2016 04:18 PM, John Paul Adrian Glaubitz wrote:
> On 02/03/2016 05:11 PM, Eric Blake wrote:
>> Weird. Wonder why it doesn't complain on that file? I'm
>> guessing that it is due to the #define on the next line.
>> Because rearranging things to put the code after the #define
>> changes the situation (but not the semantics):
>
> Alright, this should do the trick then.
And this one :).
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-02-08 23:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03 10:14 [Qemu-devel] Updated patch for the opcode table John Paul Adrian Glaubitz
2016-02-03 10:14 ` [Qemu-devel] [PATCH] m68k: Build the opcode table only once to avoid multithreading issues John Paul Adrian Glaubitz
2016-02-03 15:16 ` Eric Blake
2016-02-03 15:19 ` Laurent Vivier
2016-02-03 15:20 ` John Paul Adrian Glaubitz
2016-02-03 16:11 ` Eric Blake
2016-02-04 15:18 ` John Paul Adrian Glaubitz
2016-02-08 23:15 ` John Paul Adrian Glaubitz
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).