qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 08/12] cpus: always call seqlock_write in cpu


From: Emilio G. Cota
Subject: Re: [Qemu-devel] [PATCH v2 08/12] cpus: always call seqlock_write in cpu_update_icount
Date: Mon, 24 Sep 2018 14:46:07 -0400
User-agent: Mutt/1.9.4 (2018-02-28)

On Mon, Sep 10, 2018 at 19:27:48 -0400, Emilio G. Cota wrote:
> Signed-off-by: Emilio G. Cota <address@hidden>
> ---
>  cpus.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/cpus.c b/cpus.c
> index ebc13bac2d..38dabb138d 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -250,16 +250,12 @@ void cpu_update_icount(CPUState *cpu)
>      int64_t executed = cpu_get_icount_executed(cpu);
>      cpu->icount_budget -= executed;
>  
> -#ifndef CONFIG_ATOMIC64
>      seqlock_write_lock(&timers_state.vm_clock_seqlock,
>                         &timers_state.vm_clock_lock);
> -#endif
>      atomic_set__nocheck(&timers_state.qemu_icount,
>                          timers_state.qemu_icount + executed);
> -#ifndef CONFIG_ATOMIC64
>      seqlock_write_unlock(&timers_state.vm_clock_seqlock,
>                           &timers_state.vm_clock_lock);
> -#endif
>  }

Applying this on my local tree is deadlocking icount, since
cpu_update_icount is called from cpu_get_icount_raw_locked:

#6  cpu_update_icount (cpu=<optimized out>) at /data/src/qemu/cpus.c:257
#7  0x000055a6fbc7ae5c in cpu_get_icount_raw_locked () at 
/data/src/qemu/cpus.c:271
#8  0x000055a6fbc7ae99 in cpu_get_icount_locked () at /data/src/qemu/cpus.c:279
#9  0x000055a6fbc7b3ac in cpu_get_icount () at /data/src/qemu/cpus.c:302
#10 0x000055a6fc0f3a05 in qemu_clock_get_ns (address@hidden) at 
/data/src/qemu/util/qemu-timer.c:601

I am however not sure what Paolo's queued tree looks like, so I
might be missing something.

Paolo: is that tree available anywhere?

Thanks,

                Emilio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]