[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/30] accel: Inline WHPX get_whpx_vcpu()
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 16/30] accel: Inline WHPX get_whpx_vcpu() |
Date: |
Wed, 28 Jun 2023 17:52:59 +0200 |
No need for this helper to access the CPUState::accel field.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230624174121.11508-15-philmd@linaro.org>
---
target/i386/whpx/whpx-all.c | 29 ++++++++++-------------------
1 file changed, 10 insertions(+), 19 deletions(-)
diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
index 185f2a2820..9ee04ee650 100644
--- a/target/i386/whpx/whpx-all.c
+++ b/target/i386/whpx/whpx-all.c
@@ -256,15 +256,6 @@ static bool whpx_has_xsave(void)
return whpx_xsave_cap.XsaveSupport;
}
-/*
- * VP support
- */
-
-static AccelCPUState *get_whpx_vcpu(CPUState *cpu)
-{
- return (AccelCPUState *)cpu->accel;
-}
-
static WHV_X64_SEGMENT_REGISTER whpx_seg_q2h(const SegmentCache *qs, int v86,
int r86)
{
@@ -390,7 +381,7 @@ static uint64_t whpx_cr8_to_apic_tpr(uint64_t cr8)
static void whpx_set_registers(CPUState *cpu, int level)
{
struct whpx_state *whpx = &whpx_global;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
CPUX86State *env = cpu->env_ptr;
X86CPU *x86_cpu = X86_CPU(cpu);
struct whpx_register_set vcxt;
@@ -609,7 +600,7 @@ static void whpx_get_xcrs(CPUState *cpu)
static void whpx_get_registers(CPUState *cpu)
{
struct whpx_state *whpx = &whpx_global;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
CPUX86State *env = cpu->env_ptr;
X86CPU *x86_cpu = X86_CPU(cpu);
struct whpx_register_set vcxt;
@@ -892,7 +883,7 @@ static const WHV_EMULATOR_CALLBACKS whpx_emu_callbacks = {
static int whpx_handle_mmio(CPUState *cpu, WHV_MEMORY_ACCESS_CONTEXT *ctx)
{
HRESULT hr;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
WHV_EMULATOR_STATUS emu_status;
hr = whp_dispatch.WHvEmulatorTryMmioEmulation(
@@ -917,7 +908,7 @@ static int whpx_handle_portio(CPUState *cpu,
WHV_X64_IO_PORT_ACCESS_CONTEXT *ctx)
{
HRESULT hr;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
WHV_EMULATOR_STATUS emu_status;
hr = whp_dispatch.WHvEmulatorTryIoEmulation(
@@ -1417,7 +1408,7 @@ static vaddr whpx_vcpu_get_pc(CPUState *cpu, bool
exit_context_valid)
* of QEMU, nor this port by calling WHvSetVirtualProcessorRegisters().
* This is the most common case.
*/
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
return vcpu->exit_ctx.VpContext.Rip;
} else {
/*
@@ -1468,7 +1459,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
{
HRESULT hr;
struct whpx_state *whpx = &whpx_global;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
CPUX86State *env = cpu->env_ptr;
X86CPU *x86_cpu = X86_CPU(cpu);
int irq;
@@ -1590,7 +1581,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
static void whpx_vcpu_post_run(CPUState *cpu)
{
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
CPUX86State *env = cpu->env_ptr;
X86CPU *x86_cpu = X86_CPU(cpu);
@@ -1617,7 +1608,7 @@ static void whpx_vcpu_process_async_events(CPUState *cpu)
{
CPUX86State *env = cpu->env_ptr;
X86CPU *x86_cpu = X86_CPU(cpu);
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
if ((cpu->interrupt_request & CPU_INTERRUPT_INIT) &&
!(env->hflags & HF_SMM_MASK)) {
@@ -1656,7 +1647,7 @@ static int whpx_vcpu_run(CPUState *cpu)
{
HRESULT hr;
struct whpx_state *whpx = &whpx_global;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
struct whpx_breakpoint *stepped_over_bp = NULL;
WhpxStepMode exclusive_step_mode = WHPX_STEP_NONE;
int ret;
@@ -2290,7 +2281,7 @@ int whpx_vcpu_exec(CPUState *cpu)
void whpx_destroy_vcpu(CPUState *cpu)
{
struct whpx_state *whpx = &whpx_global;
- AccelCPUState *vcpu = get_whpx_vcpu(cpu);
+ AccelCPUState *vcpu = cpu->accel;
whp_dispatch.WHvDeleteVirtualProcessor(whpx->partition, cpu->cpu_index);
whp_dispatch.WHvEmulatorDestroyEmulator(vcpu->emulator);
--
2.38.1
- [PULL 07/30] accel: Destroy HAX vCPU threads once done, (continued)
- [PULL 07/30] accel: Destroy HAX vCPU threads once done, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 08/30] accel: Rename 'hax_vcpu' as 'accel' in CPUState, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 09/30] accel: Rename HAX 'struct hax_vcpu_state' -> AccelCPUState, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 10/30] accel: Move HAX hThread to accelerator context, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 11/30] accel: Remove NVMM unreachable error path, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 12/30] accel: Rename NVMM 'struct qemu_vcpu' -> AccelCPUState, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 13/30] accel: Inline NVMM get_qemu_vcpu(), Philippe Mathieu-Daudé, 2023/06/28
- [PULL 14/30] accel: Remove WHPX unreachable error path, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 15/30] accel: Rename WHPX 'struct whpx_vcpu' -> AccelCPUState, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 17/30] accel: Rename 'cpu_state' -> 'cs', Philippe Mathieu-Daudé, 2023/06/28
- [PULL 16/30] accel: Inline WHPX get_whpx_vcpu(),
Philippe Mathieu-Daudé <=
- [PULL 19/30] accel/kvm: Re-include "exec/memattrs.h" header, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 18/30] accel: Rename HVF 'struct hvf_vcpu_state' -> AccelCPUState, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 21/30] hw/intc/arm_gic: Un-inline GIC*/ITS class_name() helpers, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 28/30] exec/memory: Add symbolic value for memory listener priority for accel, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 20/30] accel/kvm: Declare kvm_direct_msi_allowed in stubs, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 24/30] target/arm: Restrict KVM-specific fields from ArchCPU, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 25/30] target/ppc: Restrict KVM-specific fields from ArchCPU, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 23/30] hw/arm/sbsa-ref: Include missing 'sysemu/kvm.h' header, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 26/30] target/riscv: Restrict KVM-specific fields from ArchCPU, Philippe Mathieu-Daudé, 2023/06/28
- [PULL 29/30] exec/memory: Add symbol for memory listener priority for device backend, Philippe Mathieu-Daudé, 2023/06/28