[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4c501e8e-6981-814e-4fec-71a56363711b@redhat.com>
Date: Mon, 20 Feb 2023 18:46:38 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: Tianrui Zhao <zhaotianrui@...ngson.cn>
Cc: Huacai Chen <chenhuacai@...nel.org>,
WANG Xuerui <kernel@...0n.name>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, Jens Axboe <axboe@...nel.dk>,
Mark Brown <broonie@...nel.org>,
Alex Deucher <alexander.deucher@....com>,
Oliver Upton <oliver.upton@...ux.dev>, maobibo@...ngson.cn
Subject: Re: [PATCH v2 08/29] LoongArch: KVM: Implement vcpu handle exit
interface
On 2/20/23 07:57, Tianrui Zhao wrote:
> + if (ret == RESUME_GUEST)
> + kvm_acquire_timer(vcpu);
> +
> + if (!(ret & RESUME_HOST)) {
> + _kvm_deliver_intr(vcpu);
> + /* Only check for signals if not already exiting to userspace */
> + if (signal_pending(current)) {
> + run->exit_reason = KVM_EXIT_INTR;
> + ret = (-EINTR << 2) | RESUME_HOST;
> + ++vcpu->stat.signal_exits;
> + trace_kvm_exit(vcpu, KVM_TRACE_EXIT_SIGNAL);
> + }
> + }
> +
> + if (ret == RESUME_GUEST) {
> + trace_kvm_reenter(vcpu);
> +
> + /*
> + * Make sure the read of VCPU requests in vcpu_reenter()
> + * callback is not reordered ahead of the write to vcpu->mode,
> + * or we could miss a TLB flush request while the requester sees
> + * the VCPU as outside of guest mode and not needing an IPI.
> + */
> + smp_store_mb(vcpu->mode, IN_GUEST_MODE);
> +
> + cpu = smp_processor_id();
> + _kvm_check_requests(vcpu, cpu);
> + _kvm_check_vmid(vcpu, cpu);
> + vcpu->arch.host_eentry = csr_read64(LOONGARCH_CSR_EENTRY);
> +
> + /*
> + * If FPU are enabled (i.e. the guest's FPU context
> + * is live), restore FCSR0.
> + */
> + if (_kvm_guest_has_fpu(&vcpu->arch) &&
> + read_csr_euen() & (CSR_EUEN_FPEN)) {
> + kvm_restore_fcsr(&vcpu->arch.fpu);
> + }
> + }
Please avoid copying code from arch/mips/kvm since it's already pretty ugly.
Powered by blists - more mailing lists