[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC v3 3/4] cpu-timers, icount: new modules
From: |
Claudio Fontana |
Subject: |
Re: [RFC v3 3/4] cpu-timers, icount: new modules |
Date: |
Mon, 25 May 2020 17:43:58 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 5/25/20 5:16 PM, Philippe Mathieu-Daudé wrote:
> On 5/25/20 4:54 PM, Claudio Fontana wrote:
>> refactoring of cpus.c continues with cpu timer state extraction.
>>
>> cpu-timers: responsible for the cpu timers state, and for access to
>> cpu clocks and ticks.
>>
>> icount: counts the TCG instructions executed. As such it is specific to
>> the TCG accelerator. Therefore, it is built only under CONFIG_TCG.
>>
>> One complication is due to qtest, which misuses icount to warp time
>> (qtest_clock_warp). In order to solve this problem, detach instead qtest
>> from icount, and use a trivial separate counter for it.
>>
>> This requires fixing assumptions scattered in the code that
>> qtest_enabled() implies icount_enabled().
>>
>> No functionality change.
>>
>> Signed-off-by: Claudio Fontana <address@hidden>
>> ---
>> accel/qtest.c | 6 +-
>> accel/tcg/cpu-exec.c | 43 ++-
>> accel/tcg/tcg-all.c | 7 +-
>> accel/tcg/translate-all.c | 3 +-
>> docs/replay.txt | 6 +-
>> exec.c | 4 -
>> hw/core/ptimer.c | 6 +-
>> hw/i386/x86.c | 1 +
>> include/exec/cpu-all.h | 4 +
>> include/exec/exec-all.h | 4 +-
>> include/qemu/timer.h | 22 +-
>> include/sysemu/cpu-timers.h | 72 +++++
>> include/sysemu/cpus.h | 12 +-
>> include/sysemu/qtest.h | 2 +
>> include/sysemu/replay.h | 4 +-
>> replay/replay.c | 6 +-
>> softmmu/Makefile.objs | 2 +
>> softmmu/cpu-timers.c | 267 ++++++++++++++++
>> softmmu/cpus.c | 731
>> +------------------------------------------
>> softmmu/icount.c | 496 +++++++++++++++++++++++++++++
>> softmmu/qtest.c | 34 +-
>> softmmu/timers-state.h | 45 +++
>> softmmu/vl.c | 8 +-
>> stubs/Makefile.objs | 3 +-
>> stubs/clock-warp.c | 4 +-
>> stubs/cpu-get-clock.c | 3 +-
>> stubs/cpu-get-icount.c | 21 --
>> stubs/icount.c | 22 ++
>> stubs/qemu-timer-notify-cb.c | 8 +
>> stubs/qtest.c | 5 +
>> target/alpha/translate.c | 3 +-
>> target/arm/helper.c | 7 +-
>> target/riscv/csr.c | 8 +-
>> tests/ptimer-test-stubs.c | 7 +-
>> tests/test-timed-average.c | 2 +-
>> util/main-loop.c | 4 +-
>> util/qemu-timer.c | 12 +-
>> 37 files changed, 1062 insertions(+), 832 deletions(-)
>> create mode 100644 include/sysemu/cpu-timers.h
>> create mode 100644 softmmu/cpu-timers.c
>> create mode 100644 softmmu/icount.c
>> create mode 100644 softmmu/timers-state.h
>> delete mode 100644 stubs/cpu-get-icount.c
>> create mode 100644 stubs/icount.c
>> create mode 100644 stubs/qemu-timer-notify-cb.c
>
> Similarly I'd rather see this patch comes before your current #1 "move
> softmmu only files from root". Anyway wait for other reviewers before
> spending time to reorder the series.
>
>
I understand the desire to avoid moving cpus code back and forth,
will then wait for other comments as you suggest.
Ciao and thanks,
Claudio
- [RFC v3 0/4] QEMU cpus.c refactoring, Claudio Fontana, 2020/05/25
- [RFC v3 2/4] cpu-throttle: new module, extracted from cpus.c, Claudio Fontana, 2020/05/25
- [RFC v3 3/4] cpu-timers, icount: new modules, Claudio Fontana, 2020/05/25
- [RFC v3 4/4] cpus: extract out accel-specific code to each accel, Claudio Fontana, 2020/05/25
- Re: [RFC v3 0/4] QEMU cpus.c refactoring, no-reply, 2020/05/25