[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 02/14] cpus: prepare new CpusAccel cpu accelerator interfa
From: |
Claudio Fontana |
Subject: |
Re: [PATCH v5 02/14] cpus: prepare new CpusAccel cpu accelerator interface |
Date: |
Wed, 19 Aug 2020 15:49:46 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
Hello Richard,
On 8/14/20 10:28 PM, Richard Henderson wrote:
> On 8/12/20 11:32 AM, Claudio Fontana wrote:
>> uint64_t cpu_get_tsc(CPUX86State *env)
>> {
>> - return cpu_get_ticks();
>> + return cpus_get_elapsed_ticks();
>
> What has this change got to do with creating the interface?
> You said the interface wasn't used yet...
the new CpusAccel interface isn't used,
The cpu_get_ticks() function is changed to mean getting the actual cpu ticks,
while cpus_get_elapsed_ticks() contains the code that special cases icount and
qtest,
until the respective CpusAccel enablement patches.
>
>
>> diff --git a/stubs/cpu-synchronize-state.c b/stubs/cpu-synchronize-state.c
>> new file mode 100644
>> index 0000000000..3112fe439d
>> --- /dev/null
>> +++ b/stubs/cpu-synchronize-state.c
>> @@ -0,0 +1,15 @@
>> +#include "qemu/osdep.h"
>> +#include "sysemu/hw_accel.h"
>> +
>> +void cpu_synchronize_state(CPUState *cpu)
>> +{
>> +}
>> +void cpu_synchronize_post_reset(CPUState *cpu)
>> +{
>> +}
>> +void cpu_synchronize_post_init(CPUState *cpu)
>> +{
>> +}
>> +void cpu_synchronize_pre_loadvm(CPUState *cpu)
>> +{
>> +}
these are needed for non softmmu builds by hw/core/cpu.c
and by gdbstub.c,
but actually we could get away with just _state() and _post_init(). Will remove
the others.
>> diff --git a/stubs/cpus-get-virtual-clock.c b/stubs/cpus-get-virtual-clock.c
>> new file mode 100644
>> index 0000000000..fd447d53f3
>> --- /dev/null
>> +++ b/stubs/cpus-get-virtual-clock.c
>> @@ -0,0 +1,8 @@
>> +#include "qemu/osdep.h"
>> +#include "sysemu/cpu-timers.h"
>> +#include "qemu/main-loop.h"
>> +
>> +int64_t cpus_get_virtual_clock(void)
>> +{
>> + return cpu_get_clock();
>> +}
>
> How do these stubs get used?
>
>
> r~
>
util/timer.c needs it for non-softmmu builds (see previous discussion with
Paolo).
Thanks,
Claudio
- [PATCH v5 00/14] QEMU cpus.c refactoring part2, Claudio Fontana, 2020/08/12
- [PATCH v5 01/14] cpu-timers, icount: new modules, Claudio Fontana, 2020/08/12
- [PATCH v5 04/14] cpus: extract out qtest-specific code to accel/qtest, Claudio Fontana, 2020/08/12
- [PATCH v5 02/14] cpus: prepare new CpusAccel cpu accelerator interface, Claudio Fontana, 2020/08/12
- [PATCH v5 03/14] cpus: extract out TCG-specific code to accel/tcg, Claudio Fontana, 2020/08/12
- [PATCH v5 06/14] cpus: extract out hax-specific code to target/i386/, Claudio Fontana, 2020/08/12
- [PATCH v5 11/14] hvf: remove hvf specific functions from global includes, Claudio Fontana, 2020/08/12
- [PATCH v5 09/14] cpus: cleanup now unneeded includes, Claudio Fontana, 2020/08/12
- [PATCH v5 07/14] cpus: extract out whpx-specific code to target/i386/, Claudio Fontana, 2020/08/12