All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 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.