[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 13/40] accel/tcg: Implement AccelOpsClass::has_work()
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v8 13/40] accel/tcg: Implement AccelOpsClass::has_work() |
Date: |
Mon, 27 Sep 2021 06:38:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.0 |
On 9/27/21 02:12, Richard Henderson wrote:
> On 9/26/21 6:26 PM, Philippe Mathieu-Daudé wrote:
>> All accelerators but TCG implement their AccelOpsClass::has_work()
>> handler, meaning all the remaining CPUClass::has_work() ones are
>> only reachable from TCG accelerator; and these has_work() handlers
>> belong to TCGCPUOps.
>>
>> We will gradually move each target CPUClass::has_work() to
>> TCGCPUOps in the following commits.
>> For now, move the CPUClass::has_work() call to tcg_cpu_has_work(),
>> the TCG AccelOpsClass::has_work() implementation.
>>
>> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
>> ---
>> include/hw/core/cpu.h | 2 +-
>> accel/tcg/tcg-accel-ops.c | 11 +++++++++++
>> softmmu/cpus.c | 5 -----
>> 3 files changed, 12 insertions(+), 6 deletions(-)
>
> Are we really really really sure this works?
As sure as a green CI, so I wonder if KVM is really tested there...
> Device emulation raises e.g. CPU_INTERRUPT_HARD. We certainly test that
> bit in target/i386/kvm/kvm.c. But we don't check that bit in your
> kvm_cpu_has_work. We're currently checking that via cc->has_work(), in
> x86_cpu_pending_interrupt, but after this change we won't test it at all
> for kvm.
Indeed. I guess I misunderstood your v6 comment. I'll revisit. Sorry.
- [PATCH v8 09/40] accel/xen: Implement AccelOpsClass::has_work(), (continued)
- [PATCH v8 09/40] accel/xen: Implement AccelOpsClass::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 10/40] accel/hax: Implement AccelOpsClass::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 11/40] accel/nvmm: Implement AccelOpsClass::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 12/40] accel/qtest: Implement AccelOpsClass::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 13/40] accel/tcg: Implement AccelOpsClass::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 14/40] accel: Simplify cpu_has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 15/40] accel/tcg: Introduce TCGCPUOps::has_work(), Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 16/40] target/arm: Explicit v7M cores use arm_cpu_has_work as CPUClass:has_work, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 17/40] target/arm: Restrict has_work() handler to sysemu and TCG, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 18/40] target/alpha: Restrict has_work() handler to sysemu, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 20/40] target/cris: Restrict has_work() handler to sysemu, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 19/40] target/avr: Restrict has_work() handler to sysemu, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 21/40] target/hexagon: Remove unused has_work() handler, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 22/40] target/hppa: Restrict has_work() handler to sysemu, Philippe Mathieu-Daudé, 2021/09/26
- [PATCH v8 23/40] target/i386: Restrict has_work() handler to sysemu and TCG, Philippe Mathieu-Daudé, 2021/09/26