qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

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