[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
- [Qemu-devel] [PATCH v2 06/12] atomic: fix comment s/x64_64/x86_64/, (continued)
- [Qemu-devel] [PATCH v2 06/12] atomic: fix comment s/x64_64/x86_64/, Emilio G. Cota, 2018/09/10
- [Qemu-devel] [PATCH v2 05/12] test-rcu-list: access n_reclaims and n_nodes_removed with atomic64, Emilio G. Cota, 2018/09/10
- [Qemu-devel] [PATCH v2 07/12] cpus: initialize timers_state.vm_clock_lock, Emilio G. Cota, 2018/09/10
- [Qemu-devel] [PATCH v2 04/12] qsp: use atomic64 accessors, Emilio G. Cota, 2018/09/10
- [Qemu-devel] [PATCH v2 03/12] tests: add atomic64-bench, Emilio G. Cota, 2018/09/10
- [Qemu-devel] [PATCH v2 08/12] cpus: always call seqlock_write in cpu_update_icount, Emilio G. Cota, 2018/09/10
- Re: [Qemu-devel] [PATCH v2 00/12] i386 + x86_64 mttcg, Paolo Bonzini, 2018/09/11