[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 09/12] cpus: introduce cpu_update_icount help
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 09/12] cpus: introduce cpu_update_icount helper |
Date: |
Wed, 5 Apr 2017 17:00:49 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 05/04/2017 16:34, Alex Bennée wrote:
>> On 05/04/2017 15:25, Alex Bennée wrote:
>>> +{
>>> + int64_t executed = cpu_get_icount_executed(cpu);
>>> + cpu->icount_budget -= executed;
>>> + atomic_add(&timers_state.qemu_icount, executed);
>>> +}
>> Since there's only one writer, it's also okay to do
>>
>> atomic_set(&timers_state.qemu_icount,
>> atomic_read(&timers_state.qemu_icount) + executed);
>>
>> (also not just faster, but also simpler to turn into TCG code if we do
>> the update in gen_io_start).
>
> OK fair enough. Annoyingly I've just noticed this breaks for 32 bit
> hosts because we might not have CONFIG_ATOMIC64. What's the best
> approach? #ifdef and handwave?
For 2.9 yes... For 2.10 I'm going to add a "Stat64" type that can
compute max or add of 63-bit values, and blocks on the read side if a
doubleword change is in progress.
Paolo
- [Qemu-devel] [PATCH v2 03/12] scripts/replay-dump.py: replay log dumper, (continued)
- [Qemu-devel] [PATCH v2 03/12] scripts/replay-dump.py: replay log dumper, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 05/12] cpus: remove icount handling from qemu_tcg_cpu_thread_fn, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 04/12] target/i386/misc_helper: wrap BQL around another IRQ generator, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 06/12] cpus: check cpu->running in cpu_get_icount_raw(), Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 01/12] scripts/qemugdb/mtree.py: fix up mtree dump, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 08/12] cpus: don't credit executed instructions before they have run, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 07/12] cpus: move icount preparation out of tcg_exec_cpu, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 09/12] cpus: introduce cpu_update_icount helper, Alex Bennée, 2017/04/05
- [Qemu-devel] [PATCH v2 12/12] replay: assert time only goes forward, Alex Bennée, 2017/04/05
[Qemu-devel] [PATCH v2 11/12] cpus: call cpu_update_icount on read, Alex Bennée, 2017/04/05