Patchwork Don't call cpu_synchronize_state() from machine init.

login
register
mail settings
Submitter Scott Wood
Date Oct. 4, 2010, 9:15 p.m.
Message ID <20101004211558.GB27035@udp111988uds.am.freescale.net>
Download mbox | patch
Permalink /patch/66743/
State New
Headers show

Comments

Scott Wood - Oct. 4, 2010, 9:15 p.m.
This will deadlock when the I/O thread is used, since the
CPU thread is blocked waiting for qemu_system_ready.

The synchronization is unnecessary since this is before
cpu_synchronize_all_post_init().

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 hw/ppc440_bamboo.c     |    2 --
 hw/ppce500_mpc8544ds.c |    2 --
 2 files changed, 0 insertions(+), 4 deletions(-)
Scott Wood - Oct. 18, 2010, 6:32 p.m.
On Mon, Oct 04, 2010 at 04:15:58PM -0500, Scott Wood wrote:
> This will deadlock when the I/O thread is used, since the
> CPU thread is blocked waiting for qemu_system_ready.
> 
> The synchronization is unnecessary since this is before
> cpu_synchronize_all_post_init().
> 
> Signed-off-by: Scott Wood <scottwood@freescale.com>
> ---
>  hw/ppc440_bamboo.c     |    2 --
>  hw/ppce500_mpc8544ds.c |    2 --
>  2 files changed, 0 insertions(+), 4 deletions(-)

Any comment on/objection to this patch?

-Scott

> 
> diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
> index 34ddf45..645e84f 100644
> --- a/hw/ppc440_bamboo.c
> +++ b/hw/ppc440_bamboo.c
> @@ -156,8 +156,6 @@ static void bamboo_init(ram_addr_t ram_size,
>              exit(1);
>          }
>  
> -        cpu_synchronize_state(env);
> -
>          /* Set initial guest state. */
>          env->gpr[1] = (16<<20) - 8;
>          env->gpr[3] = FDT_ADDR;
> diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
> index 1422fad..f7e9465 100644
> --- a/hw/ppce500_mpc8544ds.c
> +++ b/hw/ppce500_mpc8544ds.c
> @@ -269,8 +269,6 @@ static void mpc8544ds_init(ram_addr_t ram_size,
>              exit(1);
>          }
>  
> -        cpu_synchronize_state(env);
> -
>          /* Set initial guest state. */
>          env->gpr[1] = (16<<20) - 8;
>          env->gpr[3] = dt_base;
> -- 
> 1.7.0.4
> 
>
Jan Kiszka - Oct. 18, 2010, 6:53 p.m.
Am 18.10.2010 20:32, Scott Wood wrote:
> On Mon, Oct 04, 2010 at 04:15:58PM -0500, Scott Wood wrote:
>> This will deadlock when the I/O thread is used, since the
>> CPU thread is blocked waiting for qemu_system_ready.
>>
>> The synchronization is unnecessary since this is before
>> cpu_synchronize_all_post_init().
>>
>> Signed-off-by: Scott Wood <scottwood@freescale.com>
>> ---
>>  hw/ppc440_bamboo.c     |    2 --
>>  hw/ppce500_mpc8544ds.c |    2 --
>>  2 files changed, 0 insertions(+), 4 deletions(-)
> 
> Any comment on/objection to this patch?
> 

Obviously correct, should get committed.

Acked-by: Jan Kiszka <jan.kiszka@siemens.com>

Jan

> -Scott
> 
>>
>> diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
>> index 34ddf45..645e84f 100644
>> --- a/hw/ppc440_bamboo.c
>> +++ b/hw/ppc440_bamboo.c
>> @@ -156,8 +156,6 @@ static void bamboo_init(ram_addr_t ram_size,
>>              exit(1);
>>          }
>>  
>> -        cpu_synchronize_state(env);
>> -
>>          /* Set initial guest state. */
>>          env->gpr[1] = (16<<20) - 8;
>>          env->gpr[3] = FDT_ADDR;
>> diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
>> index 1422fad..f7e9465 100644
>> --- a/hw/ppce500_mpc8544ds.c
>> +++ b/hw/ppce500_mpc8544ds.c
>> @@ -269,8 +269,6 @@ static void mpc8544ds_init(ram_addr_t ram_size,
>>              exit(1);
>>          }
>>  
>> -        cpu_synchronize_state(env);
>> -
>>          /* Set initial guest state. */
>>          env->gpr[1] = (16<<20) - 8;
>>          env->gpr[3] = dt_base;
>> -- 
>> 1.7.0.4
>>
>>
> 
> 
>

Patch

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 34ddf45..645e84f 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -156,8 +156,6 @@  static void bamboo_init(ram_addr_t ram_size,
             exit(1);
         }
 
-        cpu_synchronize_state(env);
-
         /* Set initial guest state. */
         env->gpr[1] = (16<<20) - 8;
         env->gpr[3] = FDT_ADDR;
diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
index 1422fad..f7e9465 100644
--- a/hw/ppce500_mpc8544ds.c
+++ b/hw/ppce500_mpc8544ds.c
@@ -269,8 +269,6 @@  static void mpc8544ds_init(ram_addr_t ram_size,
             exit(1);
         }
 
-        cpu_synchronize_state(env);
-
         /* Set initial guest state. */
         env->gpr[1] = (16<<20) - 8;
         env->gpr[3] = dt_base;